Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практикум по курсу «Базы данных». Введение в MS SQL Server и T-SQL. Практикум
.pdf
условие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-1218’, 75889841, ‘KondratevaSuAd@rea.ru’, 1, 33);
INSERT INTO Студент(Фамилия_студента, Имя_студента, Отчество_студента, День_рождение_студента, Телефон_студента, Почта_студента, Статус_студента, Код_группы) VALUES (‘Шарова’, ‘Аида’, ‘Филатовна’, ‘1999-03-29’,
70610551, ‘SHarovaAiFi@rea.ru’, 0, 34);
INSERT INTO Студент(Фамилия_студента, Имя_студента, Отчество_студента, День_рождение_студента, Телефон_
студента, Почта_студента, Статус_студента, Код_группы)
VALUES (‘Алексеева’, ‘Вероника’, ‘Юлиановна’, ‘1997-0308’, 53587673, ‘AlekseevaVeYU@rea.ru’, 1,35);
INSERT INTO Студент(Фамилия_студента, Имя_студента, Отчество_студента, День_рождение_студента, Телефон_
студента, Почта_студента, Статус_студента, Код_группы)
VALUES (‘Мартынова’, ‘Валентина’, ‘Олеговна’, ‘1997-0112’, 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-1106’, 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
