Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
10.05.2014
Размер:
246.24 Кб
Скачать

SQL

Structured Query Language

SQL

Результатом запроса SELECT всегда является таблица.

Данные, возвращаемые запросом содержат данные из таблиц БД, или результаты операций над ними.

Как правило один и тот же набор результирующих данных может быть получен различными способами.

Скорость двух эквивалентных с точки зрения результата запросов может различаться на порядок.

SQL

! SQL " #"!$% ! % $&$%%$.

($)"#$" % * , ! ! $, , -./0- % % (Transact SQL, PL/SQL)

8$ % & 9 9:"# " ;$% ,$)"#$ # $; .

SQL

SELECT

SELECT список_вывода

FROM источники

WHERE условие_отбора_строк

GROUP BY список_для_группирования

HAVING условие_отбора_групп

ORDER BY список_для_упорядочивания

SELECT определяет совокупность колонок результирующей таблицы;

WHERE определяет дополнительные условия, накладываемые выбор строк;

GROUP BY позволяет сгруппировать строки по определенному признаку для последующей обработки;

HAVING позволяет из всех групп выбрать некоторые группы;

ORDER BY позволяет упорядочить строки результирующей таблицы;

FROM определяет совокупность источников данных;

SQL

Шаг 1 (FROM). Выделяются таблицы и представления, из которых выбираются нужные данные.

Шаг 2 (WHERE). Из выбранных таблиц выбираются строки, удовлетворяющие указанному условию отбора.

Шаг 3 (GROUP BY). Выбранные строки объединяются в группы (группируются) по указанным признакам.

Шаг 4 (HAVING). Из созданных групп выделяются группы, удовлетворяющие условию отбора групп. В качестве условия могут использоваться только атрибуты, участвующие в групировке

Шаг 5 (SELECT). Из выбранных групп в соответствии со списком вывода выделяются и обрабатываются необходимые данные, создавая строки и столбцы результирующей таблицы

SQL

SELECT

SELECT [DISTINCT] _

_ -

DISTINCT –

_ !. _ – .

* _ !.* - .

# AS _ –

SQL

SELECT

SELECT [DISTINCT] список_вывода

Пример1:

 

DEPARTMENT

 

 

 

 

 

Dep_id

Dep_name

Manager_id

 

 

 

1

# $%

100

 

 

 

2

(% $ )

200

 

 

 

3

+ % ,

200

 

 

 

SELECT * FROM DEPARTMENT

Dep_id

Dep_name

Maneger_id

 

 

 

1

# $%

100

 

 

 

2

(% $ )

200

 

 

 

3

+ % ,

200

 

 

 

SQL

SELECT

SELECT [DISTINCT] список_вывода

Пример2:

SELECT Dep_id, Dep_name

FROM DEPARTMENT

Dep_id

Dep_name

 

 

1

# $%

 

 

2

(% $ )

 

 

3

+ % ,

 

 

Пример3:

SELECT Dep_id as D, Dep_name as N

FROM DEPARTMENT

D

N

 

 

1

# $%

 

 

2

(% $ )

 

 

3

+ % ,

 

 

Пример4:

SELECT DISTINCT Manager_id as M_ID

FROM DEPARTMENT

M_ID

100

200

SQL

Конструкция FROM,

FROM элемент1, элемент2, … Элементом может быть:

Ссылка на таблицу. Соединение таблиц.

Вложенное табличное выражение.

Ссылка на таблицу:

имя_таблицы [[AS] корреляционное имя ], где:

Имя_таблицы существующая таблица базы данных. Корреляционное имя – псевдоним таблицы в рамках данного запроса.

Пример:

SELECT D1.Dep_id, D2.Dep_name

РЕЗУЛЬТАТ ?

FROM Department D1, Department D2

SQL

Соединение таблиц

Соединение таблиц:

элемент1 [тип_соединения] JOIN элемент2 ON условие_соединения

Элементом может быть:

Ссылка на таблицу. Соединение таблиц.

Вложенное табличное выражение.

Тип соединения:

внутреннее (INNER)

внешнее (OUTER)

левое (LEFT) правое (RIGHT) полное (FULL)

Соседние файлы в папке Презентации БД (ВФ)