КаталогИндекс раздела
НазадОглавлениеВперед


3.2 Операторы манипулирования данными

3.2.1 Оператор SELECT

Оператор SELECT выполняет выборку данных из базы данных. Синтаксис оператора SELECT показан на рис.3.17.


Рисунок 3.17 - Синтаксис оператора SELECT

Как видно из рисунка, оператор состоит из запроса и необязательной фразы ORDER BY, которая дает возможность упорядочить результат запроса. Обратите внимание: фраза ORDER BY является частью оператора SELECT, а не запроса. Упорядочивание не является реляционной операцией и применяется в операторе SELECT в последнюю очередь, только после того, как результат реляционных операций уже получен.

Параметры фразы ORDER BY задают способ упорядочивания. Параметрами может быть список номеров столбцов результирующей таблицы или список столбцовых выражений. Если параметром является список, то сортировка ведется по первому элементу списка, при равенстве значений - по второму и т.д. Столбцовое выражение должно быть в точности то же, что и в списке выборки. Использование здесь псевдонимов не допускается.

Ключевые слова ASC и DESC определяют направление упорядочения: ASC (по умолчанию) - в порядке возрастания, DESC - в порядке убывания.

3.2.2 Оператор INSERT

Оператор INSERT выполняет вставку данных в таблицу базы данных. Минимальным объемом данных, который вставляется в таблицу, является одна строка. Нельзя вставить значение только одного столбца, не вставляя новую строку. Но во вставляемой строке значения в некоторых столбцах могут быть неопределенными (NULL). Для того чтобы потом вставить непустые значения в столбцы уже имеющейся в таблице строки, применяется оператор UPDATE. Синтаксис оператора INSERT показан на рис.3.18.


Рисунок 3.18 - Синтаксис оператора INSERT

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

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

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

3.2.3 Оператор DELETE

Оператор DELETE выполняет удаление строки или строк из таблицы базы данных. Минимальным объемом данных, который удаляется из таблицы, является одна строка. Нельзя удалить значение только одного столбца (но можно записать в столбец значение NULL при помощи оператора UPDATE). Синтаксис оператора DELETE показан на рис.3.19.


Рисунок 3.19 - Синтаксис оператора DELETE

В фразе FROM оператора DELETE может быть задана только одна таблица. Фраза WHERE оператора DELETE - та же, что и фраза WHERE подзапроса. Условие фразы WHERE проверяется для каждой строки таблицы, и удаляются те строки, для которых значение этого условия - TRUE.

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

3.2.4 Оператор UPDATE

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


Рисунок 3.20 - Синтаксис оператора UPDATE

В операторе UPDATE может быть задана только одна таблица. Фраза SET задает одно или несколько выражений присваивания значений столбцам. В этих выражениях слева от знака равенства - имя столбца, а справа - столбцовое выражение, формируемое по тем же правилам, что и столбцовое выражение в списке выборки подзапроса. Это означает, что значение, которое присваивается столбцу, может формироваться достаточно сложным выражением, в котором могут использоваться старые значения в этом столбце и других столбцах той же строки, функции и т.д.

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

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

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


НазадОглавлениеВперед
КаталогИндекс раздела