Главная Программы Учебное пособие Практикум Дополнительно
    Введение
  Глава 1
  Глава 2
  Глава 3
  Глава 4
  Глава 5
  Глава 6
  Глава 7
  Глава 8
  Задания
  Литература
  Приложение 1
  Приложение 2
  Приложение 3

Практикум

Глава 6. Манипулирование данными

После создания собственных таблиц вам потребуется добавлять, изменять и удалять их строки с помощью команд обработки данных.  Язык манипулирования данными (DML) является сердцем SQL.  Для каждого добавления, изменения или удаления данных из базы данных выполняется команда DML.  Совокупность команд DML, результаты действия которых еще не стали постоянными, организуют транзакцию.

 

6.1. Вставка новых строк в таблицу

Команда INSERT позволяет вставлять только по одной строке в таблицу.

Подпись: INSERT INTO таблица [ (столбец[, столбец…] ) ]
VALUES 	(значение[, значение…] );

Синтаксис:

где

таблица

имя таблицы.

столбец

имя столбцов таблицы, в которые вносятся изменения.

значение

соответствующие значения столбцов.

 

Команда INSERT вставляет новую строку целиком, содержащую значения для каждого из столбцов (даже неопределенные).  Для того, чтобы вставить значения для нескольких столбцов, необходимо их перечислить в предложении INSERT после названия таблицы (при этом значения для столбцов, не указанных в списке, считаются неопределенными).  Значения указываются в порядке следования столбцов в структуре таблицы (в последовательности, используемой по умолчанию) или в порядке их перечисления в списке предложения INSERT.  Символьные значения и даты заключаются в апострофы.

Пример.  В таблицу S_DEPT вставляется строка, содержащая значения для всех ее столбцов.

 

 

Вставка строк с неопределенными значениями

Неопределенные значения в таблицу можно вставить двумя способами: неявно, опуская значение для этого столбца в списке столбцов, или явно, указав в качестве неопределенного значения ключевое слово NULL (или пустую символьную константу ‘’) в списке предложения VALUES. При неявном способе для столбцов, которым заданы значения по умолчанию (элемент DEFAULT выражение команды CREATE TABLE), будут присваиваться эти значения.  Если такие значения не заданы – неопределенные значения.

Пример.  Неопределенное значение вставляется неявно.

 

 

Пример. Явно указывается неопределенное значение (сравните с предыдущим примером).

 

Пример.  Имя пользователя и текущее значение даты вставляются с использованием функций USER и SYSDATE.

 

 

Пример.  Вставка строки в таблицу S_EMP с указанием конкретной даты, использую функцию TO_DATE.

 

 

Пример. Запись информации об отделе в таблицу S_EMP. У пользователя запрашивается номер отдела, название отдела и номер региона.

 

 

Копирование строк из другой таблицы

Синтаксис:

 

INSERT INTO таблица (столбец[, столбец])

подзапрос;

где

таблица

имя таблицы.

столбец

имя столбца в таблице, значение которого необходимо ввести.

подзапрос

Подзапрос, возвращающий строки в таблицу.

 

Пример. Запись информации о слушателе курса в таблицу S_EMP.

 

 

При таком способе вставки строк в таблицу предложение VALUES не используется. Количество столбцов, указанных в предложении INSERT, должно совпадать с количеством столбцов в подзапросе.

 

6.2. Обновление строк в таблице

Синтаксис:

UPDATE таблица

SET столбец = значение[, столбец = значение…]

[WHERE условие];

где

таблица

имя таблицы.

столбец

имя обновляемого столбца таблицы.

значение

соответствующие значения или подзапрос для этого столбца.

условие

Задает строки, которые необходимо изменить, и состоит из имен столбцов, выражений, констант, подзапросов и операторов сравнения.

 

Пример.  Перевод служащего номер 2 в отдел 10.

 

 

Пример.  Перевод служащего номер 1 в отдел 32 и повышение его заработной платы до 2550.

 

 

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

 

Пример.  Ввод данных о назначении комиссионных в размере 10 процентов каждому служащему компании.

 

 

Примечание.  Если вы пытаетесь обновить запись и новое значение столбца противоречит ограничению, выдается сообщение об ошибке.

 

Пример.  Указанное в команде значение внешнего ключа не существует в родительской таблице для первичного ключа.  Поэтому выдается сообщение о том, что “родительский ключ” не обнаружен, что является нарушением ограничения.

 

 

6.3. Удаление строк из таблицы

Синтаксис:

DELETE FROM таблица

[WHERE условие];

где

таблица

имя таблицы.

условие

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

 

Примечание. Если предложение WHERE отсутствует, то удаляются все строки таблицы.

Пример. Удаление всех строк из таблицы TEST.

 

 

Пример. Удаление всех служащих, которые были приняты на работу после 1 января 1996 года.

 

 

Примечание.  Если вы пытаетесь удалить запись, на значение которой имеется ограничение, выдается сообщение об ошибке.

Пример. Попытка удалить все отделы, расположенные в регионе номер 1.

 

Для закрепления материала рекомендуется выполнить Практическое занятие 8.