Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite INSERT
för att infoga nya rader i en tabell.
För att infoga data i en tabell använder du INSERT
påstående. SQLite tillhandahåller olika former av INSERT
satser som låter dig infoga en enda rad, flera rader och standardvärden i en tabell.
Dessutom kan du infoga en rad i en tabell med hjälp av data som tillhandahålls av en SELECT
uttalande.
SQLite INSERT
– infoga en enda rad i en tabell
För att infoga en enstaka rad i en tabell använder du följande form av INSERT
uttalande:
INSERT INTO table (column1,column2 ,..)
VALUES( value1, value2 ,...);
Code language: SQL (Structured Query Language) (sql)
Låt oss undersöka INSERT
uttalande mer detaljerat:
- Ange först namnet på tabellen som du vill infoga data i efter
INSERT INTO
sökord. - För det andra lägger du till en kommaseparerad lista med kolumner efter tabellnamnet. Kolumnlistan är valfri. Det är dock bra att inkludera kolumnlistan efter tabellnamnet.
- För det tredje, lägg till en kommaseparerad lista med värden efter
VALUES
nyckelord. Om du utelämnar kolumnlistan måste du ange värden för alla kolumner i värdelistan. Antalet värden i värdelistan måste vara detsamma som antalet kolumner i kolumnlistan.
Vi kommer att använda artists
tabell i exempeldatabasen för demonstrationen.
Följande sats infogar en ny rad i artists
tabell:
INSERT INTO artists (name)
VALUES('Bud Powell');
Code language: SQL (Structured Query Language) (sql)
Prova det
Eftersom ArtistId
kolumn är en kolumn för automatisk ökning, du kan ignorera den i uttalandet. SQLite genererar automatiskt ett sekventiellt heltal att infoga i ArtistId
kolumn.
Du kan verifiera infogningen genom att använda följande SELECT
uttalande:
SELECT
ArtistId,
Name
FROM
Artists
ORDER BY
ArtistId DESC
LIMIT 1;
Code language: SQL (Structured Query Language) (sql)
Prova det
Som du ser har vi en ny rad i artists
bord.
SQLite INSERT
– Infoga flera rader i en tabell
För att infoga flera rader i en tabell använder du följande form av INSERT
uttalande:
INSERT INTO table1 (column1,column2 ,..)
VALUES
(value1,value2 ,...),
(value1,value2 ,...),
...
(value1,value2 ,...);
Code language: SQL (Structured Query Language) (sql)
Varje värdelista följer VALUES
sats är en rad som kommer att infogas i tabellen.
Följande exempel infogar tre rader i artists
tabell:
INSERT INTO artists (name)
VALUES
("Buddy Rich"),
("Candido"),
("Charlie Byrd");
Code language: SQL (Structured Query Language) (sql)
Prova det
SQLite skickade ett meddelande:
Row Affected: 3
Du kan verifiera resultatet med följande påstående:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC
LIMIT 3;
Code language: SQL (Structured Query Language) (sql)
Prova det
SQLite INSERT
– Infoga standardvärden
När du skapar en ny tabell med CREATE TABLE
kan du ange standardvärden för kolumner eller en NULL
om ett standardvärde inte anges.
Den tredje formen av INSERT
satsen är INSERT DEFAULT VALUES
, som infogar en ny rad i en tabell med standardvärdena som anges i kolumndefinitionen eller NULL
om standardvärdet inte är tillgängligt och kolumnen inte har en NOT NULL
begränsning.
Till exempel, följande sats infogar en ny rad i artists
tabell med INSERT DEFAULT VALUES
:
INSERT INTO artists DEFAULT VALUES;
Code language: SQL (Structured Query Language) (sql)
Prova det
För att verifiera infogningen använder du följande uttalande:
SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC;
Code language: SQL (Structured Query Language) (sql)
Prova det
Standardvärdet för ArtistId
kolumnen är nästa sekventiella heltal. Men name
kolumnen har inget standardvärde, därför INSERT DEFAULT VALUES
sats infogar NULL
in i det.
SQLite INSERT
– Infoga nya rader med data som tillhandahålls av en SELECT
uttalande
Anta att du vill säkerhetskopiera artists
tabell kan du följa dessa steg:
Skapa först en ny tabell med namnet artists_backup
enligt följande:
CREATE TABLE artists_backup(
ArtistId INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR
);
Code language: SQL (Structured Query Language) (sql)
Prova det
För att infoga data i artists_backup
tabell med data från artists
tabell använder du INSERT INTO SELECT
uttalande enligt följande:
INSERT INTO artists_backup
SELECT ArtistId, Name
FROM artists;
Code language: SQL (Structured Query Language) (sql)
Prova det
Om du frågar efter data från artists_backup
tabell, kommer du att se all data i artists
bord.
SELECT * FROM artists_backup;
Code language: SQL (Structured Query Language) (sql)
Prova det
I den här handledningen har du lärt dig hur du använder olika former av SQLite INSERT
uttalande som infogar nya rader i en tabell.
Referenser
- https://www.sqlite.org/lang_insert.html – SQLite INSERT-sats