
- •Университет машиностроения
- •Запрос на выборку
- •Запрос на выборку
- •Запрос на выборку
- •Применение
- •Запрос на выборку
- •HAVIN
- •SELECT DeptID, SUM(SaleAmount)
- •Запрос на выборку
- •Построение предиката
- •Построение предиката
- •SELECT ProductID, Name, Color
- •Запрос на выборку
- •LIKE
- •SELECT p.FirstName, p.LastName, ph.PhoneNumber
- •Запрос на выборку
- •Операции с множествами в
- •SELECT ProductID, Name, Color
- •Запрос на выборку
- •Использование подзапросов
- •SELECT ProductID, Name, Color
- •Запрос на выборку
- •JOIN
- •SELECT expessions [,... n] FROM table1
- •Виды оператора JOIN
- •INNER JOIN
- •LEFT OUTER
- •RIGHT OUTER
- •FULL OUTER
- •CROSS JOIN
- •Схемы объединения
- •Запрос на выборку
- •UNION
- •UNION
- •Запрос на выборку
- •Запрос на выборку
- •Статистические функции по
- •Статистические функции по подмножеству
- •Недокументированная
- •Запрос на выборку
- •Перекрестные запросы
- •Университет машиностроения Кафедра «Автоматика и процессы управления»

Использование подзапросов
в• УсловныйWHEREпредикат может включать подзапрос
•В составе предиката подзапрос заключается в круглые скобки [ ( , ) ]
•Вложенный запрос (подзапрос) должен
возвращать скалярное (одно) логическое значение (или NULL) либо выступать операндом в операции, возвращающем подобное значение
• Операции с подзапросами, возвращающими список значений, должны использовать предикаты ANY
Информатика(SOME. 1 семестр) и. ТемаALL13. ПрименениедляSQLгруппового
EXISTS

SELECT ProductID, Name, Color
FROM Production
WHERE EXISTS ( SELECT
ProductID
FROM Production ); SELECT ProductID, Name, Color
FROM Production
WHERE Cost >= ( SELECT AVG(
Cost )
FROM Production );
SELECT Name, NCost
FROM ( SELECT Name, Cost * 1.15 AS NCost
FROM Production ) WHERE ProductID >= 725 );
Наличие в
списке хотя бы одного
результата
Сравнение с единственны
м
возвращаем
ым
значением
Использован
ие
подзапроса
как
источника
данных
Информатика. 1 семестр. Тема 13. Применение SQL

Запрос на выборку
SELECT smth
Оператор JOIN
Информатика. 1 семестр. Тема 13. Применение SQL

JOIN
•Оператор SQL реализующий операцию соединения реляционной алгебры для раздела FROM
•В схему таблицы-результата входят столбцы обеих таблиц-операндов
(«сцепление» схем операндов)
•Каждая строка таблицы-результата является «сцеплением» строк таблиц- операндов
•Результирующий набор строк зависит от типа операции соединения и условия
соединения
Информатика. 1необходимостисем стр. Тема 13. Пр менение SQL
• При соединения

SELECT expessions [,... n] FROM table1
[ INNER | [ LEFT | RIGHT | FULL ] OUTER | CROSS ] JOIN
table2
[ ON condition ]
Для перекрёстного соединения (декартова произведения) CROSS JOIN
можно использовать (,) SELECT expessions [,... n]
FROM table1,…, tableN
Информатика. 1 семестр. Тема 13. Применение SQL

Виды оператора JOIN |
Исходные данные |
|||
• INNER JOIN – |
Person |
|
|
|
внутреннее соединение |
CityI |
|
||
Name |
|
|||
таблиц |
|
d |
|
|
• OUTER JOIN – внешнее |
Андрей |
1 |
|
|
Леонид |
2 |
|
||
соединение таблиц |
Address |
|||
Сергей |
1 |
|||
• LEFT OUTER JOIN – |
City |
4 |
Book |
|
|
Григор |
|
||
левое внешнее |
Idий |
Name |
|
|
соединение таблиц |
1 |
Москва |
||
(несимметричное) |
2 |
Санкт- |
|
|
• RIGHT OUTER JOIN – |
Петербург |
|||
3 |
Казань |
правое внешнее соединение таблиц
(несимметричное)
• CROSS JOIN – перекрёстное соединение
• FULL OUTER JOIN –
таблиц
Информатикаполное. 1 семестрвнешнее. Тема 13. Применение SQL

INNER JOIN
Внутреннее соединение таблиц
Симметричный оператор
Результат – таблица из соединённых строк
таблиц-операндов по |
||
SELECT * FROM |
||
предикату |
|
|
Person |
|
|
INNER JOIN City |
||
ON Person.CityId = |
||
Person-City |
|
|
City.Id |
Person.Ci |
City.Id |
Person Na |
||
me |
tyID |
|
Андрей |
1 |
1 |
Леонид |
2 |
2 |
Сергей |
1 |
1 |
Person
Name |
CityI |
|
|
d |
|
Андрей |
1 |
|
Леонид |
2 |
Address |
Сергей |
1 |
|
City |
4 |
Book |
Григор |
|
|
Idий |
Name |
|
1 |
Москва |
|
2 |
Санкт- |
|
Петербург |
||
3 |
Казань |
|
City.Name |
|
|
Москва |
|
|
Санкт- |
|
|
Петербург |
|
|
Москва |
|
|

LEFT OUTER
ЛевоеJOINвнешнее соединение таблиц
Несимметричный оператор
Результат – таблица из соединённых строк таблиц- операндов по предикату
дополненных оставшимися
SELECT * FROM
строками левой таблицы (дополняютсяPerson NULL)
LEFT OUTER JOIN
City |
Person.Ci |
City.Id |
|
Person.Na |
|||
ON Person.CityId = |
|||
me |
tyID |
|
|
City.Id |
|
1 |
1 |
Андрей |
|
||
Леонид |
|
2 |
2 |
Сергей |
|
1 |
1 |
Григорийсеместр |
4 |
NULL |
Person
Name |
CityI |
|
|
d |
|
Андрей |
1 |
|
Леонид |
2 |
Address |
Сергей |
1 |
|
City |
4 |
Book |
Григор |
|
|
Idий |
Name |
|
1 |
Москва |
|
2 |
Санкт- |
|
Петербург |
||
3 |
Казань |
City.Name
Москва
Санкт- Петербург
Москва NULL

RIGHT OUTER
ПравоеJOINвнешнее соединение таблиц
Несимметричный оператор
Результат – таблица из соединённых строк таблиц- операндов по предикату
дополненных оставшимися
SELECT * FROM
строками правой таблицы (дополняютсяPerson NULL)
RIGHT OUTER JOIN
City |
Person.Ci |
City.Id |
Person.Na |
||
ON Person.CityId = |
||
me |
tyID |
|
City.Id |
1 |
1 |
Андрей |
||
Леонид |
2 |
2 |
Сергей |
1 |
1 |
NULL семестр NULL |
3 |
Person
Name |
CityI |
|
|
d |
|
Андрей |
1 |
|
Леонид |
2 |
Address |
Сергей |
1 |
|
City |
4 |
Book |
Григор |
|
|
Idий |
Name |
|
1 |
Москва |
|
2 |
Санкт- |
|
Петербург |
||
3 |
Казань |
City.Name
Москва
Санкт- Петербург
Москва
Казань

FULL OUTER
ПолноеJOIN внешнее соединение таблиц
Симметричный оператор
Результат – таблица из соединённых строк таблиц- операндов по предикату
дополненных оставшимися
SELECT * FROM
строками обеих таблиц (дополняютсяPerson NULL)
FULL OUTER JOIN
PersonCity.Na |
Person.Ci |
City.Id |
|
me |
tyID |
|
|
ON Person.CityId = |
|||
Андрей |
|
1 |
1 |
City.Id |
|
2 |
2 |
Леонид |
|
||
Сергей |
|
1 |
1 |
NULL |
|
NULL |
3 |
Григорийсеместр |
4 |
NULL |
Person
Name |
CityI |
|
|
d |
|
Андрей |
1 |
|
Леонид |
2 |
Address |
Сергей |
1 |
|
City |
4 |
Book |
Григор |
|
|
Idий |
Name |
|
1 |
Москва |
|
2 |
Санкт- |
|
Петербург |
||
3 |
Казань |
City.Name
Москва
Санкт- Петербург
Москва
Казань NULL