Главная страница

Лекции и практики (1). Курс лекций и материалы для практических занятий


Скачать 1.01 Mb.
НазваниеКурс лекций и материалы для практических занятий
Дата17.03.2023
Размер1.01 Mb.
Формат файлаdocx
Имя файлаЛекции и практики (1).docx
ТипКурс лекций
#996812
страница13 из 75
1   ...   9   10   11   12   13   14   15   16   ...   75

Команды модификации данных


К командам модификации данных (DML) относятся добавление, удаление и изменение (обновление) записи (строки таблицы). При выполнении этих СУБД делает следующее:

  1. Проверяет команду на синтаксическую правильность: если есть ошибки, выдаёт пользователю сообщение о первой выявленной ошибке, иначе пе- реходит к следующему пункту.

  2. Проверяет права пользователя, который запустил эту команду: если права на выполнение подобной операции есть, то переходит к следующему пункту, иначе выдаёт сообщение о недостаточности прав.

  3. Выполняет операции, предусмотренные командой модификации данных. При выполнении каждой операции (добавлении / изменении / удалении каждой строки) проверяются все установленные для таблицы ограниче- ния целостности. В случае нарушения любого ограничения целостности или возникновения других проблем (переполнения памяти, например) команда DML не выполняется (отменяются все изменения, выполненные в рамках этой команды) и выдаётся сообщение об ошибке. Если же ко- манда выполнилась успешно, выдаётся информация о количестве обрабо- танных строк.

INSERT добавление записи в таблицу. Синтаксис команды:

INSERT INTO <имя таблицы> [(<имя поля>.,..)] VALUES (<список выражений>) | <запрос>;

Под <запросом> подразумевается команда SELECT (см. ниже), результа- ты работы которой добавляются в указанную таблицу.

В предложении VALUES указываются выражения, порождающие значе- ния атрибутов новой записи таблицы. Выражение может включать вызовы функций, определенных в данной СУБД, константы, знак операций конкатена- ции строк (||) или знаки арифметических операций: –, +, *, /. Типы значений выражений должны соответствовать типам полей таблицы. Строки и даты должны заключаться в одинарные кавычки. Формат даты должен соответство- вать тому, который установлен в СУБД по умолчанию.

Если значения устанавливаются не для всех полей или порядок значений не соответствует тому порядку полей, который был установлен при создании таблицы, то после имени таблицы в скобках приводится список полей в соот- ветствии со списком значений.

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

Если в списке полей отсутствует какое-либо поле таблицы, то ему будет присвоено значение NULL или значение по умолчанию (DEFAULT), если оно определено в командах CREATE TABLE или ALTER TABLE.

Пример: Добавить в таблицу "Сотрудники" новую запись:

INSERT INTO emp (depno, tabno, name, post, salary, born, phone)

VALUES(3, '00112', 'Попов В.Г.', 'экономист', 45400, '1979-12-23', '115-34-11');

1 строка создана.

В данном случае дата рождения вводится как строка '1979-12-23' в соответствии с форматом даты по умолчанию. А в качестве даты поступления сотрудника на работу будет установлена текущая дата, т.к. для поля edate определено значе- ние по умолчанию DEFAULT и в команде INSERT значение не вводится.

Примечание: посмотреть формат даты по умолчанию в СУБД Oracle можно так:

select sysdate from dual;

Изменить формат даты в Oracle можно следующей командой:

alter session set nls_date_format = 'yyyy-mm-dd';

'yyyy' означает год (4 цифры), 'mm' месяц, 'dd' день; разделители могут быть любыми.
UPDATE обновление данных в таблице. Синтаксис:

UPDATE <имя таблицы>

SET {<имя поля> = <выражение>}.,.. [ WHERE <условие> ];

Команда обновления изменяет в указанной таблице значения указанных полей тех записей, которые удовлетворяют заданному условию отбора (WHERE <условие>). Если условие не указано, обновления применяются ко всем записям таблицы.

Пример: Изменить должность и зарплату сотрудника Попова В.Г., табельный номер '00112':

UPDATE emp

SET post = 'ст. экономист', salary = salary*1.1 WHERE tabno = '00112';

1 строка обновлена.

DELETE удаление записей из таблицы. Синтаксис этой команды:

DELETE FROM <имя таблицы> [ WHERE <условие> ];


Внимание! Если не указывать условие выбора записей, то все записи таблицы могут быть удалены без предупреждения и без запроса на подтверждение!

Эта команда удаляет из указанной таблицы те записи, которые удовле- творяют заданному условию отбора (WHERE <условие>).
Примечание: в большинстве СУБД результаты ошибочной операции можно отменить сразу после её выполнения командой ROLLBACK (см. Главу 6).

Пример: Удалить запись о сотруднике Попове В.Г., табельный номер '00112':

DELETE FROM emp WHERE tabno = '00112';

1 строка удалена.

      1. 1   ...   9   10   11   12   13   14   15   16   ...   75


написать администратору сайта