SQLite Skapa, ändra, släpp tabell med exempel
⚡ Smart sammanfattning
SQLite Tabellhantering förlitar sig på tre datadefinitionskommandon, CREATE TABLE för att definiera en tabell, ALTER TABLE för att byta namn på den eller lägga till och ändra kolumner, och DROP TABLE för att ta bort den helt från databasen.

Avsnitten nedan visar hur du skapar tabeller, ändrar deras struktur och släpper tabeller i SQLite3 med exempel som täcker kommandona CREATE TABLE, ALTER TABLE och DROP TABLE.
SQLite Skapa tabell
syntax
Nedan är syntaxen för CREATE TABLE-satsen.
CREATE TABLE table_name( column1 datatype, column1 datatype );
För att skapa en tabell ska du använda frågan "CREATE TABLE" enligt följande:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Inom de två parenteserna efter tabellnamnet definierar du tabellernas kolumner, varje kolumn ska ha följande egenskaper:
- Ett namn, kolumnnamnet det ska vara unikt bland tabellens kolumner.
- En datatyp – kolumndatatypen.
- Valfria kolumnbegränsningar som vi kommer att förklara i senare avsnitt i den här handledningen.
SQLite SKAPA TABELL OM DEN INTE FINNS
När ett skript körs mer än en gång, misslyckas en vanlig CREATE TABLE-sats om tabellen redan finns och stoppas med ett fel. SQLite löser detta med den valfria IF NOT EXISTS-klausulen, som bara skapar tabellen när den saknas och inte gör någonting när den redan finns där.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Ovanstående utlöser aldrig felet "tabellen finns redan", vilket gör det säkert att ha den högst upp i ett installations- eller migreringsskript.
Samma idé fungerar i omvänd ordning när du tar bort en tabell. Att lägga till IF EXISTS till DROP TABLE undviker ett fel när tabellen redan är borta:
DROP TABLE IF EXISTS guru99;
Båda klausulerna är vanliga i automatiserade skript, eftersom de låter samma fil köras upprepade gånger utan manuell rensning mellan körningarna.
Släpp bord
För att släppa en tabell, använd kommandot ”DROP TABLE” följt av tabellnamnet enligt följande:
DROP TABLE guru99;
Ändra bord
Du kan använda kommandot ”ALTER TABLE” för att byta namn på en tabell enligt följande:
ALTER TABLE guru99 RENAME TO guru100;
För att verifiera att tabellens namn har ändrats kan du använda kommandot ".tables" för att visa listan över tabeller, och tabellnamnet bör nu ändras enligt följande:
Som du kan se har tabellnamnet ”guru99” ändrats till ”guru100” efter kommandot ”alter table”.
SQLite lägg till kolumner - Använd kommandot ALTER TABLE
Du kan också använda kommandot ”ALTER TABLE” för att lägga till kolumner:
ALTER TABLE guru100 ADD COLUMN Age INT;
Detta kommer att ändra tabellen "guru100" och lägga till en ny kolumn Ålder i den.
Om du inte såg någon utdata betyder det att kommandot lyckades och att kolumnen lades till. Ingen utdata innebär att markören placeras efter "sqlite>" utan text efter den så här:
För att verifiera att kolumnen har lagts till kan vi dock använda kommandot ".schema guru100". Detta ger dig tabelldefinitionen, och du bör se den nya kolumnen vi just har lagt till:
SQLite ÄNDRING AV TABELL: Byt namn på och ta bort en kolumn
Utöver att lägga till en kolumn, moderna versioner av SQLite kan också byta namn på en enskild kolumn och ta bort en. Att byta namn på en kolumn har varit möjligt sedan SQLite 3.25, och den uppdaterar namnet i tabelldefinitionen såväl som i varje index, trigger och vy som refererar till kolumnen.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
För att ta bort en kolumn, SQLite 3.35 och senare stöder en direkt DROP COLUMN-klausul:
ALTER TABLE guru100 DROP COLUMN Age;
En kolumn kan inte tas bort när den är en del av en primärnyckel, en unik begränsning eller ett index. På äldre SQLite versioner som saknar DROP COLUMN är den klassiska lösningen att skapa en ny tabell med de kolumner du vill ha, kopiera raderna, ta bort den gamla tabellen och slutligen byta namn på den nya.
Hur man kopierar en tabell i SQLite Använda CREATE TABLE AS SELECT
Ibland behöver man en kopia av en tabell, antingen som säkerhetskopia innan en riskabel ändring eller som utgångspunkt för en ny tabell. SQLite bygger detta i ett steg med CREATE TABLE AS SELECT, vilket skapar en ny tabell vars kolumner kommer från en fråga och fyller den med de rader som frågan returnerar.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Den nya tabellen "guru100_backup" tar emot samma kolumner och varje rad från "guru100". För att bara kopiera vissa rader, lägg till en WHERE-klausul i SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
En sak att komma ihåg är att CREATE TABLE AS SELECT kopierar kolumnnamn, typer och data, men inte primärnycklar, andra begränsningar eller index. Du måste lägga till dessa i den nya tabellen själv om kopian måste tillämpa samma regler som originalet.
SQLite Infoga värde i en tabell
För att infoga värden i en tabell använder vi kommandot ”INSERT INTO” enligt följande:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Du kan utelämna kolumnnamnen efter tabellnamnet och skriva det enligt följande:
INSERT INTO Tablename VALUES(value1, value2, ….);
I sådana fall, där du utelämnar kolumnnamnen från tabellerna, måste antalet infogade värden vara exakt samma antal som tabellens kolumner. Sedan kommer varje värde att infogas i korrespondenskolumnen. Till exempel för följande infogningssats:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Resultatet av detta uttalande blir följande:
- Värdet 1 kommer att infogas i kolumnen "id".
- Värdet 'Mike' kommer att infogas i kolumnen "Namn", och
- Värdet 25 kommer att infogas i kolumnen ”Ålder”.
INSERT … DEFAULT VALUES-sats
Du kan fylla i tabellen med standardvärdena för kolumnerna på en gång enligt följande:
INSERT INTO Tablename DEFAULT VALUES;
Om en kolumn varken tillåter ett nullvärde eller ett standardvärde får du ett felmeddelande om att "NOT NULL constraint failed" (Inte null-begränsningen misslyckades) för den kolumnen. Enligt följande:





