- •Предисловие
- •Анализ предметной области
- •Анализ требований
- •Концептуальная модель предметной области
- •Создание Диаграммы классов вVisio2010
- •Контрольные вопросы
- •Проектирование базы данных
- •Логическая модель базы данных
- •Создание Логической модели бд вVisio2010
- •Физическая модель базы данных
- •Контрольные вопросы
- •Создание базы данных
- •Подключение кMssqlServer2012
- •Создание новой базы данных на сервере
- •Создание новой таблицы на сервере
- •Создание связей
- •Создание диаграммы базы данных
- •Ограничения целостности базы данных
- •Сценарий создания базы данных
- •Контрольные вопросы
- •Заполнение базы данных
- •Загрузка информации в базу данных средствамиManagementStudio
- •Ведение базы данных средствамиSql
- •Sql-запросы на модификацию данных
- •Добавление новых записей в таблицу (insert)
- •Модификация существующих записей (update)
- •Удаление записей из таблицы (delete)
- •Контрольные вопросы
- •Запросы на выборку данных
- •Общий синтаксис запроса select
- •Примеры реализации запросов
- •Контрольные вопросы
- •Организациябизнес-логики
- •Хранимые процедуры
- •Триггеры
- •Контрольные вопросы
- •Администрирование сервера бд
- •Инсталляция сервера
- •Резервное копирование и восстановление бд
- •Санкционирование доступа
- •Приложения приложение а Варианты описания предметной области
- •Приложение б Состав отчета
- •Список литературы
- •Оглавление
- •153003, Г. Иваново, ул. Рабфаковская, 34.
Запросы на выборку данных
Общий синтаксис запроса select
SELECT [DISTINCT] <список столбцов>
FROM <таблица(-ы) источник>
[WHERE <ограничения>]
[GROUP BY <столбцы из раздела SELECT или операция над этими столбцами>]
[HAVING <ограничения на результаты GROUP BY>]
[ORDER BY <список столбцов для сортировки>]
Разделы SELECT и FROM обязательно должны присутствовать в каждом запросе; остальные разделы могут отсутствовать или присутствовать частично.
Примеры реализации запросов
Наиболее простые запросы
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 запросов на выборку данных для своей базы.Вотчет поместитеихописание, код ирезультат вызова в форме копии экрана.