DB2 – система управления реляционными базами данных. Заданное число упорядоченных столбцов и неупорядоченные строки, страница 16

Язык SQL очень мощный; некоторые команды могут манипулировать как с одной строкой, так и с одним миллионом строк. Иногда наивные пользователи не представляют себе этой силы.

Следует уделить особенное внимание следующим двум SQL-операторам.


INSERT

INSERT INTO table (список_столбцов)

константа

VALUES ( {        хост-переменная          } , )

NULL

                                                           специальный регистр

INSERT INTO dept

VALUES (12, ‘Engineering’, ‘Simon Moore’, 218000)

INSERT INTO dept (dept_no, dept_name)

VALUES (13, ‘Education’)

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

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

Дополнительной возможностью INSERT предложения является использование

SELECT-предложения.

Две формы оператора:

  • INSERT с VALUES – позволяет вставить одну строку в таблицу или представление
  • INSERT со словом SELECT позволяет вставить одну или более строк в таблицу, выбирая их из других таблиц и/или представлений.

UPDATE

UPDATE sales_person

SET sales_target = 400000

WHERE dept_no = 3

UPDATE sales_person

SET sales_target = sales_target * 1.2

WHERE dept_no = 3

Остерегайтесь!

UPDATE sales_person

SET sales_target = 400000

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

За одну операцию может быть изменено несколько значений строки, например:

UPDATE sales_person

SET sales_target = 450000, town = ‘London’

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


DELETE

DELETE FROM dept

WHERE dept_no > 20

Остерегайтесь!

DELETE FROM dept

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

Удаление - невостановимая операция; не существует операции восстановления после выполнения интерактивной операции DELETE. Примите во внимание,что для начинающих пользователей привилегии на удаление не предоставляются.


Расширенный SQL

Предисловие

Наряду с простым SELECT предложением, SQL предлагает некоторые дополнительные средства. Они позволяют получить суммарную информацию и получить доступ к данным необычным путем.

В этой главе мы покажем некоторые из этих возможностей.

Задачи

Содержимое этой главы вам необходимо для:

  • Изучения дополнительных конструкций SQL
  • Построения самоссылающихся  соединений
  • Использования кореллированных подзапросов

Расширенный SELECT


Секция FROM расширена

 включением

несколькихтаблиц

 


SELECT * FROM customer, orders

WHERE customer.cust# = order.cust#

 


Секция WHERE включает

 условия, относящиеся

 к двум таблицам

 


Создаем простое соединение!

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

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

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

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

Замечание: если избыточные отношения существуют между несколькими таблицами, включите эти отношения в WHERE секцию. Это позволит провести оптимизацию для выбора стратегии выполнения запроса.


Соединения