Вставка единственной записи в таблицу 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Вставка единственной записи в таблицу



Любая новая информация попадает в базу данных посредством использования оператора INSERT. Для добавления информации о каждом новом объекте используется один оператор INSERT, имеющий следующий синтаксис:

INSERT INTO имя_таблицы[(список_атрибутов)]

VALUES (список_значений);

Указание списка атрибутов является необязательным, но только в том случае, если список значений будет содержать значения для абсолютно всех атрибутов таблицы, и если указаны эти значения будут в порядке, соответствующему порядку указания атрибутов при создании таблицы. В общем случае допускается неполное указание атрибутов в произвольном порядке, но среди этих атрибутов обязательно должны указываться те, которые имеют опцию NOT NULL и не имеют значения по умолчанию. Если при добавлении строки какой-то атрибут не был указан в списке атрибутов, то для СУБД сначала попытается присвоить ему значение по умолчанию, если оно было указано для данного столбца при создании таблицы. Если значения по умолчанию нет, то СУБД попытается указать для данного атрибута значение NULL, если это не противоречит созданным ограничениям целостности. В противном случае оператор INSERT будет завершен с ошибкой. Ниже представлены примеры выполнения оператора INSERT:

-- вставка строки в таблицу DEALERS с указанием всех атрибутов:

INSERT INTO Dealers VALUES(1, ‘Иванов А.И.’, 3, null);

Вставка множества записей

Вставка множества записей осуществляется посредством использования подзапроса внутри оператора INSERT:

INSERT INTO имя_таблицы оператор_SELECT;

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

-- копирование всех имен дилеров из таблицы DEALERS в таблицу MANAGERS

INSERT INTO MANAGERS(Man_id, Name)

SELECT managers_seq.Nextval, Name FROM Dealers;

Оператор изменения значений полей UPDATE

Оператор UPDATE используется для изменения существующих строк таблиц. Оператор UPDATE имеет следующий синтаксис:

UPDATE имя_таблицы SET поле1 = значение1, [ поле2 = значение2, …]

[WHERE условие_фильтрации_строк ];

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

Обновление единственной записи

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

-- изменение значения Procent в одной строке таблицы MANAGERS

UPDATE Managers SET Procent = 5 WHERE Man_id = 1;

 

Обновление множества записей

Для обновления множества записей в таблице условие фильтрации может включать любые атрибуты таблицы с использованием любых логических операторов. Например:

-- назначение размера комиссионных тем менеджерам, у которых он не был указан

UPDATE Managers SET Procent = 5

WHERE Procent IS NULL;

Обновление с подзапросом

Иногда для составления условия отбора строк, в которых необходимо произвести какие-либо изменения, не хватает логических операторов. Для таких случаев синтаксис оператора UPDATE допускает использование подзапросов в параметре WHERE для формирования набора строк, которые предполагается подвергнуть изменению. Например:

-- понижение на 10% размер комиссионных у тех менеджеров, чей размер комиссионных превышает средний уровень

UPDATE Managers SET Procent = Procent * 0.9

WHERE Procent > (SELECT AVG(Procent) FROM Managers);

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



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 190; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.65.65 (0.025 с.)