- •1. Для чего предназначен язык sql?
- •2. Какие разновидности языка sql существуют и чем они отличаются?
- •11. Как записываются составные условия поиска?
- •12. Как записывается и выполняется многотабличный запрос?
- •13. Как записывается полное имя поля (столбца) в sql-запросе и когда возникает необходимость в его использовании?
- •14. Какие запросы называется итоговым?
- •15. Какие агрегатные функции имеются в языке sql? Приведите примеры использования агрегатных функций.
- •16. Для чего предназначено предложение group by?
- •17. Для чего предназначено предложение having?
- •18. Как записывается и выполняется запрос с группировкой?
- •19. Для чего предназначено предложение order by?
- •20. Как создать, выполнить и сохранить sql-запрос в Access?
- •Запросы
- •Ход работы
19. Для чего предназначено предложение order by?
ORDER BY сортирует таблицу результатов запроса на основании данных, содержащихся в одном или нескольких столбцах.
20. Как создать, выполнить и сохранить sql-запрос в Access?
Для создания SQL-запроса в Access необходимо выполнить следующую последовательность действий после выбора вкладки “Создание” на ленте:
1) на вкладке выбрать команду “Конструктор запросов”;
2) закрыть окно “Добавление таблицы”;
3) на контекстной вкладке “Конструктор” выбрать команду “Режим SQL” или в нижнем правом углу окна базы данных нажать кнопку “Режим SQL”, чтобы задать этот режим в окне запроса;
4) в окне запроса ввести оператор на языке SQL;
5) на панели инструментов нажать кнопку “Выполнить” (кнопка с восклицательным знаком), чтобы отобразить таблицу результатов в окне запроса;
6) исправить ошибки в операторе, если СУБД их обнаружила и не сформировала таблицу результатов, и повторно нажать кнопку “Выполнить”;
7) сохранить запрос, нажав кнопку “Сохранить” на панели быстрого доступа;
8) перейти в режим SQL с помощью команды или кнопки “Режим SQL”.
Запросы
Сформулировать не менее 15 запросов для получения всесторонней информации о предметной области и записать запросы на языке SQL. Среди запросов должны быть итоговые, одно- и многотабличные запросы, запросы с сортировкой и группировкой; должны быть использованы все 5 видов условий поиска.
Итоговые:
Минимальная цена доставки;
SELECT MIN(Расходы) FROM Доставка
Средний срок доставки (в днях).
SELECT AVG(СрокДоставки) FROM Доставка;
Условия поиска:
Сравнение по сроку доставки. Вывести транспортные организации, которые доставляют товар меньше, чем за 5 дней; (многотабличный)
SELECT Транспортная_Организация.Название, Доставка.НомерОрганизации
FROM Транспортная_Организация INNER JOIN Доставка ON Транспортная_Организация.НомерОрганизации = Доставка.НомерОрганизации
WHERE Доставка.СрокДоставки<5;
Проверка принадлежности товара 1-3 оптовым базам; (многотабличный)
SELECT Доставка.КодТовара, Товар.Название, НомерБазы
FROM Товар INNER JOIN Доставка ON Товар.КодТовара = Доставка.КодТовара
WHERE НомерБазы BETWEEN 1 AND 3;
Проверка на членство во множестве. Выводится номер и название товара по номеру предприятия; (многотабличный)
SELECT Доставка.КодТовара, Товар.Название, НомерПредприятия
FROM Товар INNER JOIN Доставка ON Товар.КодТовара = Доставка.КодТовара
WHERE НомерПредприятия IN (1,3,4);
Проверка на соответствие шаблону. Выводит строки из таблицы «Транспортная_Организация», в который встречается название, введённое с клавиатуры;
SELECT Транспортная_Организация.НомерОрганизации, Транспортная_Организация.Название
FROM Транспортная_Организация
WHERE (((Транспортная_Организация.Название)=[’Введите название’]));
Проверка на соответствие шаблону. Выводит сведения о товаре, цена которого начинается с 1;
SELECT Товар.Название, Доставка.КодТовара, Доставка.Расходы
FROM Товар INNER JOIN Доставка ON Товар.КодТовара = Доставка.КодТовара
WHERE (((Доставка.Расходы) LIKE [’*9’]));Проверка на равенство значению NULL.
Вывод товаров, цена за доставку на которые не определена.
SELECT Расходы, КодТовара
FROM Доставка
WHERE Расходы IS NOT NULL
Запросы с сортировкой:
Сортировка по цене за доставку (убывание);
SELECT НомерОрганизации, КодТовара, НомерБазы, НомерПредприятия, Расходы, СрокДоставки
FROM Доставка
ORDER BY Расходы DESC
Сортировка наименований товара (таблица «товар»);
SELECT КодТовара, Название
FROM Товар
ORDER BY Название
Сортировка по коду товара, выводить название оптовой базы по коду товара. (многотабличный)
SELECT Доставка.КодТовара, Доставка.НомерБазы, Оптовая_База.Название
FROM Оптовая_База INNER JOIN Доставка ON Оптовая_База.НомерБазы = Доставка.НомерБазы
ORDER BY КодТовара
Запросы с группировкой:
Определить цену за доставку товара для каждой оптовой базы;
SELECT Оптовая_База.Название, Доставка.НомерБазы, Доставка.КодТовара, SUM(Расходы)
FROM Оптовая_База, Доставка
WHERE Оптовая_База.НомерБазы = Доставка.НомерБазы
GROUP BY Доставка.НомерБазы, Оптовая_База.Название, Доставка.КодТовара
Сколько предприятий пользуется услугами каждой транспортной организации;
SELECT НомерОрганизации, НомерПредприятия, COUNT(НомерПредприятия)
FROM Доставка
GROUP BY НомерОрганизации, НомерПредприятия
Включение в таблицу результатов по условию поиска 1 (3) цены на расходы;
SELECT Доставка.Расходы, Сравнение_по_сроку_доставки.Название, Доставка.НомерОрганизации
FROM Доставка, Сравнение_по_сроку_доставки
WHERE Сравнение_по_сроку_доставки.НомерОрганизации = Доставка.НомерОрганизации
Содержит все столбцы таблицы «доставка» и один столбец из таблицы «предприятие».
SELECT Доставка.*, Предприятие.НомерПредприятия
FROM Предприятие, Доставка
WHERE (((Предприятие.НомерПредприятия)=[Доставка].[НомерПредприятия]));