Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по БД / Язык БД SQL.ppt
Скачиваний:
53
Добавлен:
10.06.2015
Размер:
593.41 Кб
Скачать

Формат операторов подъязыка DML

НАЗВАНИЕ

НАЗНАЧЕНИЕ

ОПЕРАТОРА

ОПЕРАТОРА

 

 

SELECT

Выборка кортежей

UPDATE

Изменение кортежей

INSERT

Вставка новых кортежей

DELETE

Удаление кортежей

51

1. Формат оператора выборки кортежей

SELECT[ALL|DISTINCT]

<список данных>

FROM <список отношений>

[WHERE <условие выборки>] [GROUP BY <имя_атрибута>

[, <имя_атрибута>]…]

[HAVING <условие поиска>] [ORDER BY <спецификация>

[, <спецификация> ]…];

52

Оператор SELECT позволяет произ- водить выборку и вычисления над данными из одного или нескольких отношений. Результатом выполнения этого оператора является ответная

таблица, которая может иметь (ALL), или не иметь (DISTINCT) повторя-

ющиеся кортежи. По умолчанию в ответную таблицу включаются все кортежи, в том числе и повто- ряющиеся.

53

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

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

применяют конструкцию вида

<Имя_отношения> . <Имя_атрибута> . Список данных может содержать и вы- ражения над атрибутами, в том числе, знаки арифметических операций, конс- танты и круглые скобки.

54

Операнд WHERE задает условия, которым должны удовлетворять кортежи в результирующей табли- це. Выражение <условие выборки> является логическим. Его элемен- тами могут быть имена атрибутов, операции сравнения, логические связки and, or, not, круглые скобки,

а также специальные функции LIKE,

NULL, IN и др.

55

Операнд GROUP BY позволяет выделять в результирующем множестве кортежей группы. Группой являются кортежи с сов- падающими значениями в столбцах, перечисленных за ключевыми словами GROUP BY. Выделение групп требуется

для использования в логических выра- жениях операндов WHERE и HAVING, где

HAVING<условия поиска> является спе- циальной формой операнда WHERE, и указывает дополнительный критерий отбо- ра данных в каждую группу.

56

В логических и арифметических выра- жениях можно использовать следую- щие функции как групповые:

AVG, MAX, MIN, SUM, COUNT.

Наконец, опция ORDER BY задает по- рядок сортировки результирующего множества кортежей. Она аналогична конструкции оператора CREATE INDEX.

Каждая <спецификация> представляет собой пару

<имя_атрибута> [ASC|DESC].

57

2. Формат оператора изменения кортежей

UPDATE

<имя_отношения>

SET<имя_атрибута> =

= {<выражение>,

NULL}

[, SET

<имя_атрибута>=

= {<выражение>,

NULL}…]

[ WHERE <условие>];

Выполнение опера- тора UPDATE сос-

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

условию, заданному операндом WHERE.

58

3. Форматы оператора вставки новых кортежей

а) INSERT INTO

 

б) INSERT INTO

<имя_отноше-

 

<имя_отноше-

ния>

 

ния>

[(<список

 

[(<список

атрибутов>)]

 

атрибутов>)]

VALUES (<список

 

<предложение

значений>);

 

SELECT>;

 

 

 

59

4. Формат оператора удаления кортежей и замечание

DELETE FROM

<имя_отношения> [WHERE <условие>];

Замечание. Язык SQL обладает ре- ляционной полно- той.

60