Язык запросов SQL
Язык запросов к данным (DML)
SELECT
SELECT
Синтаксис
Предложение offset
Комментарии
Задание условий при выборке данных
Операторы в предложении where
Специальные операторы языка SQL
Операторы сравнения
Логические операторы
Оператор IS NULL
Оператор BETWEEN...AND
Оператор IN
Оператор NOT
Оператор LIKE
Метасимвол []
Найдем в таблице Клиенты записи, в которых фамилия клиента начинается с бук­вы «М»:
Оператор UNIQUE
Оператор EXISTS
Оператор UNIQUE
Оператор ALL
Оператор ANY
Операторы объединения
Операторы объединения
Оператор отрицания
Вычисляемые поля
Приоритет операторов
Математические функции
Псевдонимы полей
Пример
Функции агрегирования
Стандартные функции агрегирования
Группировка данных
Синтаксис оператора SELECT с предложением GROUP BY следующий
HAVING
Упорядочение данных
Порядок сортировки
Например
Вывод данных в случайном порядке
347.92K
Category: databasedatabase

Язык запросов SQL. Язык запросов к данным (DML)

1. Язык запросов SQL

ЯЗЫК ЗАПРОСОВ SQL

2. Язык запросов к данным (DML)

ЯЗЫК ЗАПРОСОВ К ДАННЫМ
(DML)
Язык запросов к данным
подмножеств языка SQL.
является
одним
из
DML состоит всего из одной команды SELECT.
Это один из самых сложных и мощных оператор SQL.
Запросы формируются для извлечения из таблиц базы
данных информации соответствующей некоторым
требованиям, задаваемым пользователем.

3. SELECT

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

4. SELECT

имена полей в списке разделяются через запятую;
для выборки всех полей таблицы (таблиц) используется
символ подстановки *
параметр All (задан по умолчанию) означает, что результат
выборки
будет
содержать
все
записи,
включая
дублирующие.
при использовании параметра DISTINCT результат запроса
не будет содержать дублирующихся строк

5. Синтаксис

СИНТАКСИС
ОБЯЗАТЕЛЬНЫЕ
SELECT [ALL|DISTINCT]
{* | имя_поля [AS псевдоним]}
FROM список таблиц [[AS] псевдоним]
ДОПОЛНИТЕЛЬНЫЕ
[ WHERE условие выборки ]
[ GROUP BY поле_группировки]
[ HAVING критерий выбора групп ]
[ ORDER BY поле ]
[ LIMIT количество строк ]
Оператор SELECT не используется автономно, вместе с ним обязательно должны задаваться уточняющие предложения.

6. Предложение offset

ПРЕДЛОЖЕНИЕ OFFSET
Select имя поля
From имя таблицы
Limit 5 offset 5;

7. Комментарии

КОММЕНТАРИИ

8. Задание условий при выборке данных

ЗАДАНИЕ УСЛОВИЙ ПРИ
ВЫБОРКЕ ДАННЫХ
SELECT { ALL | DISTINCT} {*| поле1, поле2.....полеМ}
FROM Таблица1 {,Таблица2.....ТаблицаM}
WHERE условие

9. Операторы в предложении where

ОПЕРАТОРЫ В
ПРЕДЛОЖЕНИИ WHERE

10. Специальные операторы языка SQL

СПЕЦИАЛЬНЫЕ ОПЕРАТОРЫ
ЯЗЫКА SQL
1. операторы сравнения;
2. логические операторы;
3. операторы объединения;
4. операторы отрицания

11. Операторы сравнения

ОПЕРАТОРЫ СРАВНЕНИЯ
Операторы сравнения используются в SQL-запросах для
наложения ограничений на информацию, возвращаемую в
результате выполнения запроса.
=
<>
>
<
<=
>=

12. Логические операторы

ЛОГИЧЕСКИЕ ОПЕРАТОРЫ
К логическим относятся операторы, в которых для задания
ограничений на отбор данных используются специальные
ключевые слова.

13. Оператор IS NULL

ОПЕРАТОР IS NULL
Оператор IS NULL предназначен для сравнения текущего
значения поля со значением NULL.
Он используется для отбора записей, в некоторое поле
которых не внесено никакого значения
SELECT Фамилия, Имя, Отчество, Телефон. Город, Адрес
FROM Клиенты
WHERE Предприятие IS NULL

14. Оператор BETWEEN...AND

ОПЕРАТОР BETWEEN...AND
Применяется для отбора записей, в которых значения поля
находятся внутри заданного диапазона.
Границы диапазона включаются в условие отбора.
SELECT *
FROM Товары
WHERE Цена BETWEEN 200 AND 2000

15. Оператор IN

ОПЕРАТОР IN
Используется для выборки записей, в которых значение
некоторого поля соответствует хотя бы одному из значений
заданного списка.
SELECT Фамилия, Имя, Отчество, Страна
FROМ Клиенты
WHERE Страна IN ('Беларусь', 'Россия', 'Казахстан');

16. Оператор NOT

ОПЕРАТОР NOT
Используется для отрицания всех условий, следующих за ним.

17. Оператор LIKE

ОПЕРАТОР LIKE
Оператор LIKE применяется для сравнения
значения поля со значением, заданным при помощи
шаблонов.
Для задания шаблонов используются два символа:
знак процента (%) — заменяет последовательность
символов любой (в том числе и нулевой) длины;
символ подчеркивания (_) — заменяет любой
символ.

18.

Метасимволы – специальные символы, применяемые
для поиска части значения.
Шаблон поиска = это условие отбора строк.
Like – это предикат

19. Метасимвол []

МЕТАСИМВОЛ []
Служит для указания набора символов, каждый из которых
должен совпадать с искомым значением, причем на
указанном месте.

20. Найдем в таблице Клиенты записи, в которых фамилия клиента начинается с бук­вы «М»:

НАЙДЕМ В ТАБЛИЦЕ КЛИЕНТЫ ЗАПИСИ,
В КОТОРЫХ ФАМИЛИЯ КЛИЕНТА
НАЧИНАЕТСЯ С БУКВЫ «М»:
SELECT Фамилия, Имя, Отчество, Телефон
FROM Клиенты
WHERE Фамилия LIKE 'М%’;
Найдем записи, для которых номер телефона начинается с
символов (816)025-61, а две последние цифры неизвестны:
SELECT Фамилия, Имя, Отчество, Телефон
FROM Клиенты
WHERE Телефон LIKE '(816)025-61__'

21. Оператор UNIQUE

ОПЕРАТОР UNIQUE
Оператор UNIQUE
используется для проверки записи таблицы на уникальность.
SELECT UNIQUE Дата_продажи FROM Продажи;

22. Оператор EXISTS

ОПЕРАТОР EXISTS
Оператор EXISTS используется для
соответствующих заданному критерию.
SELECT Наименование, Цена
FROM Товары
WHERE EXISTS
(SELECT *
FROМ Продажи
WHERE Продано>10);
отбора
записей,

23. Оператор UNIQUE

ОПЕРАТОР ALL
Оператор ALL используется для сравнения исходного
значения со всеми другими значениями, входящими в
некоторый набор данных.
SELECT *
FROM Товары
WHERE Цена > АLL
(SELECT Цена
FROM Продажи
WHERE Продано>10)

24. Оператор ALL

ОПЕРАТОР ANY
Оператор ANY применяется для сравнения заданного
значения с каждым из значений некоторого набора данных.
Если в предыдущем примере заменить оператор: ALL
оператором ANY, то будет возвращен список товаров, цена
которых больше, чем хотя бы у одного из товаров, проданных
в количестве больше 10.

25. Оператор ANY

ОПЕРАТОРЫ
ОБЪЕДИНЕНИЯ
Оператор AND используется в тех случаях, когда
необходимо
отобрать
записи,
соответствующие
нескольким условиям, причем для каждой записи,
включаемой в результат выборки, должны выполняться
все заданные ограничения.
Оператор AND объединяет несколько условий путем
выполнения
операции
логического
умножения
результатов всех заданных ограничений. Результат true,
соответственно, будет получен только в том случае, если
все объединяемые условия принимают значение true.

26. Операторы объединения

Для примера произведем выборку данных о товарах, цена которых больше
50, но меньше 1000:
SELECT *
FROМ Товары
WHERE (Цена>50) AND (Цена<1000)

27.

ОПЕРАТОРЫ
ОБЪЕДИНЕНИЯ
Оператор OR выполняет операцию логического
сложения результатов всех заданных условий.
При использовании данного оператора запись
включается в результирующую выборку в случае
выполнения хотя бы одного из заданных
ограничений

28. Операторы объединения

Синтаксические правила использования оператора 0R такие же, как и для
оператора AND. Следующий запрос возвратит список товаров, цена которых
меньше 50 или больше 1000
SELECT *
FROM Товары
WHERE (Цена<50) OR (Цена>1000)

29.

ОПЕРАТОР ОТРИЦАНИЯ
Для каждого из рассматриваемых операторов может быть
выполнена операм отрицания, меняющая результат выполнения
оператора на противоположный. Для реализации этой операции
используется оператор NOT.
Примеры применения этого оператора к логическим операторам:
IS NOT NULL
NOT BETWEEN
NOT IN
NOT LIKE
NOT EXISTS
NOT UNIQUE

30. Оператор отрицания

ВЫЧИСЛЯЕМЫЕ ПОЛЯ
При создании вычисляемого поля можно использовать
следующие арифметические операторы:
□ оператор сложения (+) или (||);
□ оператор вычитания (-);
□ оператор умножения (*);
□ оператор деления (/).

31. Вычисляемые поля

ПРИОРИТЕТ ОПЕРАТОРОВ
Приоритет
перечисленных
операторов
соответствует
общепринятому: сначала выполняются умножение и деление,
затем — сложение и вычитание.
Порядком выполнения операторов
помощью круглых скобок.
можно
управлять
с

32. Приоритет операторов

SELECT [Код товара],
Цена,
Заказано,
Продано,
Цена*Продано,
Цена*3аказано.
Цена*Заказано-Цена*Продано
FROM Продажи

33.

МАТЕМАТИЧЕСКИЕ ФУНКЦИИ
Помимо
арифметических
операторов
допускается
использование ряда математических функций, например:
□ ABS — вычисление абсолютного значения;
□ ROUND — округление;
□ SQR — извлечение квадратного корня;
□ ЕХР — экспонента;
□ LOG — натуральный логарифм;
□ SIN, COS, TAN — тригонометрические функции.

34. Математические функции

ПСЕВДОНИМЫ ПОЛЕЙ
В SQL-запросах можно изменять имена полей.
Задаваемые при этом новые имена называются
псевдонимами (aliases). Их удобно применять при
задании в запросе вычисляемых полей.
С помощью псевдонимов этим полям можно
присваивать
осмысленные
имена.
Псевдоним
помещается после имени поля или вычисляемого
выражения через ключевое слово AS.

35. Псевдонимы полей

В качестве примера воспользуемся
предыдущим запросом, задав в нем
ПРИМЕР псевдонима для вычисляемых полей:
SELECT [Код товара],
Цена, Заказано,
Продано,
Цена *Продано AS [Сумма продажи],
Цена *3аказано AS [Сумма заказа],
Цена *Заказано-Цена*Продано AS [Разность]
FROM Продажи

36. Пример

ФУНКЦИИ
АГРЕГИРОВАНИЯ
Функциями агрегирования называются функции,
которые позволяют определить количество записей в
таблице, количество значений в столбце таблицы, и;
минимальное, максимальное и среднее значение для
столбца таблицы, вычислить сумму данных для
столбца.
Таким образом, агрегирующие функции обеспечить,
получение некоторой обобщенной информации.

37. Функции агрегирования

СТАНДАРТНЫЕ ФУНКЦИИ
АГРЕГИРОВАНИЯ
COUNT — выполняет подсчет записей в таблице или
подсчет ненулевых значений в столбце таблицы;
SUM — возвращает сумму содержащихся в столбце
значений;
MIN — возвращает минимальное значение в столбце;
МАХ — возвращает максимальное значение в столбце;
AVG — вычисляет среднее значение для содержащихся в
столбце значений.

38. Стандартные функции агрегирования

SELECT Сount(Продано) AS [Всего записей],
МIN(Продано) AS min,
МАХ(Продано) AS max,
SUM(продано) AS [Всего продано],
AVG(ПРОДАНО) AS [Среднее количество продаж]
FROM Продажи

39.

Со всеми функциями агрегирования можно использовать
параметр DISTINCT.
В этом случае выполняется обобщение информации только
для различающихся строк.

40.

ГРУППИРОВКА ДАННЫХ
Группировка данных — это объединение
соответствии со значениями некоторого поля.
записей
в
Для группировки результатов выборки совместно с
оператором SELECT используется предложение GROUP BY.

41. Группировка данных

Данное предложение должно следовать после предложения
WHERE, но перед предложением ORDER BY.
После ключевых слов GROUP указывается список полей,
включенных в выборку с помощью оператора SELECT, нужно
обязательно указывать все отбираемые поля (за исключением
полей, относящихся к агрегирующим функциям), хотя
порядок их перечисления после предложения GROUP BY
может не соответствовать порядку списка после слова
SELECT.

42.

СИНТАКСИС ОПЕРАТОРА SELECT
С ПРЕДЛОЖЕНИЕМ GROUP BY
СЛЕДУЮЩИЙ
SELЕСТ поле1, поле2.....nameN
FROM Таблица 1 {, Таблица2.....ТаблицаN
WHERЕ условие
GROUP BY namel, поле2.....nameN
ORDER BY поле1 {ASC | DESC}

43. Синтаксис оператора SELECT с предложением GROUP BY следующий

HAVING
Играет такую же роль для групп, как WHERE
Используется для исключения групп.
для строк.
Используя оператор SQL HAVING вывести название исполнителей (Singer) число
продаж альбомов (Sale) которого больше 2000000:
1SELECT Singer, SUM(Sale)
2FROM Artists
3GROUP BY Singer
4HAVING SUM(Sale) > 2000000

44. HAVING

УПОРЯДОЧЕНИЕ ДАННЫХ
Для упорядочения данных в выборке, полученной в результате
выполнения запроса, используется предложение ORDER BY.
Синтаксис:
SELECT {* | ALL | DISTINCT поле1, поле2.....noneN}
FROM Таблица1 {, Таблица2,...,ТаблицаN}
WHERE условие
ORDER BY поле (ASC | DESC)

45. Упорядочение данных

ПОРЯДОК СОРТИРОВКИ
После ключевых слов ORDER BY сначала указывается имя поля
(полей), по которому производится сортировка, а затем — режим
сортировки:
□ ASC — информация располагается в порядке возрастания значения
указанного поля (для текстовых полей — в алфавитном порядке), этот
режим используется по умолчанию;
□ DESC — информация располагается в порядке убывания значений
указан: поля (для текстовых полей — в порядке, обратном
алфавитному).

46. Порядок сортировки

НАПРИМЕР
SELECT Категория. Наименование. Цена
FROM Товары
ORDER BY Наименование

47. Например

Вместо имени поля в предложении ORDER BY
можно
указать
целое
число,
определяющее
порядковый номер поля в списке после ключевого
слова SELECT (если производится выборка всех
полей таблицы с помощью символа *, то число задает
порядковый номер поля в таблице базы данных).
SELECT Категория, Наименование, Цена FROM
Товары
ORDER BY 3 DESC

48.

ВЫВОД ДАННЫХ В
СЛУЧАЙНОМ ПОРЯДКЕ
SELECT catalog_ id, name
FROM catalogs
ORDER BY RAND() ;

49. Вывод данных в случайном порядке

ДЗ
Написать однотабличные запросы для выборки
данных из БД индивидуального задания:
- для выборки записей с условием
- сортировка данных
- группировка данных
English     Русский Rules