Резюме :в този урок ще научите как да използвате 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 израз