CUSTOMER_ID FIRST_NAME LASTJIAME DOB PHONE
2 Cyn th ia Orange 05-FEB-68 800-555-1212
Удаление строки из таблицы
Для удаления строк из таблицы используется оператор DELETE. Обычно используется
фраза WHERE для указания строк, которые нужно удалить. Если
этого не сделать, будут удалены все строки таблицы.
В следующем примере оператор DELETE используется для удаления из
таблицы customers строки, для которой customer_id равен 2:
□ DELETE FROM customers
2 WHERE customer_id = 2;
1 row de leted .
Чтобы отменить сделанные в базе данных изменения, можно использовать
оператор ROLLBACK:
□ ROLLBACK;
R o llb a c k complete.
Выполните оператор ROLLBACK, чтобы отменить все сделанные вами до
сих пор изменения. В этом случае ваши результаты будут совпадать с результатами
в следующих главах книги.
Примечанке Вы можете сохранить изменения в строках, используя оператор COMMIT. Как
это сделать, показано в главе 8.
Типы BINARY_FL0AT и BINARY DOUBLE
В Oracle 1 Og появилось два новых типа данных: BINARY_FLOAT и BINARY_
DOUBLE. В типе данных BINARY_FLOAT хранятся 32-битные числа с плавающей
точкой одинарной точности, а в BINARY_DOUBLE - 64-битные
числа с плавающей точкой двойной точности. Эти новые типы данных базируются
на стандартах IEEE (Институт инженеров по электротехнике и
электронике) для двоичной арифметики с плавающей точкой.
Преимущества BINARY.FLOAT и BINARY_D0UBLE
Типы данных BINARY_FL0AT и BINARY_D0UBLE дополняют существующий тип
данных NUMBER. Они предлагают следующие преимущества по сравнению с
NUMBER:
24 Глава 1
■ Требуют для хранения меньше памяти. Для хранения типов BINARY_
FLOAT и BINARY_DOUBLE требуется соответственно 5 и 9 байт, в то время
как NUMBER может использовать до 22 байт.
и Могут представлять более широкий диапазон чисел. BINARY_FLOAT
и BINARY_DOUBLE поддерживают числа, значительно большие и значительно
меньшие, чем те, которые могут храниться в типе данных
NUMBER.
■ Как правило, операции выполняются быстрее. Операции с участием
BINARY_FLOAT и BINARY_DOUBLE обычно выполняются быстрее, чем
с участием NUMBER. Это связано с тем, что операции с BINARY_FLOAT
и BINARY_DOUBLE выполняются на аппаратном уровне, в то время как
тип данных NUMBER перед началом вычислений необходимо преобразовать
программно.
■ Замкнутые операции. Арифметические операции с участием BINARY_
FLOAT и BINARY_DOUBLE являются замкнутыми. Это означает, что в результате
операции всегда будет возвращено число или специальное
значение. Например, если разделить одно число BINARY_FLOAT на другое,
всегда получается результат типа BINARY_FLOAT.
■ Прозрачное округление. Типы данных BINARY_FLOAT и BINARY_DOUBLE
используют для представления числа по основанию 2, в то время как
тип NUMBER использует числа по основанию 10. Используемое для
представления числа основание влияет на то, как происходит округление
для этого числа. Например, десятичное число с плавающей
точкой округляется до ближайшего десятичного разряда, а двоичное
число с плавающей точкой округляется до ближайшего двоичного
разряда.
Совет При разработке системы с большим объемом численных вычислений нужно рассмотреть
вопрос об использовании для представления чисел типов данных BINARY_FL0AT и
BINARY_D0UBLE. Безусловно, вам следует использовать Oracle Database версии 10д или выше.
Использование BINARY.FLOAT и BINARY.DOUBLE в таблицах
Следующее выражение создает таблицу binary_test, которая содержит
столбцы BINARY_FL0AT и BINARY_DOUBLE:
□ CREATE TABLE b in a ry _ te s t (
b in _ flo a t BINARY_FL0AT,
bin_double BINARY_D0UBLE
);
Примечание В каталоге SQL вы найдете сценарий oracle_10g_examples. sq l, который
создает таблицу b in a ry _ te s t в схеме sto re . Этот сценарий выполняет также операторы
INSERT, которые вы увидите в этом разделе. Вы сможете выполнить этот сценарий в базе данных
Oraclel Од и выше. __________________
Приведенный ниже пример добавляет строки к таблице b in a ry _ te s t:
Введение 25
□ INSERT INTO b in a ry _ te s t (
b in _ flo a t, bin_double
) VALUES (
3 9 .5f, 15 .7d
);
Обратите внимание: чтобы указать, что константа относится к типу
BINARY_FLOAT или BINARY_DOUBLE, следует употреблять символы « f » или «d »,
соответственно.
Специальные значения
Для типов BINARY_FLOAT и BINARY_DOUBLE вы также можете использовать
показанные в таблице 1-2 специальные значения.
В следующем примере в таблицу bina ry _ te s t вставлены значения BINARY_
FL0AT_INFINITYи BINARY_DOUBLE_INFINITY:
□ INSERT INTO b in a ry _ te s t (
b in _ flo a t, bin_double
) VALUES (
BINARY_FLOAT_INFINITY, BINARY_DOUBLE_INFINITY
);
Таблица 1-2 Специальные значения
Специальное значение Описание
BINARY_FLOAT_NAN He число (от английского Not a Number) для типа BINARY_FL0AT