русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Команда вставки - INSERT


Дата добавления: 2015-07-09; просмотров: 977; Нарушение авторских прав


Команда языка DML - INSERT используется для ввода новых строк в таблицу.

Синтаксис команды:

INSERT INTO {<имя таблицы>[(<имя столбца> [псевдоним] [, …n]] |[<подзапрос>]}

VALUES (<значение>[,…n]);

При реализации команды INSERT необходимо отслеживать, чтобы

· Последовательность данных в предложение VALUES, соответствовала порядку столбцов в таблице.

· Заполнялись все столбцы с признаком NOT NULL.

Пример 12

Задача.

Ввести в таблицу SGroup значения названия групп ИСТ-01 и АИС-01.

Решение.

INSERT INTO SGroup (NameGroup)

VALUES('АИС-01');

INSERT INTO SGroup (NameGroup)

VALUES('ИСT-01');

При успешном выполнении каждой команды вы получите сообщение: 1 row(s) affected

Обратим внимание на то, что поле IDGroup заполняется автоматически, поскольку имеет свойство IDENTITY. Попытка выполнить, например, такую команду

INSERT INTO SGroup (IDGroup, NameGroup)

VALUES(3,'ИСT-02');

Приведет к сообщению об ошибке.

Server: Msg 544, Level 16, State 1, Line 1

Cannot insert explicit value for identity column in table 'SGroup' when IDENTITY_INSERT is set to OFF.

Однако если вы все-таки хотите ввести код группы вручную вам необходимо отключить действие IDENTITY с помощью команды SET IDENTITY_INSERT .

Синтаксис команды:

SET IDENTITY_INSERT <имя таблицы> { ON | OFF }

Опция - ON отключает процесс автоматического присвоения identity-значений, OFF - включает.

Пример 13

Задача.

Ввести в таблицу SGroup значения названия групп ИСТ-02, присвоив столбцу IDGroup значение 3.

Решение.

SET IDENTITY_INSERT SGroup ON[3]

INSERT INTO SGroup (IDGroup, NameGroup)

VALUES(3,'ИСT-02');

Несмотря на то, что в команде INSERT список столбцов является необязательным, его рекомендуется указывать явно. Последнее позволяет избежать недиагностируемых ошибок при заполнении столбцов. Если вы все-таки хотите отказаться от перечисления столбцов, то вам придется отслеживать, чтобы порядок столбцов в таблице соответствовал порядку столбцов в команде INSERT.



Пример 14

Задача.

Ввести данные, приведенные ниже (см. Приложение 2. Пример заполнения таблиц.) в таблицу Student.

Решение.

Попытка ввода первой строки с помощью приведенной ниже команды

INSERT INTO Student

VALUES('050001','Иванов И.И.',3,'8701','192355','01.06.2002','ГОВД г.Ухты','1111111111')

даст сообщение об ошибке:

Syntax error converting datetime from character string

Ошибка вызвана несоответствием типов данных, причиной же ее послужило нарушение порядка столбцов в списке VALUES. (Надо отметить, что появление сообщения об ошибке, является наилучшим исходом. Дела бы обстояли хуже, если бы не возникло конфликта, вызванного несоответствием типа данных или размера данных. В этом случае результатом стала бы некорректно заполненная таблица.) Исправить ошибку можно или, изменив порядок следования данных в предложении:

INSERT INTO Student

VALUES('050001','1111111111','Иванов И.И.',3,'8701','192355','01.06.2002', 'УВД г.Ухты');

или перечислив все столбцы после имени таблицы в том же порядке, в котором они следуют в предложении VALUES.

INSERT INTO Student (NRecordBook,Stname,IDGroup,SPasport,NPasport,DataPasport, NameDeptPasport,INN)

VALUES('050002', 'Петров П.П',3,'8702','191256','11.20.2002', 'УВД г.Сосногорск', '1111111112')

Естественно, что если столбец не имеет признак NOT NULL, то его значения могут не вводиться, например, в следующем примере не вводится значение ИНН.

INSERT INTO Student (NRecordBook,Stname,IDGroup,SPasport,NPasport,DataPasport, NameDeptPasport)

VALUES('050003','Сидоров С.С.', 2,'8703','192457','11.26.2002', 'УВД г.Ухты')

INSERT INTO Student (NRecordBook)

VALUES('050004')

Данные в таблицу можно внести и из других таблиц, используя запрос SELECT. Реакцией системы, как и в предыдущем случае при успешном выполнении команды будет фраза N row affected (создано N строк), где в качестве N указывается количество созданных строк.

Задание 3

Создать таблицу Student1, аналогичную таблице Student и заполнить ее данными из таблицы приложения (см. Приложение 2. Пример заполнения таблиц.)

Пример 15

Задача.

Ввести в таблицу Student записи из таблицы Student1.

Решение.

INSERT INTO Student

SELECT *

FROM Student1;



<== предыдущая лекция | следующая лекция ==>
Ограничение CHECK | Команда обновления - UPDATE


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.187 сек.