double arrow

Обновление значений одного столбца


Обновление уже имеющихся данных

Ввод значений NULL

Ввести значение NULL в таблицу просто. Это бывает нужно, в частности, когда значение соответствующего столбца не известно. Например, не каждый человек имеет пейджер, и было бы некорректно вводить для этих людей неверные номера пейджера – не говоря уж о напрасном расходовании дискового пространства. Значение NULL можно ввести в столбец с помощью ключевого слова NULL.

Синтаксис оператора для ввода значения NULL следующий.

insert into имя_схемы.имя_таблицы values ('значение1', NULL, 'значениеЗ');

В результате в соответствующий столбец таблицы будет введено значение NULL. Столбец, в который вводится NULL, не будет содержать данных. В рамках вышеприведенного синтаксиса значение NULL будет введено на место второго столбца.

Рассмотрим следующие два примера.

INSERT INTO ORDERS_TBL (ORD_NUM, CUST_ID, PROD_ID, QTY, ORD_DATE)

VALUES ('23A16', '109', '7725', 2, NULL);

Здесь в списке столбцов перечислены все столбцы таблицы ORDERS_TBL. В столбец ORD_DATE вводится значение NULL, означающее, что дата заказа в данный момент либо не известна, либо не доступна.

INSERT INTO ORDERS_TBL VALUES ('23A16', ‘109', '7725', 2, ’’);

Использованный в этом примере оператор отличается от оператора из первого примера, но результаты их выполнения одинаковы. Обратите внимание на то, что здесь, во-первых, отсутствует список столбцов – он не обязателен, если данные вводятся во все столбцы таблицы. Во-вторых, вместо ввода в последний столбец значения NULL, вводятся ' ' (два идущие подряд знака одиночных кавычек), что тоже символизирует значение NULL (ввиду отсутствия чего бы то ни было между ними).




Уже существующие в таблице данные можно изменить с помощью команды UPDATE. Команда UPDATE не добавляет новых записей в таблицу и не удаляет их, а только дает возможность изменить данные. С помощью одной такой команды можно изменить данные только одной таблицы, но одновременно можно менять данные нескольких столбцов. Одним таким оператором можно изменить и одну строку данных и целый набор строк.

В своей простейшей форме оператор UPDATE изменяет один столбец таблицы. При изменении одного столбца можно изменить и только одну запись, и сразу несколько. Синтаксис оператора для изменения данных в одном столбце следующий:

update имя_таблицы set имя_столбца = 'значение' [where условие];

В следующем примере значение столбца QTY таблицы ORDERS_TBL устанавливается равным 1 для записи с ORD_NUM, равным '23А16' (последнее специфицируется с помощью ключевого слова WHERE).

UPDATE ORDERS_TBL SET QTY = 1 WHERE ORD_NUM = '23A16';

Следующий пример отличается от предыдущего только отсутствием параметра, заданного ключевым словом WHERE.

UPDATE ORDERS_TBL SET QTY = 1;

Как видите, здесь было обновлено 11 строк. В данном случае значение столбца QTY было установлено равным 1 для всех строк таблицы ORDERS_TBL. Вы действительно хотели получить такой результат? В отдельных случаях это может быть и так, но на самом деле оператор UPDATE без ключевого слова WHERE используется исключительно редко.

При использовании оператора UPDATE без ключевого слова WHERE нужно быть исключительно внимательным. При отсутствии заданных ключевым словом WHERE условий данные в соответствующем столбце будут обновлены для всех строк данных.







Сейчас читают про: