Оглавление

4.4. Вставка данных в таблицу

Для добавления записей в таблицу используется SQL-команда:
INSERT INTO <Имя таблицы> [(<Поле1>, <Поле2>, ...)]
VALUES ('<Значение1>', '<Значение2>', ...);

 

Например, добавить две записи в таблицу City можно одним из следующих способов:
INSERT INTO `City` (`id_City`, `City`)
VALUES (NULL, 'Санкт-Петербург');
INSERT INTO `City` (`id_City`, `City`)
VALUES (NULL, 'Москва');
INSERT INTO `City` (`City`)
VALUES ('Санкт-Петербург');
INSERT INTO `City` (`City`)
VALUES ('Москва');
INSERT INTO `City`
SET `id_City`=NULL, `City`='Санкт-Петербург';
INSERT INTO `City`
SET `id_City`=NULL, `City`='Москва';
INSERT INTO `City`
SET `City`='Санкт-Петербург';
INSERT INTO `City`
SET `City`='Москва';
INSERT INTO `City` VALUES
(NULL, 'Санкт-Петербург'),
(NULL, 'Москва');
INSERT INTO `City` VALUES (NULL, 'Санкт-Петербург');
INSERT INTO `City` VALUES (NULL, 'Москва');

 
Чаще всего на практике используются последние два способа.

 
Обратите внимание, для первого поля мы указали значение NULL, так как для этого поля установлена опция AUTO_INCREMENT и MySQL автоматически вставит значение в поле.

 
Если название таблицы содержит пробел или совпадает с одним из ключевых слов MySQL, то название таблицы необходимо заключить в обратные кавычки.

 

Например:
INSERT INTO `City` VALUES
(NULL, 'Санкт-Петербург'),
(NULL, 'Москва');

 
Давайте теперь заполним наши созданные таблицы значениями. Для этого выполним следующие SQL-команды:
INSERT INTO `City` VALUES
(1, 'Санкт-Петербург'),
(2, 'Москва');
INSERT INTO `Customers` VALUES
(1, 'Иванов Иван Иванович', 'Седова, 7', 1, '125-14-45'),
(2, 'Петров Сергей Николаевич', 'Невский, 88', 1, '312-12-51');
INSERT INTO `Tovar` VALUES
(1, 'HDD', 3400),
(2, 'Тюнер', 3100),
(3, 'Монитор', 7200),
(4, 'Дискета', 10),
(5, 'Сканер', 6000);
INSERT INTO `Orders_Items` VALUES
(1, 1, 1),
(2, 2, 1),
(3, 3, 1),
(4, 2, 1),
(5, 4, 10),
(5, 5, 1);
INSERT INTO `Orders` VALUES
(1, 1, '2007-06-20', 3400),
(2, 2, '2007-06-20', 3100),
(3, 1, '2007-06-25', 7200),
(4, 1, '2007-06-30', 3100),
(5, 1, '2007-07-01', 6100);

 

Обратите внимание, что числа в кавычки не заключаются. А чтобы сохранить целостность базы данных, индексы указываются явным образом.

 
Если предпринимается попытка вставить запись, а в таблице уже есть запись с таким же значением первичного ключа (или значение индекса UNIQUE не уникально), то такая SQL-команда приводит к ошибке. Если необходимо, чтобы такие неуникальные записи обновлялись без вывода сообщения об ошибке, можно использовать следующую SQL-команду:
REPLACE [INTO] <Имя таблицы> [(<Поле1>, <Поле2>, ...)]
VALUES ('<Значение1>', '<Значение2>', ...);

 
В качестве примера изменим номер телефона господина Иванова:
REPLACE `Customers` VALUES
(1, 'Иванов Иван Иванович', 'Седова, 7', 1, '125-14-47');

 
Если передать уникальное значение, то SQL-команда REPLACE аналогична команде INSERT. Например, следующая SQL-команда добавит нового покупателя:
REPLACE `Customers` VALUES
(NULL, 'Сидоров Олег Николаевич', 'Передовиков, 12', 1, '529-15-63');

 

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити