SQLite Opret, ændre, slip tabel med eksempler
⚡ Smart opsummering
SQLite Tabelhåndtering er afhængig af tre datadefinitionskommandoer: CREATE TABLE til at definere en tabel, ALTER TABLE til at omdøbe den eller tilføje og ændre kolonner, og DROP TABLE til at fjerne den helt fra databasen.

Afsnittene nedenfor viser, hvordan du opretter tabeller, ændrer deres struktur og slipper tabeller i SQLite3 med eksempler, der dækker kommandoerne CREATE TABLE, ALTER TABLE og DROP TABLE.
SQLite Opret tabel
Syntaks
Nedenfor er syntaksen for CREATE TABLE-sætningen.
CREATE TABLE table_name( column1 datatype, column1 datatype );
For at oprette en tabel skal du bruge forespørgslen "CREATE TABLE" som følger:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Inden for de to parenteser efter tabelnavnet definerer du tabellernes kolonner, hver kolonne skal have følgende egenskaber:
- Et navn, kolonnenavnet det skal være unikt blandt tabellens kolonner.
- En datatype – kolonnedatatypen.
- Valgfrie kolonnebegrænsninger, som vi vil forklare i de senere afsnit i denne vejledning.
SQLite OPRET TABEL HVIS DEN IKKE FINDER
Når et script køres mere end én gang, fejler en almindelig CREATE TABLE-sætning, hvis tabellen allerede findes, og stopper med en fejl. SQLite løser dette med den valgfrie IF NOT EXISTS-klausul, som kun opretter tabellen, når den mangler, og ikke gør noget, når den allerede er der.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Ovenstående sætning giver aldrig fejlen "tabellen findes allerede", hvilket gør det sikkert at opbevare den øverst i et opsætnings- eller migreringsscript.
Den samme idé fungerer i omvendt rækkefølge, når du fjerner en tabel. Tilføjelse af IF EXISTS til DROP TABLE undgår en fejl, når tabellen allerede er væk:
DROP TABLE IF EXISTS guru99;
Begge klausuler er almindelige i automatiserede scripts, fordi de lader den samme fil køre gentagne gange uden manuel oprydning mellem kørsler.
Drop bord
For at slette en tabel skal du bruge kommandoen "DROP TABLE" efterfulgt af tabelnavnet som følger:
DROP TABLE guru99;
Skift bord
Du kan bruge kommandoen "ALTER TABLE" til at omdøbe en tabel på følgende måde:
ALTER TABLE guru99 RENAME TO guru100;
For at bekræfte, at tabellens navn er ændret, kan du bruge kommandoen “.tables” til at vise listen over tabeller, og tabelnavnet bør nu ændres som følger:
Som du kan se, er tabelnavnet "guru99" ændret til "guru100" efter kommandoen "alter table".
SQLite tilføje kolonner - Brug ALTER TABLE-kommandoen
Du kan også bruge kommandoen “ALTER TABLE” til at tilføje kolonner:
ALTER TABLE guru100 ADD COLUMN Age INT;
Dette vil ændre tabellen “guru100” og tilføje en ny kolonne med alder.
Hvis du ikke så noget output, betyder det, at sætningen var vellykket, og kolonnen blev tilføjet. Intet output betyder, at markøren vil blive placeret efter "sqlite>" uden tekst efter den, sådan her:
For at bekræfte, at kolonnen blev tilføjet, kan vi dog bruge kommandoen ".schema guru100". Dette vil give dig tabeldefinitionen, og du bør se den nye kolonne, vi lige har tilføjet:
SQLite ÆNDRE TABEL: Omdøb og slet en kolonne
Ud over at tilføje en kolonne, moderne versioner af SQLite kan også omdøbe en enkelt kolonne og fjerne en. Omdøbning af en kolonne har været muligt siden SQLite 3.25, og den opdaterer navnet i tabeldefinitionen samt i hvert indeks, hver trigger og hver visning, der refererer til kolonnen.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
For at fjerne en kolonne, SQLite 3.35 og senere understøtter en direkte DROP COLUMN-klausul:
ALTER TABLE guru100 DROP COLUMN Age;
En kolonne kan ikke slettes, når den er en del af en primærnøgle, en unik begrænsning eller et indeks. På ældre SQLite versioner, der mangler DROP COLUMN, er den klassiske løsning at oprette en ny tabel med de ønskede kolonner, kopiere rækkerne hen over, slette den gamle tabel og til sidst omdøbe den nye.
Sådan kopierer du en tabel i SQLite Brug af CREATE TABLE AS SELECT
Nogle gange har du brug for en kopi af en tabel, enten som en sikkerhedskopi før en risikabel ændring eller som udgangspunkt for en ny tabel. SQLite bygger dette i ét trin med CREATE TABLE AS SELECT, som opretter en ny tabel, hvis kolonner kommer fra en forespørgsel, og udfylder den med de rækker, som forespørgslen returnerer.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Den nye tabel “guru100_backup” modtager de samme kolonner og hver række fra “guru100”. For kun at kopiere nogle rækker, tilføj en WHERE-klausul til SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
En ting man skal huske på er, at CREATE TABLE AS SELECT kopierer kolonnenavne, typer og data, men den kopierer ikke primære nøgler, andre begrænsninger eller indekser. Du skal selv tilføje disse til den nye tabel, hvis kopien skal håndhæve de samme regler som originalen.
SQLite Indsæt værdi i en tabel
For at indsætte værdier i en tabel bruger vi "INSERT INTO"-sætningen som følger:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Du kan udelade kolonnenavnene efter tabelnavnet og skrive det som følger:
INSERT INTO Tablename VALUES(value1, value2, ….);
I sådanne tilfælde, hvor du udelader kolonnenavnene fra tabellerne, skal antallet af indsatte værdier være det samme nøjagtige antal af tabellens kolonner. Derefter vil hver værdi blive indsat i korrespondancekolonnen. For eksempel for følgende indsæt sætning:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Resultatet af denne erklæring vil være som følger:
- Værdien 1 vil blive indsat i kolonnen "id".
- Værdien 'Mike' vil blive indsat i kolonnen "Navn", og
- Værdien 25 vil blive indsat i kolonnen "Alder".
INSERT … DEFAULT VALUES-sætning
Du kan udfylde tabellen med standardværdierne for kolonnerne på én gang som følger:
INSERT INTO Tablename DEFAULT VALUES;
Hvis en kolonne ikke tillader en null-værdi eller en standardværdi, får du en fejlmeddelelse om, at "NOT NULL constraint failed" (IKKE NULL-begrænsning mislykkedes) for den pågældende kolonne. Som følger:





