
- •Агрегатные функции
- •Группировка
- •Умножение таблиц самих на себя
- •I способ
- •II способ
- •Операция in
- •Запросы на создание таблиц
- •Запросы на удаление таблиц
- •Запросы на изменение таблиц
- •Запросы на добавление новых записей (строк)
- •Запросы на удаление записей (строк)
- •Запросы на изменение записей (строк)
- •Ограничения
- •Именованные ограничения
I способ
Запрос:
SELECT FIO
FROM ZAKAZCHIKI
WHERE NZAKAZCHIKA=
(
SELECT NZAKAZCHIKA
FROM ZAKAZY
WHERE DataZakaza =
( SELECT min(DataZakaza)
FROM ZAKAZY
)
)
Результат всего запроса:
FIO |
Родин Н.Р. |
Как был получен этот результат:
а)
SELECT FIO
FROM ZAKAZCHIKI
WHERE NZAKAZCHIKA=
(
SELECT NZAKAZCHIKA
FROM ZAKAZY
WHERE DataZakaza = “29.09.2008”
)
б)
SELECT FIO
FROM ZAKAZCHIKI
WHERE NZAKAZCHIKA=2
II способ
SELECT FIO
FROM ZAKAZY, ZAKAZCHIKI
WHERE (ZAKAZY.NZAKAZCHIKA= ZAKAZCHIKI.NZAKAZCHIKA) and
(DataZakaza =
( SELECT min(DataZakaza)
FROM ZAKAZY
)
)
Операция in
Задание: вывести сведения о заказах NN2,5,7
I способ
SELECT *
FROM ZAKAZY
WHERE (Nzakaza=2) or (Nzakaza=5) or (Nzakaza=7)
II способ
SELECT *
FROM ZAKAZY
WHERE Nzakaza IN (2, 5, 7)
Результат запроса:
Nzakaza (*) |
Nzakazchika |
Nprod |
DataZakaza |
Tsena |
2 |
2 |
2 |
16.10.2008 |
2000 |
5 |
1 |
1 |
23.10.2008 |
2500 |
7 |
2 |
1 |
12.10.2008 |
2100 |
Справа от IN может находиться вложенный SELECT. В этом случае вложенный SELECT должен возвращать один столбец.
Задание: вывести сведения обо всех заказах, кроме NN2,5,7
Запрос:
SELECT *
FROM ZAKAZY
WHERE Nzakaza NOT IN (2, 5, 7)
Результат запроса:
Nzakaza (*) |
Nzakazchika |
Nprod |
DataZakaza |
Tsena |
1 |
1 |
1 |
12.10.2008 |
1000 |
3 |
2 |
1 |
29.09.2008 |
5000 |
4 |
3 |
2 |
20.10.2008 |
1500 |
6 |
2 |
2 |
22.10.2008 |
2300 |
Задание: вывести номера заказчиков, которые ничего не заказывали после 21.10.2008
Запрос:
SELECT Nzakazchika
FROM zakazchiki
WHERE Nzakazchika NOT IN
(
SELECT DISTINCT Nzakazchika
FROM ZAKAZY
WHERE DataZakaza > ”21.10.2008”
)
Результат выполнения вложенного SELECT:
Nzakazchika |
1 |
2 |
Результат всего запроса:
Nzakazchika |
3 |
Задание: вывести ФИО заказчиков, которые ничего не заказывали после 21.10.2008
Запрос:
SELECT FIO
FROM zakazchiki
WHERE Nzakazchika NOT IN
(
SELECT Nzakazchika
FROM ZAKAZY
WHERE DataZakaza > ”21.10.2008”
)
Результат всего запроса:
FIO |
Михайлова Г.С. |
Структурированный язык запросов (SQL - Structured Query Language)
Язык определения данных (DDL - Data Definition Language)
Операторы CREATE, DROP, ALTER
Язык манипуляции данными (DML - Data Manipulation Language)
Операторы SELECT, INSERT, DELETE, UPDATE