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 INTOsö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
VALUESnyckelord. 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