Резюме :в този урок ще научите как да използвате SQLite INSERT оператор за вмъкване на нови редове в таблица.
За да вмъкнете данни в таблица, използвате INSERT изявление. SQLite предоставя различни форми на INSERT изрази, които ви позволяват да вмъкнете един ред, няколко реда и стойности по подразбиране в таблица.
Освен това можете да вмъкнете ред в таблица, като използвате данни, предоставени от SELECT изявление.
SQLite INSERT – вмъкване на един ред в таблица
За да вмъкнете един ред в таблица, използвате следната форма на INSERT изявление:
INSERT INTO table (column1,column2 ,..)
VALUES( value1, value2 ,...);Code language: SQL (Structured Query Language) (sql)
Нека разгледаме INSERT изявление по-подробно:
- Първо посочете името на таблицата, в която искате да вмъкнете данни след
INSERT INTOключови думи. - Второ, добавете разделен със запетая списък с колони след името на таблицата. Списъкът с колони е по избор. Въпреки това е добра практика да включите списъка с колони след името на таблицата.
- Трето, добавете разделен със запетая списък със стойности след
VALUESключова дума. Ако пропуснете списъка с колони, трябва да посочите стойности за всички колони в списъка със стойности. Броят на стойностите в списъка със стойности трябва да е същият като броя на колоните в списъка с колони.
Ще използваме artists таблица в примерната база данни за демонстрацията.
Следното изявление вмъква нов ред в artists таблица:
INSERT INTO artists (name)
VALUES('Bud Powell');Code language: SQL (Structured Query Language) (sql) Опитайте го
Тъй като ArtistId колоната е колона с автоматично увеличение, можете да я игнорирате в изявлението. SQLite автоматично генерира последователно цяло число за вмъкване в ArtistId колона.
Можете да проверите операцията за вмъкване, като използвате следния SELECT изявление:
SELECT
ArtistId,
Name
FROM
Artists
ORDER BY
ArtistId DESC
LIMIT 1;Code language: SQL (Structured Query Language) (sql) Опитайте го
Както виждате, имаме нов ред в artists таблица.
SQLite INSERT – Вмъкване на няколко реда в таблица
За да вмъкнете няколко реда в таблица, използвате следната форма на INSERT изявление:
INSERT INTO table1 (column1,column2 ,..)
VALUES
(value1,value2 ,...),
(value1,value2 ,...),
...
(value1,value2 ,...);
Code language: SQL (Structured Query Language) (sql)
Всеки списък със стойности следва VALUES клаузата е ред, който ще бъде вмъкнат в таблицата.
Следващият пример вмъква три реда в artists таблица:
INSERT INTO artists (name)
VALUES
("Buddy Rich"),
("Candido"),
("Charlie Byrd");Code language: SQL (Structured Query Language) (sql) Опитайте го
SQLite издаде съобщение:
Row Affected: 3 Можете да проверите резултата, като използвате следното изявление:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC
LIMIT 3;Code language: SQL (Structured Query Language) (sql) Опитайте го
SQLite INSERT – Вмъкване на стойности по подразбиране
Когато създавате нова таблица с помощта на CREATE TABLE израз, можете да посочите стойности по подразбиране за колони или NULL ако не е посочена стойност по подразбиране.
Третата форма на INSERT изразът е INSERT DEFAULT VALUES , който вмъква нов ред в таблица, използвайки стойностите по подразбиране, посочени в дефиницията на колоната или NULL ако стойността по подразбиране не е налична и колоната няма NOT NULL ограничение.
Например, следният израз вмъква нов ред в artists таблица с помощта на INSERT DEFAULT VALUES :
INSERT INTO artists DEFAULT VALUES;Code language: SQL (Structured Query Language) (sql) Опитайте го
За да проверите вмъкването, използвате следното изявление:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC;Code language: SQL (Structured Query Language) (sql) Опитайте го
Стойността по подразбиране на ArtistId колоната е следващото последователно цяло число. Въпреки това, name колоната няма стойност по подразбиране, следователно INSERT DEFAULT VALUES оператор вмъква NULL в него.
SQLite INSERT – Вмъкване на нови редове с данни, предоставени от SELECT изявление
Да предположим, че искате да архивирате artists таблица, можете да следвате тези стъпки:
Първо създайте нова таблица с име artists_backup както следва:
CREATE TABLE artists_backup(
ArtistId INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR
);Code language: SQL (Structured Query Language) (sql) Опитайте го
За да вмъкнете данни в artists_backup таблица с данните от artists таблица, използвате INSERT INTO SELECT изявление, както следва:
INSERT INTO artists_backup
SELECT ArtistId, Name
FROM artists;Code language: SQL (Structured Query Language) (sql) Опитайте го
Ако заявите данни от artists_backup таблица, ще видите всички данни в artists таблица.
SELECT * FROM artists_backup;Code language: SQL (Structured Query Language) (sql) Опитайте го
В този урок научихте как да използвате различни форми на SQLite INSERT израз, който вмъква нови редове в таблица.
Препратки
- https://www.sqlite.org/lang_insert.html – SQLite INSERT израз