Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНОЕ ПОСОБИЕ.doc
Скачиваний:
73
Добавлен:
07.03.2015
Размер:
5.72 Mб
Скачать
  1. Запросы на выборку данных

    1. Общий синтаксис запроса select

SELECT [DISTINCT] <список столбцов>

FROM <таблица(-ы) источник>

[WHERE <ограничения>]

[GROUP BY <столбцы из раздела SELECT или операция над этими столбцами>]

[HAVING <ограничения на результаты GROUP BY>]

[ORDER BY <список столбцов для сортировки>]

Разделы SELECT и FROM обязательно должны присутствовать в каждом запросе; остальные разделы могут отсутствовать или присутствовать частично.

    1. Примеры реализации запросов

Наиболее простые запросы

1. Выбрать название и вес деталей (рис. 5.1).

Рис. 5.1. Результаты выполнения запроса №1

2. Выбрать всю информацию из таблицы материалов (рис. 5.2).

Рис. 5.2. Результаты выполнения запроса №2

Уникальность DISTINCT

3. Выбрать уникальные коды поставщиков из таблицы поставок (рис. 5.3).

Рис. 5.3. Результаты выполнения запроса №3

Ограничение WHERE

4. Выбрать количество и даты поставок детали с кодом 1 (рис. 5.4).

Рис. 5.4. Результаты выполнения запроса №4

5. Выбрать названия поставщиков с кодами 1, 4 и 6 (рис. 5.5).

или

Рис. 5.5. Результаты выполнения запроса №5

6. Выбрать всю информацию о поставках, сделанных до 1.10.2009 (рис. 5.6).

Рис. 5.6. Результаты выполнения запроса №6

7. Выбрать всю информацию о деталях, не начинающихся на букву «В» (в любом регистре) и чей вес меньше 50 (рис. 5.7).

Рис. 5.7. Результаты выполнения запроса №7

8. Выбрать детали весом от 5 до 10 грамм или с названием, гдетретья буква«н» (рис. 5.8).

Рис. 5.8. Результаты выполнения запроса №8

9. Выбрать названия поставщиков длиной не больше 15-и символов (рис. 5.9).

Рис. 5.9. Результаты выполнения запроса №9

10. Выбрать месяцыи годы поставок деталей (рис. 5.10).

Рис. 5.10. Результаты выполнения запроса №10

Сортировка ORDER BY

11. Упорядочить поставки сначала по коду поставщика, а затем по дате поставки (рис. 5.11).

Рис. 5.11. Результаты выполнения запроса №11

12. Выбрать названия поставщиков с кодами 4, 6, 8, 9, упорядоченных по алфавиту в обратном порядке (рис. 5.12).

Рис. 5.12. Результаты выполнения запроса №12

Агрегация и группировка GROUP BY

13. Посчитать количество деталей, для которых задан вес (рис. 5.13).

или

Рис. 5.13. Результаты выполнения запроса №13

14. Определить средний вес деталей из материала с кодом 2

Рис. 5.14. Результаты выполнения запроса №2

15. Из поставок, совершенных до 1.10.2009, выбрать самую крупную поставку и самую мелкую (рис. 5.15).

Рис. 5.15. Результаты выполнения запроса №15

16. Для поставщиков с кодами в диапазоне 5 –8 посчитать суммарное количество поставленных ими деталей (рис. 5.16).

Рис. 5.16. Результаты выполнения запроса №16

17. Посчитать количество поставленных деталей в каждом месяце каждого года; результаты упорядочить в порядке убывания года и месяца (рис. 5.17).

Рис. 5.17. Результаты выполнения запроса №17

Ограничение на группировки HAVING

18. Выбрать материалы, для которых суммарный вес выполненных из них деталей не больше 20 (рис. 5.18).

Рис. 5.18. Результаты выполнения запроса №18

19. Выбратьдетали, поставлявшиеся более одного раза с начала 2008 года (рис. 5.19).

Рис. 5.19. Результаты выполнения запроса №19

Преобразование типов CAST

20. Получить сведения о датах поставок в виде текста(рис. 5.20).

Рис. 5.20. Результаты выполнения запроса №20

21. Получить сведения из таблицы деталей в виде строк «Деталь X имеет вес Y» (рис. 5.21).

Рис. 5.21. Результаты выполнения запроса №21

Альтернативы CASE

22. Разделить детали на легкие (весом до 20), средние (между 20 и 50) и тяжелые (рис. 5.22).

Рис. 5.22. Результаты выполнения запроса №22

Обработка NULL-значений

23. Получить сведения о деталях и их весах, причем если у детали вес не задан, то вместо NULL написать -100 (рис. 5.23).

Рис. 5.23. Результаты выполнения запроса №23

Функция существования EXISTS

24. Выбрать название и код материала только тех деталей, которые когда-либо поставлялись (рис. 5.24).

Рис. 5.24. Результаты выполнения запроса №24

25. Выбрать названия тех материалов, из которых не изготовлена ни одна деталь (рис. 5.25).

Рис. 5.25. Результаты выполнения запроса №25

Подзапросы

26. Получить сведения о самой последней (по дате) поставке (рис. 5.26).

Рис. 5.26. Результаты выполнения запроса №26

27. Получить все поставки деталей из материала с кодом 2 (рис. 5.27).

Рис. 5.27. Результаты выполнения запроса №27

28. Для каждого поставщика получить сведения о самой первой (по дате) его поставке (рис. 5.28).

Рис. 5.28. Результаты выполнения запроса №28

29. Для каждого поставщика получить его имя и дату последнего заказа (рис. 5.29).

Рис. 5.29. Результаты выполнения запроса №29

Объединение таблиц JOIN

30. Получить таблицу вида: название детали, название материала, из которого выполнена эта деталь (рис. 5.30).

или

или

Рис. 5.30. Результаты выполнения запроса №30

31. Получить таблицу вида: поставщик, название детали, количество и дата поставки для деталей, у которых задан вес (рис. 5.31).

Рис. 5.31. Результаты выполнения запроса №31

32. Выбрать всю информацию о тех деталях, которые когда-либо поставлялись (рис. 5.32).

Рис. 5.32. Результаты выполнения запроса №32

33. Для каждого поставщика посчитать суммарную величину его поставок (рис. 5.33).

Рис. 5.33. Результаты выполнения запроса №33

34. Выбрать материалыи сделанныеиз них детали (рис. 5.34).

Рис. 5.34. Результаты выполнения запроса №34

35. Получить все данные о поставщиках, поставках и деталях (рис. 5.35).

Рис. 5.35. Результаты выполнения запроса №35

Объединение результатов UNION

36. Получить таблицу названий и весов деталей, причем последняя строка таблицы должна содержать итоги в виде суммарного веса всех деталей (рис. 5.36).

Рис. 5.36. Результаты выполнения запроса №36

37. Получить таблицу из двух полей, где первое поле – название детали, материала, поставщика или дата поставки, а второе поле – длина строки из первого поля (рис. 5.37).

Рис. 5.37. Результаты выполнения запроса №37

Задание:создайте10 запросов на выборку данных для своей базы.Вотчет поместитеихописание, код ирезультат вызова в форме копии экрана.