Similar presentations:
Язык запросов SQL. Язык запросов к данным (DML)
1. Язык запросов SQL
ЯЗЫК ЗАПРОСОВ SQL2. Язык запросов к данным (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
ПРЕДЛОЖЕНИЕ OFFSETSelect имя поля
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. Вывод данных в случайном порядке
ДЗНаписать однотабличные запросы для выборки
данных из БД индивидуального задания:
- для выборки записей с условием
- сортировка данных
- группировка данных