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

4687

.pdf
Скачиваний:
1
Добавлен:
08.01.2021
Размер:
1.37 Mб
Скачать

41

на изменение.

2. Теоретический материал для домашнего изучения.

Вставка записей в таблицу

Все стоки в SQL вводятся при помощи команды обновления INSERT. В простейшем случае команда INSERT имеет синтаксис:

INSERT INTO <имя таблицы> (<поле1>, <поле2>…) Values (<значение>, <значение>… );

Пример.

Добавить нового студента:

INSERT INTO студенты (код, фамилия, имя, отчество, телефон, код_группы)

VALUES ( 11, "Сидоров", "Олег", "Петрович", “34-56-78”, 2)

Вставка записей из другой таблицы

Команду INSERT можно применить для того, чтобы извлечь значения из одной таблицы и разместить их в другой, воспользовавшись для этого запросом. Для этого достаточно заменить предложение VALUES на соответствующий запрос.

Пример.

Физика читается у всех групп преподавателем Мироновым (его код = 2). Внести соответствующие записи в таблицу Группы_Дисциплины.

INSERT INTO Группы_Дисциплины (код_дисц,код_группы,код_преп) SELECT дисциплины.код,группы.код , 2

FROM Дисциплины,Группы

WHERE Дисциплины.название = 'Физика' AND Группы.N_курса=1

Обновление таблиц

По команде UPDATE можно изменять некоторые или все значения в существующей строке. Эта команда содержит предложение UPDATE, позволяющее указать имя таблицы, для которой выполняется операция, и SET предложение, определяющее изменение, которое необходимо выполнить для опре-

42

деленного столбца.

Прямое обновление

Пример.

Студента Иванова перевести из группы Гр1 в группу Гр2. UPDATE студенты

SET студенты.код_группы = 2

WHERE студенты.фамилия = "Иванов" AND студенты.код_группы =1

Обновление с подзапросом

Источником данных для команды UPDATE может быть результат, возвращаемый подзапросом.

Пример.

Студентам, сдавшим сессию без троек, назначить стипендию (предполагается, что нужно сдать 4 экзамена)

UPDATE студенты SET стипендия = YES

WHERE 4 = ( SELECT count(*) FROM сессия WHERE

сессия.код_студ = студенты.код) AND NOT EXISTS

(SELECT * FROM сессия WHERE студенты.код = сессия.код_студ AND (сессия.оценка < 4 OR сессия.оценка IS NULL) );

В первом подзапросе проверяем, все ли экзамены сдавал студент. Во втором – не получил ли студент хоть одну оценку < 4 или по всем ли экзаменам проставлены оценки.

Удаление данных

Для удаления записей из таблицы используется команда DELETE. Структура запросов на удаление аналогична структуре запросов на

обновление.

Простое удаление

Пример.

Удалить все данные из таблицы Сессия:

DELETE *

FROM сессия

43

Пример.

Удалить кафедру истории.

DELETE

FROM кафедры

WHERE название ='информатики'

При выполнении этого запроса может появиться сообщение о возможном нарушении ссылочной целостности при удалении записи из таблицы. Такое сообщение возникает при возможном нарушении ссылочной целостности при удалении записи из таблицы. Поддерживать ссылочную целостность в таких ситуациях можно путем автоматического удаления связанных записей из присоединенных таблиц.

Для использования этой функции в свойствах связи между таблицами Кафедры и Преподаватели нужно установить каскадное удаление связанных записей. Теперь при удалении кафедры будут удаляться все преподаватели этой кафедры. Ссылочная целостность базы данных будет при этом сохранена.

Удаление с подзапросом

Удалить кафедру, если на которой не числится ни один преподаватель.

DELETE FROM кафедры

WHERE NOT EXISTS

( SELECT код_кафедры FROM преподаватели

WHERE кафедры.код=преподаватели.код_кафедры )

3. Лабораторные задания.

Упражнение 1.

Для созданных ранее баз данных (в СУБД Microsoft Access и СУБД SQL Server) согласно индивидуальному заданию создать не менее 5 запросов на изменение для каждой БД.

4. Контрольные вопросы

44

1.Будет ли работать следующий запрос?

DELETE

FROM преподаватели

WHERE NOT EXISTS ( SELECT код FROM кафедры

WHERE кафедры.код=преподаватели.код_кафедры )

2.В каком случае возникает нарушение ссылочной целостности?

3.Для чего служит команда UPDATE?

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Основная литература 1. Агальцов В. П. Базы данных [Электронный ресурс]. В 2-х кн. Кн. 2.

Распределенные и удаленные базы данных / доп.УМО вузов по политехниче-

45

скому университетскому классическому образованию в качестве учебника / В.П. Агальцов. - М.: ИД ФОРУМ: НИЦ Инфра-М, 2013. - 272 с,- ЭБС «Знаниум».

2. Кузин А. В. Базы данных [Текст] : доп. УМО вузов по унив. политехи, образованию в качестве учеб, пособия для студентов вузов, обучающихся по направлению подготовки дипломир. специалистов 654600 "Информатика и выч. техника" / А. В. Кузин, С. В. Левонисова. - 2-е изд., стер. - М. : Академия, 2008.

- 320 с.

Дополнительная литература

1.Кузовкин А. В. Управление данными [Текст] : доп. УМО вузов по унив. политехи, образованию в качестве учеб, для студентов высш. учеб, заведений / А. В. Кузовкин, А. А. Цыганов, Б. А. Щукин. - М. : Академия, 2010. -

256 с.

2.Нестеров С.А. Базы данных [Электронный ресурс]: учебное пособие. - СПб.: Изд-во Политехи, ун-та, 2013. - 250 с. - ЭБС "Единое окно".

3.Советов Б. Я. Базы данных [Текст] : теория и практика : рек. УМО по унив. политехи, образованию в качестве учеб, для студентов вузов / Б. Я. Советов, В. В. Цехановский, В. Д. Чертовский. - Изд. 2-е, стер. - М. : Высш. тик.,

2007. - 463 с.

4.Хомоненко А. Д. Базы данных [Текст] : учеб, для высш. учеб, заведений : рек. УМО по образованию / А. Д. Хомоненко, В. М. Цыганков, М. Г. Мальцев; под ред. А. Д. Хомоненко. - 6-е изд. - М. : Бином-Пресс; СПб. : КО-

РОНА-век, 2007. - 736 с.

5.Новикова, Т.П. Управление данными [Текст] : лабораторный практикум / Т.П. Новикова, К.В. Зольников; М-во образования и науки РФ, ФГБОУ ВО «ВГЛТУ». – Воронеж, 2017. − 124 с.

46

Новикова Татьяна Петровна

Управление данными

Методические указания для лабораторных работ для студентов направления подготовки 19.03.01 Биотехнология

 

Редактор Е.А. Попова

Подписано в печать

. . . Формат 60×90 1/16.

Объѐм п. л.

Усл. печ. л. .

Уч.-изд. л. . Тираж 100 экз.

Заказ

ФГБОУ ВО «Воронежский государственный лесотехнический университет им. Г.Ф. Морозова»

РИО ФГБОУ ВО «ВГЛТУ». 394087. Воронеж, ул. Тимирязева, 8 Отпечатано в УОП ФГБОУ ВО «ВГЛТУ»

394087, Воронеж, ул. Докучаева, 10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]