Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ud.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
821.25 Кб
Скачать

6.3 Операторы dml (операторы манипулирования данными)

  • SELECT - отобрать строки из таблиц

  • INSERT - добавить строки в таблицу

  • UPDATE - изменить строки в таблице

  • DELETE - удалить строки в таблице

  • COMMIT - зафиксировать внесенные изменения

  • ROLLBACK - откатить внесенные изменения

6.3.1 Примеры использования операторов манипулирования данными

Insert - вставка строк в таблицу

Пример. Вставка одной строки в таблицу:

insert into

A(ID_SOTR, FAM, ZAP)

values (1, 'Агафонов', 1000.2)

Пример. Вставка в таблицу B нескольких строк, выбранных из A у которых поле ZAP больше 1000). При этом остальные поля, а это FAM будут null (!):

INSERT INTO

B (ID_SOTR, ZAP)

SELECT ID_SOTR, ZAP

FROM A

WHERE A.ZAP>1000

Общий синтаксис INSERT (сокращенный):

INSERT INTO <объект_БД> [(имя_столбца [,имя_столбца …])]

{VALUES (<значение> [, <значение> …]) | <выражение_SELECT>};

<объект_БД>=имя_таблицы|имя_представления

<значение>={:переменная | <константа> | <выражение>

| <функция> ([<значение> [, <значение> …]])

| NULL

}

<константа> = число | 'строка'

<выражение> - арифметическое выражение

<функция> – пользовательская/стандартная функция.

<выражение_SELECT> будет рассмотрено ниже.

6.3.2 Update - обновление строк в таблице

Пример Обновление нескольких строк в таблице А, для которых поле FAM неопределено:

UPDATE A

SET FAM = 'неизвестно'

WHERE B.FAM IS NULL

Пример Обновление всех строк в таблице B, при этом значение поля ZAP будет в 100 раз больше прежнего:

UPDATE B

SET ZAP = ZAP*100

Общий синтаксис UPDATE (сокращенный):

UPDATE <объект_БД>

SET имя_столбца=<значение> [,имя_столбца=<значение> …]

[WHERE <условие_поиска>];

<условие_поиска> будет рассмотрено как часть при рассмотрении <выражение_SELECT>

6.3.3 Delete - удаление строк в таблице

Пример. Удаление нескольких строк в таблице:

DELETE FROM A

WHERE A.ZAP = 1;

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

DELETE FROM B;

Пример. Удаление всех строк в таблице, для которых значение поля FAM есть неопределенно, т.е. null

delete from B

where FAM is NULL

Общий синтаксис DELETE (сокращенный):

DELETE FROM <объект_БД>

{[WHERE <условие_поиска>]

6.3.4 Выбор данных из таблицы select

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

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

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

Результатом выполнения оператора SELECT всегда является таблица. Т.о., по результатам действий оператор SELECT похож на операторы реляционной алгебры. Любой оператор реляционной алгебры может быть выражен подходящим образом сформулированным оператором SELECT. Сложность оператора SELECT определяется тем, что он содержит в себе все возможности реляционной алгебры, а также дополнительные возможности, которых в реляционной алгебре нет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]