русс | укр

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

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

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

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


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

Листинг 6.4. Использование ключевого слова IGNORE.


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


Однострочный оператор INSERT

Добавление данных

 

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

 



 

Однострочный оператор insert может использоваться в нескольких формах. Упрощенный синтаксис первой формы выглядит следующим образом:

Данный оператор вставляет новую запись в таблицу tbl, значения записи перечисляется в списке expression, порядок следования столбцов может задаваться списком col_name. Значения передаются в списке после ключевого слова values. Рассмотрим процесс вставки на примере таблицы catalogs (см. листинг 4.24). Таблица имеет два поля:

 



 



Добавить новую запись в таблицу catalogs можно при помощи запроса, представленного в листинге 6.1.

 



Как видно из листинга 6.1, в таблицу catalogs добавилась новая запись с первичным ключом id_catalogs, равным единице, и именем name — "Процессоры". Строковые значения необходимо помещать в кавычки, в то время как числовые значения допускается использовать без них.

Список столбцов col_name, размещенный после имени таблицы, позволяет изменить порядок следования столбцов при добавлении.

 



Как видно из листинга 6.2, порядок следования столбцов был изменен, сначала было добавлено название раздела name и лишь затем первичный ключ таблицы id_catalog. Следует помнить, что первичный ключ таблицы является уникальным значением и добавление уже существующего значения приведет к ошибке (листинг 6.3).

 



Если необходимо, чтобы новые записи с дублирующим ключом отбрасывались без генерации ошибки, нужно добавить после оператора insert ключевое слово IGNORE.

 



 



Как видно из листинга 6.4, генерации ошибки не происходит, тем не менее новая запись также не добавляется.

При добавлении новой записи с уникальными индексами выбор такого уникального значения может быть непростой задачей. Для того чтобы не осуществлять дополнительный запрос, направленный на выявление максимального значения первичного ключа для генерации нового уникального значения, в MySQL введен механизм его стоматической генерации. Для этого достаточно снабдить первичный ключ --_catalog атрибутом auto_increment (см. главу 5). Тогда при создании новой записи з качестве значения id__catalog достаточно передать null или 0 — поле автоматически получит значение, равное максимальному значению столбца id_cataiog, плюс единица (листинг 6.5).

При вставке оператором insert не обязательно указывать все столбцы. Те столбцы, которые не указаны в списке, получат значение по умолчанию. Так, в листинге 6.6 значение id_catalog не передается оператору insert.

Так как id_catalog по умолчанию принимает значение null, которое вызывает механизм auto_increment, то поле id_catalog автоматически получает значение 5 (максимальное значение 4 плюс 1). Допускается добавление полностью пустых строк, это продемонстрировано в листинге 6.7

Так как текстовое поле name по умолчанию принимает пустую строку, новая запись содержит пустую запись. Значение по умолчанию можно подставить, если передать в качестве значения ключевое слово default (листинг 6.8).

Часто в прикладных программах требуется узнать значение, присвоенное столбцу и снабженное атрибутом auto_increment. Это может потребоваться для того, чтобы использовать сгенерированное значение первичного ключа в качестве вторичного в другой таблице или для каких-то других целей. Только что сгенерированное значение возвращает встроенная функция MySQL last_insert_id(), как это показано в листинге 6.9.

Например, если необходимо, чтобы следующее значение поля id_catalog приняло значение 16, а не 7, можно воспользоваться запросом, представленным в листинге 6.10

Кроме констант, в списке значений expression могут выступать выражения с участием столбцов из списка col_name.

Так, в листинге 6.11 для первой записи поле id_catalog принимает значение 6, а поле name значение 21 (7x3). Ссылаться в выражении можно только на столбцы, расположенные левее, ссылка на правые столбцы дает 0 (в случае столбца id_catalog это ( привело к автоматической генерации нового уникального значения 16 вместо ожидаемых 21).

 



Если при вставке нового значения задействован механизм auto_increment, to воспользоваться вновь сгенерированным значением не удастся (листинг 6.12), так сначала полю id_catalog присваивается значение 0, и лишь после того, как запись добавлена — генерируется новое значение.

Еще одной формой оператора insert является синтаксис с ключевым словом set

INSERT [INTO] tbl SET col_name=expr, ...

Оператор заносит в таблицу tbi новую запись, столбец coi_name в котором получает значение ехрr.

Запрос в листинге 6.13 аналогичен запросу в листинге 6.14

Форма оператора insert с ключевым словом set позволяет более гибко добавлять записи. Если имя столбца после set не встречается, полю присваивается значение по умолчанию.

 





<== предыдущая лекция | следующая лекция ==>
Тема 3.6. Добавление данных. Удаление данных. Обновление данных. | Пакетная загрузка данных


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


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

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

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


 


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

 
 

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

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