Similar presentations:
Запросы на выборку данных
1. Запросы на выборку данных
2. Содержание
Синтаксис запросов на выборку ЗаданиеДомашнее задание
Сортировка и выбор первых
Контрольные вопросы
Математические операции в
запросах
Список литературы
Математические функции
Переименование столбца в
запросе
Работа с датой
Агрегатные функции
2
3. Синтаксис запросов на выборку
SELECT<что выбираем? (название столбца)>
FROM
<откуда выбираем? (название таблицы)>
WHERE
<условие>
Условие не является обязательной частью запроса.
Если необходимо выбрать несколько столбцов, их
названия перечисляются друг за другом через запятую.
Если необходимо выбрать названия всех столбцов, можно
заменить их перечисление символом *.
В условии можно использовать операции сравнения
(<,>,<=,>=), ключевое слово LIKE (NOT LIKE) и ключевое
слово IN (NOT IN).
В случае если в запросе необходимо учитывать несколько
условий, их указывают через ключевые слова AND или OR.
3
4. Пример 1
Допустим, необходимо получить название животного и егопродолжительность жизни. Тогда запрос на выборку данных будет
выглядеть следующим образом:
SELECT
FROM
НазваниеЖивотного,
ПродолжительностьЖизни
Животное
Пример 2
Если необходимо получить названия животных, чья продолжительность
жизни от 30 до 40 лет, то запрос на выборку данных можно будет
построить следующим образом:
2.1
SELECT
FROM
WHERE
НазваниеЖивотного
Животное
ПродолжительностьЖизни>=30 AND
ПродолжительностьЖизни<=40
4
5. Пример 2
2.2SELECT
FROM
WHERE
НазваниеЖивотного
Животное
ПродолжительностьЖизни BETWEEN
30 AND 40
Пример 3
Допустим, необходимо получить список животных, у которых
продолжительность жизни составляет от 20 до 40 лет, причем это число
кратно 5.
SELECT
FROM
WHERE
НазваниеЖивотного
Животное
ПродолжительностьЖизни IN (20,25,30,35,40)
5
6. Пример 4
Допустим, необходимо получить список названий животных,начинающихся с буквы К. Тогда запрос на выборку данных будет
выглядеть следующим образом:
SELECT
FROM
WHERE
НазваниеЖивотного
Животное
НазваниеЖивотного LIKE ‘К*’
Допустим, необходимо получить список названий животных,
начинающихся с любых букв кроме буквы К. Тогда запрос на выборку
данных будет выглядеть следующим образом:
SELECT
FROM
WHERE
НазваниеЖивотного
Животное
НазваниеЖивотного NOT LIKE ‘К*’
6
7. Сортировка и выбор первых
SELECTTOP N
<что выбираем? (название столбца)>
FROM
<откуда выбираем? (название таблицы)>
WHERE
<условие>
ORDER BY
<название столбца> <порядок сортировки>
Конструкция TOP N применяется для выбора N первых значений, где N –
любое целое число.
Для определения порядка сортировки необходимо указать ключевое
слово:
ASC – сортировка по возрастанию;
DESC – сортировка по убыванию.
Вместо названия столбца во фразе ORDER BY можно указать его номер.
7
8. Пример 5
Допустим, необходимо получить список десяти животных-долгожителей(10 животных с максимальной продолжительностью жизни).
Т.е. необходимо отсортировать список животных по столбцу
«ПродолжительностьЖизни» с порядком сортировки «по убыванию» и
выбрать 10 первых.
Тогда запрос на выборку данных будет выглядеть следующим образом:
SELECT
TOP 10 НазваниеЖивотного
FROM
Животное
ORDER BY
ПродолжительностьЖизни DESC
8
9. Математические операции в запросах
К столбцам, имеющим числовой тип данных, можно применятьразличные математические операции, причем использовать их как во
фразе WHERE, так и во фразе SELECT.
SELECT
<название столбца с числовым типом данных>
<математическая операция> <число>
FROM
<откуда выбираем? (название таблицы)>
WHERE
<условие>
9
10. Пример 6
Допустим, каждый зоопарк участвует в акции «Билет за полцены»,поэтому необходимо получить список зоопарков и стоимость билета со
скидкой.
Тогда запрос на выборку данных будет выглядеть следующим образом:
SELECT
НазваниеЗоопарка, Стоимостьбилета/2
FROM
Зоопарк
В результате выполнения запросов такого рода получается таблица, где
вычисляемый столбец имеет название «Expr1001».
10
11. Математические функции
ABS – модуль числаCos – косинус
Exp – экспонента
Log – натуральный логарифм
Rnd – случайное число
Round – округление
Sgn – знак числа
Sin – синус
Sqr – квадратный корень
Tan – тангенс
Пример 7
Допустим, что проходит не акция «Билеты за полцены», а «Билеты за
треть цены». В таком случае, если мы, поделим на 3 некоторые числа,
можем получить весьма некрасивые числа. Воспользуемся функцией
round для того чтобы округлить полученное значение
SELECT
НазваниеЗоопарка,
Round(Стоимостьбилета/3,1)
FROM
Зоопарк
11
12. Переименование столбца в запросе
В предыдущем примере мы рассмотрели результат выполнения запроса свычисляемым полем, где заголовок таблицы в итоге имеет вид
«Expr1001». Для дальнейшего использования в работе такой заголовок
неудобен, поэтому рассмотрим синтаксис переименования столбца в
запросе:
SELECT
<название столбца> AS <новое название>
FROM
<откуда выбираем? (название таблицы)>
Пример 8
Исправим название поля в запросе из примера 6 на название «Цена».
Тогда запрос на выборку данных будет выглядеть следующим образом:
SELECT
НазваниеЗоопарка, Стоимостьбилета/2 AS Цена
FROM
Зоопарк
12
13. Работа с датой
Функции для работы с датой:Date() – возвращает текущую дату;
Year() – извлекает год из даты;
Month() – извлекает месяц из даты;
Day() – извлекает день из даты.
Данные функции можно использовать не только во фразе WHERE, но и
во фразе SELECT.
Пример 9
Допустим, необходимо получить список зоопарков, созданных в 2000
году. Тогда запрос на выборку данных будет выглядеть следующим
образом:
SELECT
FROM
WHERE
НазваниеЗоопарка
Зоопарк
Year(ДатаСоздания)=2000
13
14. Агрегатные функции
Count() – количество непустых строк в заданном диапазоне;Min() – минимальное значение;
Max() – максимальное значение;
Sum() – сумма;
AVG() – среднее.
Пример 10
Допустим, необходимо получить количество зоопарков, которые есть в
системе. Тогда запрос на выборку данных будет выглядеть следующим
образом:
SELECT
FROM
Count(НазваниеЗоопарка)
Зоопарк
Обратите внимание!
В случае если нужно получить 2 столбца, один из которых является
частью агрегатной функции, а другой – нет, необходимо группировать
результаты по столбцу, не являющемуся частью агрегатной функции с
помощью ключевого слова GROUP BY.
14
15. Пример 11
Допустим, необходимо получить столбец со средней продолжительностьюжизни и количество животных, которые для которых она характерна. Тогда
запрос на выборку данных будет выглядеть следующим образом:
ПродолжительностьЖизни,
Count(НазваниеЖивотного)
FROM
Животное
GROUP BY ПродолжительностьЖизни
SELECT
15
16. Задание
Запросы к базе данных Студенты1. Составить запрос для получения ФИО студентов.
2. Составить запрос для получения ФИО студентов 1995 года рождения.
3. Составить запрос для получения ФИО студентов и их возраста.
4. Составить запрос для получения фамилий студентов, начинающихся с
буквы А.
5. Составить запрос для получения фамилий студентов мужского пола.
6. Составить запрос для получения количества оценки «5» за экзамен.
7. Составить запрос для получения списка оценок за экзамен и количества
студентов, сдавших экзамен на данную оценку.
16
17. Домашнее задание
1. Составить запросы на выборку к своей базе данных (по 5запросов для каждого раздела).
2. Составить отчет
В отчете по индивидуальному домашнему заданию должны
представлены следующие разделы:
текстовая формулировка задания (что должен делать запрос);
запрос на языке SQL;
снимок экрана с результатом выполнения запроса.
быть
17
18. Контрольные вопросы
Запишите запрос на выборку данных в общем виде.Является ли фраза WHERE обязательной для запроса на
выборку данных?
Приведите
пример
условий,
которые
могут
использоваться в запросе.
Если необходимо получить данные, расположенные в
нескольких столбцах, как это указать в запросе?
Если необходимо получить данные, расположенные во
всех столбцах таблицы, как это указать в запросе?
Приведите пример выполнения математических операций
над столбцами таблицы во фразе SELECT.
Перечислите математические функции, которые вы
знаете.
Перечислите агрегатные функции, которые вы знаете.
18
19. Список литературы
Дьяков, И.А. Базы данных. Язык SQL [Электронный ресурс]: учебн. пособие/ И.А. Дьяков. – Электрон. текстовые дан. – Тамбов : Изд-во ФГБОУ ВПО
«ТГТУ», 2012. – Режим доступа:
http://biblioclub.ru/index.php?page=book_view_red&book_id=277628
Стасышин, В.М. Проектирование информационных систем и баз данных
[Электронный ресурс]: учебн. пособие / В.М. Стасышин. – Электрон.
текстовые дан. – Новосибирск: Изд-во НГТУ, 2012. – Режим доступа:
http://biblioclub.ru/index.php?page=book_view_red&book_id=228774
19