Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по курсу «Базы данных». Введение в MS SQL Server и T-SQL. Практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
условие1, AND …
ORDER BY
1 ASC/DESC (сортировка)
2 ASC (сортировка) … ;
Выполнить запрос на внешнее соединение таблиц с ис-
пользованием команды LEFT / RIGHT / FULL OUTER JOIN.
В отличие от inner join внешнее соединение возвращает все строки одной или двух таблиц, которые участвуют в со­единении.
OUTER JOIN имеет следующий формальный синтаксис:
SELECT название_таблицы1.название_столбца1_
таблицы1 ’название столбца’,
название_таблицы2.название_столбца1_таблицы2
’название столбца’, …
FROM название_таблицы1
{LEFT|RIGHT|FULL} [OUTER] JOIN таблица2 ON условие1
[{LEFT|RIGHT|FULL} [OUTER] JOIN таблица3 ON
условие2] …
Перед оператором JOIN указывается одно из ключевых слов LEFT, RIGHT или FULL, которые определяют тип со­единения:
LEFT: выборка будет содержать все строки из первой или левой таблицы;
RIGHT: выборка будет содержать все строки из второй или правой таблицы;
FULL: выборка будет содержать все строки из обеих та­блиц.
Также перед оператором JOIN может указываться клю­чевое слово OUTER, но его применение необязательно. Да­лее после JOIN указывается присоединяемая таблица, а за­тем идет условие соединения.
Выдать ФИО преподавателя и название кафедры для про­верки целостности данных в БД, используя соединения та-
41
блиц и соответствующее заполнение, представленное ниже, при условии, что сортировка осуществляется последователь­но по названию кафедры по алфавиту.
SELECT название_таблицы1.название_столбца1_
таблицы1 ’название столбца’,
название_таблицы2.название_столбца1_таблицы2
’название столбца’,…
FROM название_таблицы1
{LEFT|RIGHT|FULL} [OUTER] JOIN название_таблицы2 ON название_таблицы1.название_столбца1 = название_
таблицы2.название_столбца1,
{LEFT|RIGHT|FULL} [OUTER] JOIN название_таблицы3 ON название_таблицы2.название_столбца3 = название_
таблицы3.название_столбца3, …
ORDER BY
1 ASC/DESC (сортировка)
2 ASC (сортировка)…;
Необходимо выполним запрос на группировку таблиц с ис­пользованием команды GROUP BY и агрегатных функций:
Примечание. Перед выполнением запроса необходимо произвольно заполнить результаты студентов по экзаменам в таблице «Запись_в_ведомость», используя функцию «Из­менить первые 200 строк».
Выдать фамилии студентов и сумму баллов за экзамены, используя группировку таблиц, агрегатные функции и соот­ветствующее заполнение, представленное ниже, при усло­вии, что сортировка осуществляется последовательно по фа­милиям студентов по алфавиту.
SELECT название_таблицы1.название_столбца1_
таблицы1 ’название столбца’,
название_таблицы2.название_столбца1_таблицы2
’название столбца’,
агрегатная функция(названиея_таблицы1.название_
42
столбца1_таблицы1) AS ‘название _столбца’…
FROM название_таблицы1
ТИП ОБЪЕДИНЕНИЯ название_таблицы2 ON название_
таблицы1.название_столбца1 = название_таблицы2.
название_столбца1,
ТИП ОБЪЕДИНЕНИЯ название_таблицы3 ON название_
таблицы2.название_столбца3 = название_таблицы3.
название_столбца3, …
GROUP BY
название_таблицы.название_столбца(по которой будет
проиходить группировка)
ORDER BY
1 ASC/DESC (сортировка)
2 ASC (сортировка) …;
Чтобы проверить, верна ли сумма за экзамены, сделайте запрос на внутреннее объединение таких таблиц, как:
– Фамилия студента; – Название предмета; – Экзамен.
Выдать фамилии студентов и средний балл за экзамены, используя группировку таблиц, агрегатные функции и соот­ветствующее заполнение, представленное ниже, при услови­ях, что:
– сортировка осуществляется последовательно по фами-
лиям студентов по алфавиту;
– в списке будут студенты, чей средний бал за экзамен
больше 10.
SELECT название_таблицы1.название_столбца1_
таблицы1 ’название столбца’,
название_таблицы2.название_столбца1_таблицы2
’название столбца’,
агрегатная функция(название_таблицы1.название_
столбца1_таблицы1) AS ‘название столбца’…
43
FROM название_таблицы1
ТИП ОБЪЕДИНЕНИЯ название_таблицы2 ON название_
таблицы1.название_столбца1 = название_таблицы2.
название_столбца1,
ТИП ОБЪЕДИНЕНИЯ название_таблицы3 ON название_
таблицы2.название_столбца3 = название_таблицы3.
название_столбца3, …
GROUP BY название_таблицы.название_столбца(по
которой будет проиходить группировка)
HAVING агрегатная функция(название_таблицы.
название_столбца_таблицы) = условие
ORDER BY
1 ASC/DESC (сортировка)
2 ASC (сортировка)…;
44
ЗАКЛЮЧЕНИЕ
В настоящем пособии приведены основополагающие под­ходы к проектированию реляционных БД и работе с ними при помощи непроцедурного языка программирования SQL.
Выполнение практических заданий позволило не только пройти все этапы проектирования БД, но и освоить основные технологические приемы разработки модели БД с использо­ванием CASE-средств. Практические задания этого пособия не ставили целью изучение всех возможностей MS SQL, по- этому для более глубокого изучения целесообразно использо­вать дополнительные источники.
45
ПРИЛОЖЕНИЕ 1
Требования к отчету
Отчет сдается в электронном виде в среде LMS Canvas. Цвет шрифта должен быть черным. При компьютерном на­боре рекомендуется кегль 12 (для основного текста) и 14 (для заголовков), полуторный междустрочный интервал, гарни­тура шрифта – Times New Roman. Размеры верхнего и ниж­него полей – 20 мм, левого поля – 30 мм, правого – 15 мм. Абзацный отступ равен 1,15 см. Основной текст должен быть выровнен по ширине.
Нумерация страниц производится сквозным способом по всему тексту отчета, начиная с титульного листа, но циф­ры печатаются только со второго листа (в центре нижней ча­сти листа, без точки). На второй странице отчета размещает­ся «Оглавление» (автособираемое), в котором указываются названия и номера начальных страниц всех структурных ча­стей отчета (за исключением титульного листа). Нумерация рисунков, таблиц, формул – сквозная. Подписи рисунков внизу, по центру (Рисунок 1 – Оформление). Подписи таблиц сверху, слева (без отступа в первой строке).
До и после подзаголовка, рисунка, таблицы пропуска­ется строка. В основном тексте не допускаются интервалы между абзацами. Между разделами необходимо применять разрыв страницы. Список источников оформляется согласно ГОСТ 7.1–2003.
Содержание отчета
1. Ввведение. Введение содержит краткое описание вы-
полнения практикума.
2. ER-модель в нотации IDEF 1x с описанием таблиц и
атрибутов.
3. Построенная схема базы данных в среде MS SQL Server.
4. Скриншоты заполнения даными таблиц.
5. Скриншоты заполненных таблиц данными.
46
6. Скприншоты простых выборок: данные по кафедрам, предметам и институтам; почты и телефоны преподавате­лей; данные по кафедрам, отсортировать названия кафедр от А до Я; данные по студентам, отсортировать фамилии сту­дентов от Я до А.
7. Скриншоты выборок с фильтрацией: данные по препо­давателю Сутулин; данные по преподавателям, чей стаж ра­боты более 15 лет; список базовых кафедр; данные по студен­там с номером телефона на цифру 5; предметы, в названии которых содержится «систем».
8. Скриншоты выборок с неявным соединением таблиц: данные по названиям институтов, номерам групп и старо­стам, названиям ученых степеней и ФИО студентов; ФИО студента, его институт и группа, степень получаемого обра­зования, а также статус студента в группе.
9. Скриншоты выборок на соединение таблиц: ФИО сту­дента, его институт и группа, степень получаемого образова­ния, а также статус студента в группе; ФИО преподавателя и название кафедры для проверки целостности данных в БД; фамилии студентов и сумма баллов за экзамены, используя группировку таблиц и агрегатные функции; фамилии сту­дентов и средний балл за экзамены, используя группировку таблиц и агрегатные функции.
Примечание. Во всех запросах использовать команду со-
ртировки и задавать направление сортировки. Скриншоты должны содержать фамилию студента в названии БД.
47
ПРИЛОЖЕНИЕ 2
Шаблон титульного листа
Министерство образования и науки РФ
Федеральное государственное автономное образовательное
учреждения высшего образования
Университет науки и технологий МИСИС
Кафедра бизнес-информатики и систем
управления производством
Отчет по практикуму на тему:
«Введение в MS SQL Server и T-SQL»
по дисциплине: «Базы данных»
Семестр 3
Выполнил: _______________
(Ф.И.О. студента)
_______________
(№ группы)
_______________
(дата сдачи работы)
Подпись:______________
Москва – 20_
Проверил: _______________
(Ф.И.О. преподавателя)
______________
(оценка)
________________
(дата проверки)
Подпись:_______________
48
ПРИЛОЖЕНИЕ 3
Скрипт на заполнение таблиц
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Дементьева’, ‘Зара’, ‘Федотовна’, ‘1998-06-27’, 20161925, ‘DementevaZaFe@rea.ru’, 1, 32);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Прохорова’, ‘Инга’, ‘Натановна’, ‘1996-08-11’, 64093194, ‘ProhorovaInNa@rea.ru’, 0, 33);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Кондратьева’, ‘Сусанна’, ‘Адольфовна’, ‘1999-12­18’, 75889841, ‘KondratevaSuAd@rea.ru’, 1, 33);
INSERT INTO Студент(Фамилия_студента, Имя_сту­дента, Отчество_студента, День_рождение_студента, Теле­фон_студента, Почта_студента, Статус_студента, Код_груп­пы) VALUES (‘Шарова’, ‘Аида’, ‘Филатовна’, ‘1999-03-29’, 70610551, ‘SHarovaAiFi@rea.ru’, 0, 34);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Алексеева’, ‘Вероника’, ‘Юлиановна’, ‘1997-03­08’, 53587673, ‘AlekseevaVeYU@rea.ru’, 1,35);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Мартынова’, ‘Валентина’, ‘Олеговна’, ‘1997-01­12’, 46199764, ‘MartynovaVaOl@rea.ru’, 0, 35);
INSERT INTO Студент(Фамилия_студента, Имя_сту­дента, Отчество_студента, День_рождение_студента, Телефон_студента, Почта_студента, Статус_студента,
49
Код_группы) VALUES (‘Овчинникова’, ‘Милослава’, ‘Ген­надьевна’, ‘1996-12-16’, 40604282, ‘OvchinnikovaMiGe@ rea.ru’, 1, 35);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Иванова’, ‘Гера’, ‘Серапионовна’, ‘1998-12-22’, 64949406, ‘IvanovaGeSe@rea.ru’, 0, 36);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Шашкова’, ‘Малика’, ‘Станиславовна’, ‘1996-11­06’, 53353490, ‘SHashkovaMaSt@rea.ru’, 1, 37);
INSERT INTO Студент(Фамилия_студента, Имя_сту­дента, Отчество_студента, День_рождение_студента, Теле­фон_студента, Почта_студента, Статус_студента, Код_груп­пы) VALUES (‘Родионова’, ‘Нева’, ‘Ивановна’, ‘1999-12-27’, 32474364, ‘RodionovaNeIv@rea.ru’, 0, 38);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Бирюкова’, ‘Адель’, ‘Тарасовна’, ‘2000-05-03’, 52884846, ‘BiryukovaAdTa@rea.ru’, 1, 38);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Назарова’, ‘Карина’, ‘Иосифовна’, ‘2000-11-05’, 71711268, ‘NazarovaKaIo@rea.ru’, 0, 39);
INSERT INTO Студент(Фамилия_студента, Имя_сту­дента, Отчество_студента, День_рождение_студента, Теле­фон_студента, Почта_студента, Статус_студента, Код_груп­пы) VALUES (‘Гущина’, ‘Анита’, ‘Авдеевна’, ‘1998-02-27’, 86806876, ‘GushchinaAnAv@rea.ru’, 1, 40);
INSERT INTO Студент(Фамилия_студента, Имя_студен­та, Отчество_студента, День_рождение_студента, Телефон_ студента, Почта_студента, Статус_студента, Код_группы)
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]