Oversigt :i denne vejledning vil du lære, hvordan du bruger SQLite INSERT
sætning for at indsætte nye rækker i en tabel.
For at indsætte data i en tabel, bruger du INSERT
udmelding. SQLite giver forskellige former for INSERT
sætninger, der giver dig mulighed for at indsætte en enkelt række, flere rækker og standardværdier i en tabel.
Derudover kan du indsætte en række i en tabel ved hjælp af data leveret af en SELECT
erklæring.
SQLite INSERT
– indsættelse af en enkelt række i en tabel
For at indsætte en enkelt række i en tabel, bruger du følgende form for INSERT
erklæring:
INSERT INTO table (column1,column2 ,..)
VALUES( value1, value2 ,...);
Code language: SQL (Structured Query Language) (sql)
Lad os undersøge INSERT
erklæring mere detaljeret:
- Først skal du angive navnet på den tabel, som du vil indsætte data i efter
INSERT INTO
søgeord. - For det andet skal du tilføje en kommasepareret liste over kolonner efter tabelnavnet. Kolonnelisten er valgfri. Det er dog en god praksis at inkludere kolonnelisten efter tabelnavnet.
- For det tredje skal du tilføje en kommasepareret liste over værdier efter
VALUES
søgeord. Hvis du udelader kolonnelisten, skal du angive værdier for alle kolonner i værdilisten. Antallet af værdier i værdilisten skal være det samme som antallet af kolonner i kolonnelisten.
Vi vil bruge artists
tabel i eksempeldatabasen til demonstrationen.
Følgende sætning indsætter en ny række i artists
tabel:
INSERT INTO artists (name)
VALUES('Bud Powell');
Code language: SQL (Structured Query Language) (sql)
Prøv det
Fordi ArtistId
kolonne er en automatisk stigningskolonne, du kan ignorere den i sætningen. SQLite genererer automatisk et sekventielt heltal til at indsætte i ArtistId
kolonne.
Du kan bekræfte indsættelseshandlingen ved at bruge følgende SELECT
erklæring:
SELECT
ArtistId,
Name
FROM
Artists
ORDER BY
ArtistId DESC
LIMIT 1;
Code language: SQL (Structured Query Language) (sql)
Prøv det
Som du kan se, har vi en ny række i artists
tabel.
SQLite INSERT
– Indsættelse af flere rækker i en tabel
For at indsætte flere rækker i en tabel, bruger du følgende form for INSERT
erklæring:
INSERT INTO table1 (column1,column2 ,..)
VALUES
(value1,value2 ,...),
(value1,value2 ,...),
...
(value1,value2 ,...);
Code language: SQL (Structured Query Language) (sql)
Hver værdiliste efter VALUES
klausul er en række, der vil blive indsat i tabellen.
Følgende eksempel indsætter tre rækker i artists
tabel:
INSERT INTO artists (name)
VALUES
("Buddy Rich"),
("Candido"),
("Charlie Byrd");
Code language: SQL (Structured Query Language) (sql)
Prøv det
SQLite udsendte en meddelelse:
Row Affected: 3
Du kan verificere resultatet ved at bruge følgende sætning:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC
LIMIT 3;
Code language: SQL (Structured Query Language) (sql)
Prøv det
SQLite INSERT
– Indsættelse af standardværdier
Når du opretter en ny tabel ved hjælp af CREATE TABLE
sætning, kan du angive standardværdier for kolonner eller en NULL
hvis en standardværdi ikke er angivet.
Den tredje form af INSERT
sætningen er INSERT DEFAULT VALUES
, som indsætter en ny række i en tabel ved hjælp af standardværdierne angivet i kolonnedefinitionen eller NULL
hvis standardværdien ikke er tilgængelig, og kolonnen ikke har en NOT NULL
begrænsning.
For eksempel indsætter følgende sætning en ny række i artists
tabel ved hjælp af INSERT DEFAULT VALUES
:
INSERT INTO artists DEFAULT VALUES;
Code language: SQL (Structured Query Language) (sql)
Prøv det
For at bekræfte indsættelsen bruger du følgende sætning:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC;
Code language: SQL (Structured Query Language) (sql)
Prøv det
Standardværdien for ArtistId
kolonne er det næste sekventielle heltal. Men name
kolonnen har ingen standardværdi, derfor INSERT DEFAULT VALUES
sætning indsætter NULL
ind i det.
SQLite INSERT
– Indsættelse af nye rækker med data leveret af en SELECT
erklæring
Antag, at du vil sikkerhedskopiere artists
tabel, kan du følge disse trin:
Først skal du oprette en ny tabel med navnet artists_backup
som følger:
CREATE TABLE artists_backup(
ArtistId INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR
);
Code language: SQL (Structured Query Language) (sql)
Prøv det
For at indsætte data i artists_backup
tabel med data fra artists
tabellen, bruger du INSERT INTO SELECT
erklæring som følger:
INSERT INTO artists_backup
SELECT ArtistId, Name
FROM artists;
Code language: SQL (Structured Query Language) (sql)
Prøv det
Hvis du forespørger data fra artists_backup
tabel, vil du se alle data i artists
tabel.
SELECT * FROM artists_backup;
Code language: SQL (Structured Query Language) (sql)
Prøv det
I denne tutorial har du lært, hvordan du bruger forskellige former for SQLite INSERT
sætning, der indsætter nye rækker i en tabel.
Referencer
- https://www.sqlite.org/lang_insert.html – SQLite INSERT-sætning