sql >> Database teknologi >  >> RDS >> SQLite

SQLite Indsæt

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

  1. Oracle - literal matcher ikke formatstrengfejl

  2. Find refererede enheder i SQL Server:sys.dm_sql_referenced_entities

  3. MySQL Alter tabelkolonne

  4. postgresql:datatype for md5-meddelelsessammendrag?