Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команды модификации данных (dml)Содержание книги
Поиск на нашем сайте
Оболочки проектирования содержат средства визуального внесения данных в таблицы. Например, в dbForge Studio это делается с помощью кон- текстного меню таблицы, пункта «Редактировать таблицу», вкладка «Данные»:
С помощью нижней панели можно добавлять, удалять записи и перемещаться по ним. Сохранение данных происходит не сразу, а после закрытия окна. Но в процессе ввода данные проверяются на соответствие ограничениям. Например, внесем неправильный телефонный номер. В этом случае об ошибке будет сообщено следующим образом: Рис. 22. Сообщение о нарушении ограничения.
Естественно, добавление записей (особенно массовое) может проводиться с помощью команд SQL, которые объединены в один сценарий. Итак, сценарий внесения данных в базу для MS SQL Server может быть таким:
USE proba GO
-- вставка записей в таблицу Students insert into Students (FIOStudent,NumGroup) VALUES ('Иванов Иван Иванович',901); -- и другие записи GO
-- вставка записей в таблицу Departments insert into Departments (TitleDepartment,PhoneDepartment) VALUES ('Кафедра математики','234-11-45'); -- и другие записи GO
-- вставка записей в таблицу Teachers insert into Teachers (FIOTeacher,idDepartment) VALUES ('Федосеев Александр Иванович', 6); -- и другие записи GO
-- вставка записей в таблицу Subjects insert into Subjects (TitleSubject) VALUES ('Математический анализ'); -- и другие записи GO -- вставка записей в таблицу Sessions insert into Sessions (NumGroup,NumSemestr, Zach_Exam,idSubject, idTeacher) VALUES (901,1, 'зачет', 2,18); -- и другие записи GO
-- вставка записей в таблицу Marks insert into Marks(idMark,LowBalls,HighBalls) VALUES (5, 86, 100); -- и другие записи GO
Отметим, что свойство счетчика в MS SQL Server для поля фиксирует все операции с таблицей, поэтому, к примеру, несмотря на отсутствие записей в таблице, новый номер может быть отличен от 1. Оператор GO, который используется в скрипте, специфичен для MS SQL Server и разделяет скрипт на неделимые блоки, которые выполнятся полностью или не выполнятся вообще. Удобнее всего выполнять этот сценарий блоками, чтобы между ними можно было бы убедиться в корректности использования значений в полях внешнего ключа. Команды вставки для MySQL не отличаются от приведенного выше кода (за исключением команды GO). Также внимательно следует отнестись к ключевым полям при установке связи внешнего ключа. Сценарий для PostgreSQL имеет следующий вид. Отсутствие полей- счетчиков требует указывать ключевые поля во всех записях. -- сценарий вставки записей в таблицы базы данных insert into "Students" ("idStudent", "FIOStudent","NumGroup") VALUES (1,'Иванов Иван Иванович',901); -- и другие записи
При нарушениях тех или иных ограничений оператор вставки не срабатывает. Так, повторная вставка записи или вставка записи с уже существующим первичным ключом будет запрещена. Например, повторно осуществляем вставку записи: insert into Marks(idMark,LowBalls,HighBalls) VALUES (5, 86, 100); команда выполнена не будет. Мы увидим сообщение об ошибке: MS SQL Server: Ошибка: (53,1): Нарушено "PK_Marks" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo.Marks". Повторяющееся значение ключа: (5).
PostgreSQL: ОШИБКА: повторяющееся значение ключа нарушает ограничение уникальности "pk_mark" SQL-состояние: 23505 Подробности: Ключ "("idMark")=(5)" уже существует.
MySQL: Duplicate entry '5' for key 1
При вставке записи с нарушением ограничения внешнего ключа также будет выведено сообщение об ошибке. Например, мы пытаемся вставить строку в таблицу сессии, в которой код преподавателя равен 100: insert into Sessions (NumGroup, NumSemestr, Zach_Exam, idSubject,idTeacher) VALUES (905,1, 'экзамен', 3,100);
Сообщение об ошибке в этом случае будет таким: MS SQL Server: Ошибка: (53,63): Конфликт инструкции INSERT с ограничением FOREIGN KEY "FK_Sessions_Teachers_idTeacher". Конфликт произошел в базе данных "proba", таблица "dbo.Teachers", column 'idTeacher'.
PostgreSQL: ОШИБКА: INSERT или UPDATE в таблице "Sessions" нарушает ограничение внешнего ключа "fk_sess_tea" SQL-состояние: 23503 Подробности: Ключ (idTeacher)=(100) отсутствует в таблице "Teachers".
MySQL: Cannot add or update a child row: a foreign key constraint fails (`decanat/sessions`, CONSTRAINT `FK_sessions_teachers_idTeacher` FOREIGN KEY (`idTeacher`) REFERENCES `teachers` (`idTeacher`) ON DELETE NO ACTION ON UPDATE NO ACTION)
|
||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.154.132 (0.006 с.) |