Управление образования и науки Липецкой области ГОАПОУ «Липецкий металлургический колледж» ОТЧЕТ по лабораторной работе по дисциплине МДК 07.01 Управление и автоматизация баз данных Лабораторная работа № 2 «Создание объектов БД с помощью SQL запросов» Выполнил студент группы ИСиП 21-1 Круглов Д.Д. Фамилия, инициалы специальности 09.02.07 Информационные системы и программирование код и наименование специальности Преподаватель / Попова О.Ю. Липецк 2024г. Вариант № 11 1. Задание 1. С помощью SQL запросов создать базу данных, таблицы и связи между ними в MS SQL Server по заданию из лабораторной работы №1 2. Не менее одного раза использовать CHECK и DEFAULT 3. Добавить столбец в таблицу с помощью запроса 4. Добавить два столбца одновременно через один запрос 5. Удалить из таблицы столбцы из пункта 4 с помощью запроса 6. Удалить таблицу с помощью запроса. Описание предметной области. Вы работаете в высшем учебном заведении и занимаетесь распределением нагрузки между преподавателями кафедры. В вашем распоряжении имеются сведения о преподавателях кафедры, включающие наряду с анкетными данными информацию об их ученой степени, занимаемой административной должности и стаже работы. Преподаватели вашей кафедры должны обеспечить проведение занятий по некоторым предметам. По каждому из них установлено определенное количество часов. В результате распределения нагрузки у вас должна получиться информация следующего рода: «Такой-то преподаватель проводит занятия по такому-то предмету с такой-то группой». 2. Шаги выполнения Схема БД из 1 лабораторной работы Запрос на создание схемы БД как в 1 лабораторной в текстовом формате (1 задание) CREATE DATABASE Kruglov; -- Создаём БД GO USE Kruglov; -- Используем её CREATE TABLE Teachers -- Создаём таблицу Teachers (IdTeachers INT NOT NULL PRIMARY KEY, LastName NVARCHAR(50) NOT NULL, FirstName NVARCHAR(50) NOT NULL, MiddleName NVARCHAR(50) NULL, IdScientificDegree NVARCHAR(50) NOT NULL, IdPost NVARCHAR(50) NOT NULL, WorkExperience INT NOT NULL); -- В круглых скобках 1 - название столбца, 2 - тип данных, 3 - ограничение на нулевое значение, 4 (если есть) - первичный ключ CREATE TABLE Load -- Создаем таблицу Load (IdLoad INT NOT NULL PRIMARY KEY, IdTeachers INT NOT NULL, IdSubject INT NOT NULL, IdGroup NVARCHAR(50) NOT NULL); -- В круглых скобках 1 - название столбца, 2 - тип данных, 3 - ограничение на нулевое значение, 4 (если есть) - первичный ключ CREATE TABLE Subjects -- Создаем таблицу Subjects (IdSubject INT NOT NULL PRIMARY KEY, Name NVARCHAR(50) NOT NULL, VolumeOfHours INT NOT NULL); -- В круглых скобках 1 - название столбца, 2 - тип данных, 3 - ограничение на нулевое значение, 4 (если есть) - первичный ключ CREATE TABLE ScientificDegree -- Создаём таблицу ScientificDegree (IdScientificDegree NVARCHAR(50) NOT NULL PRIMARY KEY, Name NVARCHAR(50) NOT NULL); -- В круглых скобках 1 - название столбца, 2 - тип данных, 3 - ограничение на нулевое значение, 4 (если есть) - первичный ключ CREATE TABLE Posts -- Создаём доп.таблицу Posts для столбца Post в таблице Teachers (IdPost NVARCHAR(50) NOT NULL PRIMARY KEY, Name NVARCHAR(50) NOT NULL); -- В круглых скобках 1 - название столбца, 2 - тип данных, 3 - ограничение на нулевое значение, 4 (если есть) - первичный ключ CREATE TABLE Groups -- Создаём доп.таблицу Groups для столбца GroupNumber в таблице Load (IdGroup NVARCHAR(50) NOT NULL PRIMARY KEY, Name NVARCHAR(50) NOT NULL); -- В круглых скобках 1 - название столбца, 2 - тип данных, 3 - ограничение на нулевое значение, 4 (если есть) - первичный ключ --ALTER TABLE Load -- Изменяем таблицу Load ADD CONSTRAINT [FK_Load_Teachers] -- Даём название ограничению FOREIGN KEY (IdTeachers) -- Добавляеем внешний ключ REFERENCES Teachers (IdTeachers); -- Добавляем ключевой слово --- всё это делается для подключения связи между строкой таблицы Load и строкой таблицы Teachers --ALTER TABLE Load -- Изменяем таблицу Load ADD CONSTRAINT [FK_Load_Subjects] -- Даём название ограничению FOREIGN KEY (IdSubject) -- Добавляеем внешний ключ REFERENCES Subjects (IdSubject); -- Добавляем ключевой слово --- всё это делается для подключения связи между строкой таблицы Load и строкой таблицы Subjects --ALTER TABLE Teachers ADD CONSTRAINT [FK_Teachers_Post] FOREIGN KEY (IdPost) REFERENCES Posts (IdPost); --- всё это делается для подключения связи между строкой таблицы Teachers и строкой таблицы Posts --ALTER TABLE Load ADD CONSTRAINT [FK_Load_Groups] FOREIGN KEY (IdGroup) REFERENCES Groups (IdGroup); --- всё это делается для подключения связи между строкой таблицы Load и строкой таблицы Groups --ALTER TABLE Teachers ADD CONSTRAINT [FK_Teachers_ScientificDegree] FOREIGN KEY (IdScientificDegree) REFERENCES ScientificDegree (IdScientificDegree); --- всё это делается для подключения связи между строкой таблицы Teachers и строкой таблицы ScientificDegree Скриншот результата создания схемы БД после выполнения запроса (1 задание) Задание 2-3 use Kruglov; ALTER TABLE Teachers ADD Age INT DEFAULT 0 NOT NULL, CHECK (Age >= 0); Задание 4 use Kruglov; ALTER TABLE Teachers ADD PlaceOfResidence NVARCHAR(50), FamilyStatus NVARCHAR(50); Задание 5 use Kruglov; ALTER TABLE Teachers DROP COLUMN PlaceOfResidence, FamilyStatus; Задание 6 use Kruglov; CREATE TABLE ExampleTable(Example INT); DROP TABLE ExampleTable;