- •Предисловие
- •Концептуальная модель предметной области
- •Контрольные вопросы
- •Проектирование базы данных
- •Логическая модель базы данных
- •Создание Логической модели бд вVisio
- •Физическая модель базы данных
- •Контрольные вопросы
- •Создание базы данных
- •Подключение кMssqlServer2012
- •Создание новой базы данных на сервере
- •Создание новой таблицы на сервере
- •Создание связей
- •Создание диаграммы базы данных
- •Ограничения целостности базы данных
- •Сценарий создания базы данных
- •Контрольные вопросы
- •Заполнение базы данных
- •Загрузка информации в базу данных средствамиManagementStudio
- •Ведение базы данных средствамиSql
- •Sql-запросы на вставку, модификацию и удаление данных
- •Добавление новых записей в таблицу (insert)
- •Модификация существующих записей (update)
- •Удаление записей из таблицы (delete)
- •Контрольные вопросы
- •Запросы на выборку данных
- •Общий синтаксис запроса select
- •Примеры реализации запросов
- •Контрольные вопросы
- •Организация бизнес-логики
- •Хранимые процедуры
- •Триггеры
- •Контрольные вопросы
- •Администрирование сервера бд
- •Инсталляция сервера
- •Резервное копирование и восстановление бд
- •Санкционирование доступа
- •Приложение а. Варианты заданий
- •Приложение б. Состав отчета
- •Список литературы
- •Оглавление
- •153003, Г. Иваново, ул. Рабфаковская, 34.
Модификация существующих записей (update)
Общий синтаксис:
UPDATE <таблица>
SET <столбец> = <значение> [, <столбец> = <значение>]
[FROM <таблица(ы) источников>]
[WHERE <условие>]
Примеры:
UPDATE detail
SET weight = 210
UPDATE material
SET material_name = 'Олово'
WHERE material_id = 2
UPDATE delivery
SET department_id = NULL,
delivery_date = delivery_date + 1 /*увеличение даты поставки на день
WHERE delivery_id = 1 OR department_id > 3
UPDATE detail
SET detail_name = detail_name + '!!!'
WHERE detail_name LIKE '_а%' AND weight BETWEEN 6 AND 10
Удаление записей из таблицы (delete)
Общий синтаксис:
DELETE<таблица>
[WHERE] <условие>
Примеры:
DELETE detail
WHERE detail_id IN (2, 5, 8)
DELETE detail
WHERE weight IS NULL
DELETE detail
Задание:Заполните базу данных средствами Management Studio. Для этого следует воспользоваться командой «Изменить первые 200 строк» контекстного меню таблицы в «Обозревателе объектов» (рис. 4.1).
Составьте 9 запросов на модификацию данных: три на вставку записей ( INSERT), три на обновление (UPDATE), три на удаление (DELETE).
Контрольные вопросы
Какова технология загрузки информации в базу данных, поддерживаемая средой ManagementStudio?
Как определяется размер создаваемой базы данных?
Что такое транзакция?Охарактеризуйте механизм управления транзакциями СУБД.
Когда на пользовательском уровне требуется пользоваться механизмом управления транзакциями?
Какая команда языка SQL используется для ввода информации в базу данных?Охарактеризуйте варианты использования этой команды.
Как работает многострочная конструкция команды INSERT?
Охарактеризуйте правило согласованности значений в команде INSERT.
Сформулируйте правила оформления значений различных типов данных в СУБД MS SQL Server.
Какая команда языка SQL используется для обновления записей таблицыбазы данных?
Какие команды SQL используются для удаления строк таблицы и в целом всей таблицы?
Для чего используется команда ALTER TABLE. Как всредеManagementStudioвоспользоваться этой функцией?
Посредством какой опции прописываются вторичные ключи при создании таблицы?
Как добавить новое поле в ранее созданную таблицу?
Что такое индексы в базе данных. Как они создаются?
Как задаются права доступа к созданной базе данных?
Как в среде ManagementStudioудалить базу данных?
Запросы на выборку данных
Общий синтаксис запроса select
SELECT [DISTINCT] <список столбцов>
FROM <таблица(-ы) источник>
[WHERE <ограничения>]
[GROUP BY <столбцы из раздела SELECT или операция над этими столбцами>]
[HAVING <ограничения на результаты GROUP BY>]
[ORDER BY <список столбцов для сортировки>]
Разделы SELECT и FROM обязательно должны присутствовать в каждом запросе; остальные разделы могут отсутствовать или присутствовать частично.
Примеры реализации запросов
Наиболее простые запросы:
1. Выбрать название и вес деталей
Рис. 5.1. Результаты выполнения запроса №1
2. Выбрать всю информацию из таблицы материалов
Рис. 5.2. Результаты выполнения запроса №2
Уникальность DISTINCT
3. Выбрать уникальные коды поставщиков из таблицы поставок
Рис. 5.3. Результаты выполнения запроса №3
Ограничение WHERE
4. Выбрать количество и даты поставки детали с кодом 1
Рис. 5.4. Результаты выполнения запроса №4
5. Выбрать названия поставщиков с кодами 1, 4 и 6
или
Рис. 5.5. Результаты выполнения запроса №5
6. Выбрать всю информацию о поставках, сделанных до 1.10.2009
Рис. 5.6. Результаты выполнения запроса №6
7. Выбрать всю информацию о деталях, не начинающихся на букву «В» (в любом регистре) и чей вес меньше 50
Рис. 5.7. Результаты выполнения запроса №7
8. Выбрать название и код материала для деталей с весом от 5 до 10 г или имеющих в названии букву «н» в третьей позиции
Рис. 5.8. Результаты выполнения запроса №8
9. Выбрать названия поставщиков длиной не больше 15-и символов
Рис. 5.9. Результаты выполнения запроса №9
10. Выбрать месяца и годы поставок деталей
Рис. 5.10. Результаты выполнения запроса №10
Сортировка ORDER BY
11. Упорядочить поставки сначала по коду поставщика, а затем по дате поставки
Рис. 5.11. Результаты выполнения запроса №11
12. Выбрать названия поставщиков с кодами 4, 6, 8, 9, упорядоченных по алфавиту в обратном порядке
Рис. 5.12. Результаты выполнения запроса №12
Агрегация и группировка GROUP BY
13. Посчитать количество деталей, для которых задан вес
или
Рис. 5.13. Результаты выполнения запроса №13
14. Определить средний вес деталей из материала с кодом 2
Рис. 5.14. Результаты выполнения запроса №2
15. Из поставок, совершенных до 1.10.2009, выбрать самую крупную поставку и самую мелкую
Рис. 5.15. Результаты выполнения запроса №15
16. Для поставщиков с кодами в диапазоне 5 - 8 посчитать суммарное количество поставленных ими деталей
Рис. 5.16. Результаты выполнения запроса №16
17. Посчитать количество поставленных деталей в каждом месяце каждого года; результаты упорядочить в порядке убывания года и месяца
Рис. 5.17. Результаты выполнения запроса №17
Ограничение на группировки HAVING
18. Выбрать материалы, для которых суммарный вес выполненных из них деталей не больше 20
Рис. 5.18. Результаты выполнения запроса №18
19. Выбратьдетали, поставлявшиеся более одного раза с начала 2008 года.
Рис. 5.19. Результаты выполнения запроса №19
Преобразование типов CAST
20. Получить сведения о датах поставок в текстовом виде
Рис. 5.20. Результаты выполнения запроса №20
21. Получить сведения из таблицы деталей в виде строк «Деталь X имеет вес Y»
Рис. 5.21. Результаты выполнения запроса №21
Альтернативы CASE
22. Разделить детали на легкие (весом до 20), средние (между 20 и 50) и тяжелые
Рис. 5.22. Результаты выполнения запроса №22
Обработка NULL-значений
23. Получить сведения о деталях и их весах, причем если у детали вес не задан, то вместо NULL написать -100
Рис. 5.23. Результаты выполнения запроса №23
Функция существования EXISTS
24. Выбрать название и код материала только тех деталей, которые когда-либо поставлялись
Рис. 5.24. Результаты выполнения запроса №24
25. Выбрать названия тех материалов, из которых не изготовлена ни одна деталь
Рис. 5.25. Результаты выполнения запроса №25
Подзапросы
26. Получить сведения о самой последней (по дате) поставке
Рис. 5.26. Результаты выполнения запроса №26
27. Получить все поставки деталей из материала с кодом 2
Рис. 5.27. Результаты выполнения запроса №27
28. Для каждого поставщика получить сведения о самой первой (по дате) его поставке
Рис. 5.28. Результаты выполнения запроса №28
29. Для каждого поставщика получить его имя и дату последнего заказа
Рис. 5.29. Результаты выполнения запроса №29
Объединение таблиц JOIN
30. Получить таблицу вида: название детали, название материала, из которого выполнена эта деталь
или
или
Рис. 5.30. Результаты выполнения запроса №30
31. Получить таблицу вида: поставщик, название детали, количество и дата поставки для деталей, у которых задан вес
Рис. 5.31. Результаты выполнения запроса №31
32. Выбрать всю информацию о тех деталях, которые когда-либо поставлялись
Рис. 5.32. Результаты выполнения запроса №32
33. Для каждого поставщика посчитать суммарную величину его поставок
Рис. 5.33. Результаты выполнения запроса №33
34. Выбрать названия материалов и сделанных из них деталей
Рис. 5.34. Результаты выполнения запроса №34
35. Получить все данные о поставщиках, поставках и деталях
Рис. 5.35. Результаты выполнения запроса №35
Объединение результатов UNION
36. Получить таблицу названий и весов деталей, причем последняя строка таблицы должна содержать итоги в виде суммарного веса всех деталей
Рис. 5.36. Результаты выполнения запроса №36
37. Получить таблицу из двух полей, где первое поле – название детали, материала, поставщика или дата поставки, а второе поле – длина строки из первого поля
Рис. 5.37. Результаты выполнения запроса №37
Задание:создайте10 запросов на выборку данныхдля своей базы, в отчет поместитеихописание, код ирезультат вызова в форме копии экрана.