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

НИЯУ "МИФИ"

Базы данных. Язык SQL.

Москва

2011

Основы проектирования запросов SQL

1.1

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

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

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

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

Основы проектирования запросов SQL

1.2

Манипулятивная часть языка SQL (DML) является декларативным языком программирования.

Процедурные возможности, как правило, являются СУБД-зависимыми (Transact SQL, PL/SQL)

Запросы могут быть объединены в хранимую процедуру для повторных вызовов.

Курсоры позволяют выполнить процедурные действия над отдельными строками, возвращенными запросом

Основы проектирования запросов SQL

1.1

Предложение SELECT

SELECT список_вывода FROM источники

WHERE условие_отбора_строк GROUP BY список_для_группирования HAVING условие_отбора_групп ORDER BY список_для_упорядочивания

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

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

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

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

Основы проектирования запросов SQL

1.1

Порядок обработки запроса

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

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

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

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

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

Основы проектирования запросов SQL

1.1

Порядок обработки запроса SELECT [DISTINCT] список_вывода

список_вывода - определяет колонки в результирующей таблице DISTINCT – исключает вывод дубликатов

имя_таблицы.имя_колонки уточненное имя.

* или имя_таблицы.* - получение всех колонок таблицы.

элемент AS новое_имя – задат новое имя колонки

Основы проектирования запросов SQL

1.1

Порядок обработки запроса

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

1.1

Порядок обработки запроса

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

1.1

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

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

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

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

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

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

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

Пример:

 

SELECT D1.Dep_id, D2.Dep_name

РЕЗУЛЬТАТ ?

FROM Department D1, Department D2

Основы проектирования запросов SQL

1.1

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

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

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

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

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

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

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

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

внешнее (OUTER)

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

Соседние файлы в папке docs