- •Санкт-Петербургский государственный
- •План лекции
- •Язык реляционных запросов
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Язык реляционных запросов (QBE)
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL.
- •Основы языка SQL. Основные
- •БЛАГОДАРЮ ЗА ВНИМАНИЕ !
Основы языка SQL.
Основные элементы оператора выборки
Использование нескольких отношений.
«Выдать фамилии поставщиков,
проживающих в Париже и отправивших
хотя бы в одной поставке более
300 деталей»
SELECT P.FAMP FROM P, PD WHERE (P.NP = PD.NP) AND
(P.CITYP = "Paris") AND (PD.KOL > 300)
Здесь <условие связи> представлено выражением (P.NP = PD.NP). Оно указывает, при помощи каких атрибутов (полей) осуществляется связывание таблиц для поля P.FAMP.
Основы языка SQL.
Основные элементы оператора выборки
SQL позволяет получать в результатах запросов не
только имеющиеся данные, но и вычисляемые
атрибуты – результаты вычислений над
другими атрибутами.
«Для каждой поставки поставщика P2 выдать количество и общий вес деталей»
SELECT PD.NP, PD.ND, PD.KOL,
PD.KOL*DET.VES
FROM DET, PD WHERE
PD.ND=DET.ND AND PD.NP = “P2”
22
Основы языка SQL.
Основные элементы оператора выборки
Результат |
NP |
ND |
KOL |
Expr1001 |
|
P2 |
D2 |
400 |
6800 |
|
P2 |
D1 |
300 |
3600 |
Одному из атрибутов результата присвоено название Expr1001, так как он содержит результат вычисления выражения PD.KOL*DET.VES.
СУБД «не знает», какое название присвоить вычисляемому атрибуту: Expr1001 - служебное имя
В SQL имеется возможность переименовать любой атрибут-результат.
23
Основы языка SQL.
Основные элементы оператора выборки
Назовем вычисляемый атрибут VESA
SELECT PD.NP, PD.ND, PD.KOL,
PD.KOL*DET.VES
AS VESA FROM DET, PD WHERE
PD.ND=DET.ND AND PD.NP = “P2”
Результат |
NP |
ND |
KOL |
VESA |
|
||||
|
P2 |
D2 |
400 |
6800 |
|
P2 |
D1 |
300 |
3600 |
24
Основы языка SQL.
Основные элементы оператора выборки
встроенные функции вычисляемых атрибутов:
COUNT(*) – подсчитывает количество кортежей (записей);
MAX(Atr) – выдает наибольшее значение атрибута Atr;
MIN(Atr) – выдает наименьшее значение атрибута Atr;
AVG(Atr) – подсчитывает среднее значение атрибута Atr
Основы языка SQL.
Основные элементы оператора выборки
«Необходимо определить общее число
поставок, количество поставленных
деталей и среднее количество деталей в одной поставке»
SELECT COUNT(*) AS KOL_POST,
SUM(PD.KOL) AS SUM_POST,
AVG(PD.KOL) AS SRED_KOL
FROM PD
26
Основы языка SQL.
Основные элементы оператора выборки
«Для каждого поставщика определить
общее число поставок, количество
поставленных деталей и среднее количество деталей в одной поставке»
признаком группировки будет атрибут PD.NP. В результате будет образовано четыре группы – для
P1, P2, P3 и P4.
SELECT NP, COUNT(*) AS KOL_POST,
SUM(PD.KOL) AS SUM_POST, AVG(PD.KOL) AS SRED_KOL
FROM PD GROUP BY PD.NP
27
Основы языка SQL.
Основные элементы оператора выборки
Результат
NP |
KOL_POST SUM_POST |
SRED_KOL |
|
P1 |
6 |
1300 |
216,6666667 |
P2 |
2 |
700 |
350 |
P3 |
1 |
200 |
200 |
P4 |
3 |
900 |
300 |
28
Основы языка SQL.
Основные элементы оператора выборки
SQL позволяет упорядочить результаты
запросов по возрастанию или убыванию нескольких атрибутов (полей) при помощи конструкции вида
ORDER BY <условие упорядочивания>
ASC| DESC ,
где <условие упорядочивания> –
перечень атрибутов (полей), в соответствии с которыми производится сортировка результата запроса;
ASC (DESC) – признак упорядочивания по возрастанию (убыванию).
Основы языка SQL.
Основные элементы оператора выборки
Конструкция
UNION <подзапрос >
позволяет осуществлять операцию объединения реляционной алгебры.
Фактически с ее помощью производится
объединение результатов двух и более запросов (подзапрос – это другой запрос).
30