кодесурса
«SQLite

SQLite INSERT INTO

script1adsense2code
script1adsense3code

Вступление

Команда INSERT используется для создания новых строк в указанной таблице. INSERT работает с одной таблицей и может одновременно вставлять одну строку или несколько строк с помощью команды SELECT. Этот оператор является частью языка манипулирования данными SQL, DML.

Синтаксис:

 ВСТАВИТЬ [ИЛИ конфликт-алгоритм]
INTO [имя-базы данных.] Имя-таблицы [(список-столбцов)]
ЦЕННОСТИ (список значений)	

Здесь мы создадим новую таблицу prod_mast:

CREATE TABLE hrdb.prod_mast(
prod_id integer PRIMARY KEY,
prod_name text(20),
prod_rate integer,
prod_qc text(10) DEFAULT 'OK');
	

пример

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

INSERT INTO prod_mast(prod_id, prod_name, prod_rate, prod_qc)
VALUES(1, 'Pancakes', 75, 'OK');

Вот вставленный ряд.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
-------------------- ---------- ---------- ----------
1 Блины 75 ОК

Вставить значение без столбца PRIMARY KEY

INSERT INTO prod_mast(prod_name, prod_rate, prod_qc)
VALUES('Gulha', 55, 'Problems');

Приведенный выше пример показывает, что столбец prod_id не был включен в список столбцов. Поскольку столбец prod_id определен как INTEGER PRIMARY KEY, он автоматически увеличивается с помощью SQLite. Итак, ясно, что библиотека SQLite добавляет новый идентификатор.

Вот вставленный ряд.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
--------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем

Введите значение без упоминания списка столбцов :

INSERT INTO prod_mast VALUES(3,'Pakora', 48, 'OK');

Приведенный выше пример показывает, что после имени таблицы список столбцов не указан. В таких случаях необходимо указать значения для всех столбцов.

Вот вставленный ряд.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
--------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем
3 Пакора 48 ОК

Вставьте значения для определенных столбцов

Здесь, в примере ниже, были указаны два столбца.

INSERT INTO prod_mast(prod_id, prod_name)
VALUES(4, 'Pizza');

Вот результат после вставки.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
-------------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем
3 Пакора 48 ОК
4 Пицца ОК

Из вышеприведенного результата кажется, что значение для двух упомянутых столбцов было вставлено, и значение для столбца prod_qc также было вставлено, потому что для этого столбца значение по умолчанию, присвоенное «OK» во время создания таблицы, но столбец prod_rate остается пустым.

Теперь используйте следующую команду.

sqlite> .nullvalue NULL

Команда .nullvalue указывает SQLite показывать значения NULL как NULL. SQLite показывает пустые строки для значений NULL по умолчанию. Теперь посмотрим на результат. Пустой столбец prod_rate, заполненный NULL.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
--------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем
3 Пакора 48 ОК
4 Пицца NULL ОК

Вставить дубликат столбца первичного ключа

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

 sqlite> INSERT INTO prod_mast (prod_id, prod_name, prod_rate, prod_qc)
   ...> ЗНАЧЕНИЯ (3, «Конфеты», 25, «ОК»);
Ошибка: не удалось выполнить уникальное ограничение: prod_mast.prod_id

ОБНОВЛЕНИЕ строк с использованием INSERT

Если мы хотим изменить строку для prod_id равной 4, мы можем использовать следующий оператор

INSERT OR REPLACE INTO prod_mast(prod_id, prod_name, prod_rate, prod_qc)
VALUES(4, 'Pizza', 200, 'OK');

Вот результат после вставки.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
-------------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем
3 Пакора 48 ОК
4 Пицца 200 ОК

Приведенный выше результат показывает, что хотя prod_id 4 уже существует, он был изменен оператором INSERT, поскольку был использован оператор INSERT OR REPLACE.

Вставка нескольких строк одним оператором INSERT

INSERT OR REPLACE INTO prod_mast(prod_id, prod_name, prod_rate, prod_qc)
VALUES(5, 'Fudge', 100, 'OK'),
(6, 'Candy', 95, 'Not OK'),
(7, 'Chocolate', 150, 'OK');

Вот результат после вставки.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
-------------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем
3 Пакора 48 ОК
4 Пицца 200 ОК
5 помадка 100 ОК
6 Candy 95 не в порядке
7 Шоколад 150 ОК

Вставить с помощью инструкции SELECT

Вот еще одна таблица prod_back

CREATE TABLE hrdb.prod_backup(
prod_id integer PRIMARY KEY,
prod_name text(20),
prod_rate integer,
prod_qc text(10) DEFAULT 'OK');

Вот инструкция для вставки всех строк строк таблицы prod_mast в таблицу pord_backup.

INSERT INTO prod_backup SELECT * FROM prod_mast;

Вот результат после вставки.

 sqlite> SELECT * FROM prod_backup;
prod_id prod_name prod_rate prod_qc
-------------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем
3 Пакора 48 ОК
4 Пицца 200 ОК
5 помадка 100 ОК
6 Candy 95 не в порядке
7 Шоколад 150 ОК

Предыдущая: СУЩЕСТВУЕТ Оператор
Далее: Обновление

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code