русс | укр

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

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

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

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


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

ДОБАВЛЕНИЕ ДАННЫХ (инструкция INSERT)


Дата добавления: 2013-12-23; просмотров: 2025; Нарушение авторских прав


 

Наименьшей единицей информации, которую можно добавить в реляционную базу данных, является одна строка. В реляционной СУБД существует три способа добавления новых строк в базу данных:

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

- многострочная инструкция INSERT обеспечивает извлечение строк из одной части базы данных и добавление их в другую таблицу. Она обычно используется, когда “старые” строки таблицы пересылаются в неиспользуемую таблицу для сохранения.

Однострочная инструкция INSERT. Однострочная инструкция INSERT, добавляет в таблицу новую строку.

 

INSERT INTO имя_таблицы [(список_столбцов)]

VALUES (список_значений_данных);

 

В предложении INTO указывается имя таблицы или представления, в которые добавляется новая строка, а в предложении VALUES содержатся значения данных для новой строки. Список столбцов определяет, какие значения, в какой столбец заносятся.

На практике данные почти всегда добавляются в базу с помощью программ ввода данных, использующих специальные формы. После окончания ввода данных в форму, приложение добавляет новую строку данных в базу с помощью программного SQL. Однако инструкцию INSERT можно использовать и в интерактивном режиме. Независимо от того, какой SQL используется, интерактивный или программный, инструкция INSERT имеет один и тот же вид.

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

Список столбцов в инструкции INSERT – необязательный параметр, он служит для того, чтобы установить соответствие между значениями данных, содержащимися в предложении VALUES, и столбцами, для которых эти данные предназначены. Списки значений и столбцов должны содержать одинаковое число элементов, а тип данных каждого значения должен быть совместимым с типом соответствующего столбца. Если списка столбцов нет, то используются все столбцы в том порядке, в котором они перечислены в CREATE TABLE.



Добавление значений NULL. При добавлении в таблицу новой строки всем столбцам, имена которых отсутствуют в списке столбцов инструкции INSERT, автоматически присваивается значение NULL.

Значение NULL можно присвоить и явным образом, включив эти столбцы в список, а в списке значений задав для них ключевое слово NULL:

 

insert inTO staff (sno, fname, lname, address, tel_no, position, sex, salary, dob, bno)

values (‘s122’, ‘Иван’, ‘Иванов’, ‘…’, ‘…’, NULL, ‘m’, NULL, ’03.05.92’, 2);

 

Добавление всех столбцов.Для удобства в SQL разрешается не включать список столбцов в инструкцию INSERT. Если список столбцов опущен, он генерируется автоматически и в нем слева направо перечисляются все столбцы таблицы. При выполнении инструкции SELECT * генерируется такой же список столбцов. Пользуясь этой сокращенной формой записи, предыдущую инструкцию можно переписать таким образом:

insert into staff

values (‘s122’, ‘Иван’, ‘Иванов’, ‘…’, ‘…’, NULL, ‘m’, NULL, ’03.05.92’, 2);

 

Как видно, если список столбцов опущен, то в списке значений явно указаны значения NULL, а последовательность значений данных в точности соответствует порядку столбцов в таблице.

Многострочная инструкция INSERT. Многострочная инструкция INSERT добавляет в таблицу несколько строк путем копирования множества строк одной таблицы в другую таблицу.

 

INSERT INTO имя_таблицы [(список_столбцов)]

SELECT запрос;

 

В этой разновидности инструкции INSERT значения для новых строк явно не задаются. Источником новых строк служит запрос на выборку (SELECT), содержащийся внутри инструкции.

На запрос, содержащийся внутри многострочной инструкции INSERT, накладывается несколько ограничений:

- в запрос нельзя включать предложение ORDER BY. He имеет смысла сортировать таблицу результатов запроса, поскольку она добавляется в таблицу, которая, как и все остальные, не упорядочена;

- таблица результатов запроса должна содержать количество столбцов, равное длине списка столбцов в инструкции INSERT (или полностью повторять список столбцов таблицы, если список столбцов отсутствует), а типы данных соответствующих столбцов таблицы результатов запроса и целевой таблицы должны быть совместимыми;

- имя таблицы, указанное в инструкции INSERT не может присутствовать в предложении FROM запроса на выборку или любого запроса, вложенного в него. Тем самым запрещается добавление таблицы самой к себе.

Пример:

Пусть существует таблица staff_prop_count (sno, fname, lname, prop_count), которая содержит имена работников компании и их учетные номера, а также количество объектов аренды, за которые они отвечают.

INSERT INTO staff_prop_count

(SELECT sno, fname, lname, COUNT(*)

FROM staff s, property_for_rent p

WHERE s.sno=p.sno

GROUP BY s.sno, fname, lname)

UNION

(SELECT sno, fname, lname, 0)

FROM staff

WHERE s.sno NOT IN (SELECT DISTINCT sno

FROM property_for_rent));

 

Отметим, что инструкция UNION в таком применении поддерживается не во всех диалектах SQL.

 

 



<== предыдущая лекция | следующая лекция ==>
ПОДЧИНЕННЫЕ ЗАПРОСЫ (ПОДЗАПРОСЫ) | УДАЛЕНИЕ ДАННЫХ (инструкция delete)


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


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

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

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


 


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

 
 

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

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