Лабораторная работа № 7.
Создание SQL-запросов (Structured Query Language).
Цель: Научиться создавать SQL-запросы.
Задание
1. Выдать полную информацию о товарах.
SELECT *
FROM Товар;
2. Выдать таблицу клиентов, задавая следующий порядок следования полей
Индекс, Город, Адрес, Название,
SELECT Индекс, Город, Адрес, Название
FROM клиенты;
3. Выдать Наименование всех товаров.
SELECT DISTINCT наименование
FROM товар;
4. Выдать список клиентов из Новосибирска.
SELECT название
FROM клиенты
WHERE город='Н-ск';
5. Составить список товаров, упорядоченных по полю КодТипа товара, а в пределах одного типа товара по Наименованию товара.
SELECT *
FROM товар
ORDER BY 2, 3;
6. Выдать информацию о заказах, ДатаРазмещения которых попадает в последний квартал прошлого года.
SELECT *
FROM заказы
WHERE ДатаРазмещения>=#10/1/2009# And ДатаРазмещения<=#12/31/2009#;
7. Выдать список товаров, КодТовара которых начинается с 1(или любого другого определенного символа в зависимости от ваших данных).
SELECT [код товара], наименование
FROM товар
WHERE [код товара] like "1*";
8. Определить общее количество клиентов .
SELECT count(*)
FROM клиенты;
9. Выдать общее количество заказов, сделанных клиентами.
SELECT count(*)
FROM заказы;
10. Выдать количество заказов одного определенного клиента (любого клиента, КодКлиента которого есть среди ваших данных).
SELECT count(*)
FROM заказы
WHERE [код клиента]=116;
11. Определить количество заказов, содержащих товар с заданным кодом.
SELECT count(*)
FROM заказано
WHERE [код товара]=1111;
12. Выявить средний, минимальный и максимальный объем заказов для любого клиента, имеющего несколько заказов (В запросе укажите конкретный КодКлиента с учетом ваших данных).
SELECT Avg(Количество) AS среднее, Min(Количество) AS минимальное, Max(Количество) AS максимальное
FROM Заказы INNER JOIN Заказано ON Заказы.[Код заказа]=Заказано.[Код заказа]
WHERE [Код клиента]=116;
13. Выдать для каждого товара КодТовара и общее заказанное количество этого товара.
SELECT Товар.[Код товара], Наименование, Sum(Количество) AS Всего
FROM Товар INNER JOIN Заказано ON Товар.[Код товара]=Заказано.[Код товара]
GROUP BY Товар.[Код товара], Наименование;
14. Выдать список товаров, заказанных более чем в одном заказе.
SELECT Заказано.[Код товара], Товар.Наименование
FROM Заказано INNER JOIN Товар ON Заказано.[Код товара]=Товар.[Код товара]
GROUP BY Заказано.[Код товара], Товар.Наименование
HAVING COUNT(*)>1;
15. Дать сведения обо всех клиентах и их заказах (с помощью команды INNER JOIN).
SELECT Клиенты.[Код клиента], Название, [Код заказа]
FROM Клиенты INNER JOIN Заказы ON Клиенты.[Код клиента]=Заказы.[Код клиента];
16. Дать сведения обо всех клиентах и заказанных ими товарах
SELECT Название, Заказы.[Код клиента], Заказы.[Код заказа], Заказано.[Код товара], Наименование
FROM Клиенты, Заказы, Заказано, Товар
WHERE Клиенты.[Код клиента]=Заказы.[Код клиента] AND Заказы.[Код заказа]=Заказано.[Код заказа] And Заказано.[Код товара]=Товар.[Код товара];
17. Выдать список клиентов, заказавших определенный товар (конкретный КодТовара указать в запросе).
SELECT Название, Заказы.[Код клиента], Заказы.[Код заказа], Заказано.[Код товара], Наименование
FROM Клиенты, Заказы, Заказано, Товар
WHERE Клиенты.[Код клиента]=Заказы.[Код клиента] AND Заказы.[Код заказа]=Заказано.[Код заказа] And Заказано.[Код товара]=Товар.[Код товара] AND Товар.[Код товара]=1116;
18. Выдать список заказов, содержащих товары заданного типа.
SELECT Заказано.[Код заказа]
FROM Заказано, Товар, Типы
WHERE Заказано.[Код товара]=Товар.[Код товара] AND Товар.[Код типа]=Типы.[Код типа] AND Типы.[Код типа]=1;
19. Определить КодКлиента, заказавшего по крайней мере один товар такой же, как заказанный любым другим клиентом ( выберите КодКлиента, заказавшего товар, из вашего списка).
SELECT DISTINCT [Код клиента]
FROM Заказы AS X INNER JOIN Заказано AS Y ON X.[Код заказа]=Y.[Код заказа]
WHERE Y.[Кодтовара] IN
(SELECT [Кодтовара]
FROM Заказы INNER JOIN Заказано
ON Заказы.[Код заказа]=Заказано.[Код заказа]
WHERE Заказы.[Код клиента]=116);
20. Выдать коды товаров, заказанных более чем одним клиентом.
SELECT DISTINCT [Код товара]
FROM Заказано AS X INNER JOIN Заказы AS Y ON X.[Код заказа]=Y.[Код заказа]
WHERE X.[Кодтовара] IN
(SELECT [Кодтовара]
FROM Заказы INNER JOIN Заказано
ON Заказы.[Код заказа]=Заказано.[Код заказа]
WHERE Заказы.[Код клиента]<>Y.[Код клиента]);
21. Выдать информацию о клиентах, заказавших определенный товар (использовать коррелированный подзапрос, КодТовара выбрать произвольно).
SELECT Клиенты.[Код клиента], Клиенты.Название, Клиенты.Индекс, Клиенты.Город, Клиенты.Адрес
FROM Клиенты INNER JOIN Заказы ON Клиенты.[Код клиента]=Заказы.[Код клиента]
WHERE 1110 IN
(SELECT Заказано.[Код товара]
FROM Заказано INNER JOIN Заказы ON Заказано.[Код заказа]=Заказы.[Код заказа]
where клиенты.[Код клиента]=заказы.[Код клиента]);
22. Выдать Названия и Адреса клиентов, заказавших все возможные виды товаров.
SELECT Название, Адрес
FROM Клиенты
WHERE NOT EXISTS
(SELECT *
FROM Товар
WHERE NOT EXISTS
(SELECT *
FROM Заказы, Заказано
WHERE Заказы.[Код заказа]=Заказано.[Код заказа] AND [Код клиента]=Клиенты.[Код клиента] AND [Код товара]=Товар.[Код товара]));
23. Выдать список товаров, цена которых выше заданного уровня и заказанных определенным клиентом (КодКлиента введите с учетом ваших данных).
SELECT [Код товара]
FROM Товар
WHERE [На складе] > 750
UNION SELECT [Код товара]
FROM Заказы INNER JOIN Заказано
ON Заказы.[Код заказа]=Заказано.[Код заказа]
WHERE Заказы.[Код клиента]=116;
24. Добавьте запись о новом клиенте.
INSERT INTO Клиенты
VALUES (120, "Молодец", 315102, "Бердск", "Южный парк 666", "Компания №1");
25. Удалите сведения об определенном клиенте.
DELETE *
FROM Клиенты
WHERE [Код клиента]=120;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.