SQLite Lag, endre, slipp tabell med eksempler
⚡ Smart oppsummering
SQLite Tabelladministrasjon er avhengig av tre datadefinisjonskommandoer: CREATE TABLE for å definere en tabell, ALTER TABLE for å gi den nytt navn eller legge til og endre kolonner, og DROP TABLE for å fjerne den fullstendig fra databasen.

Avsnittene nedenfor viser hvordan du oppretter tabeller, endrer strukturen deres og slipper tabeller i SQLite3 med eksempler, som dekker kommandoene CREATE TABLE, ALTER TABLE og DROP TABLE.
SQLite Opprett tabell
syntax
Nedenfor er syntaksen til CREATE TABLE-setningen.
CREATE TABLE table_name( column1 datatype, column1 datatype );
For å opprette en tabell, bør du bruke «CREATE TABLE»-spørringen som følger:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Innenfor de to parentesene etter tabellnavnet definerer du tabellenes kolonner, hver kolonne skal ha følgende egenskaper:
- Et navn, kolonnenavnet det skal være unikt blant tabellens kolonner.
- En datatype – kolonnedatatypen.
- Valgfrie kolonnebegrensninger som vi vil forklare i de senere avsnittene i denne veiledningen.
SQLite OPPRETT TABELL HVIS DEN IKKE FINNES
Når et skript kjøres mer enn én gang, mislykkes en vanlig CREATE TABLE-setning hvis tabellen allerede finnes og stopper med en feil. SQLite løser dette med den valgfrie IF NOT EXISTS-klausulen, som bare oppretter tabellen når den mangler og ikke gjør noe når den allerede er der.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Utsagnet ovenfor gir aldri feilen «tabellen finnes allerede», noe som gjør det trygt å oppbevare den øverst i et oppsett- eller migreringsskript.
Den samme ideen fungerer i motsatt rekkefølge når du fjerner en tabell. Å legge til IF EXISTS til DROP TABLE unngår en feil når tabellen allerede er borte:
DROP TABLE IF EXISTS guru99;
Begge klausulene er vanlige i automatiserte skript, fordi de lar den samme filen kjøre gjentatte ganger uten manuell opprydding mellom kjøringene.
Slippbord
For å slette en tabell, bruk kommandoen «DROP TABLE» etterfulgt av tabellnavnet som følger:
DROP TABLE guru99;
Endre bord
Du kan bruke kommandoen «ALTER TABLE» for å gi nytt navn til en tabell på følgende måte:
ALTER TABLE guru99 RENAME TO guru100;
For å bekrefte at tabellens navn er endret, kan du bruke kommandoen «.tables» for å vise listen over tabeller, og tabellnavnet skal nå endres som følger:
Som du kan se, er tabellnavnet «guru99» endret til «guru100» etter kommandoen «alter table».
SQLite legg til kolonner - Bruk ALTER TABLE-kommandoen
Du kan også bruke kommandoen «ALTER TABLE» for å legge til kolonner:
ALTER TABLE guru100 ADD COLUMN Age INT;
Dette vil endre tabellen «guru100» og legge til en ny kolonne for alder.
Hvis du ikke så noen utdata, betyr dette at setningen var vellykket, og kolonnen ble lagt til. Ingen utdata betyr at markøren vil bli plassert etter «sqlite>» uten tekst etter den, slik som dette:
For å bekrefte at kolonnen ble lagt til, kan vi imidlertid bruke kommandoen «.schema guru100». Dette vil gi deg tabelldefinisjonen, og du bør se den nye kolonnen vi nettopp har lagt til:
SQLite ENDRE TABELL: Gi nytt navn til og slett en kolonne
Utover å legge til en kolonne, moderne versjoner av SQLite kan også gi nytt navn til en enkelt kolonne og fjerne én. Å gi nytt navn til en kolonne har vært mulig siden SQLite 3.25, og den oppdaterer navnet i tabelldefinisjonen samt i alle indekser, utløsere og visninger som refererer til kolonnen.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
For å fjerne en kolonne, SQLite 3.35 og senere støtter en direkte DROP COLUMN-klausul:
ALTER TABLE guru100 DROP COLUMN Age;
En kolonne kan ikke slettes når den er en del av en primærnøkkel, en unik begrensning eller en indeks. På eldre SQLite versjoner som mangler SLIP KOLONNE, er den klassiske løsningen å opprette en ny tabell med kolonnene du ønsker, kopiere radene over, slette den gamle tabellen og til slutt gi den nye nytt navn.
Slik kopierer du en tabell i SQLite Bruk av CREATE TABLE AS SELECT
Noen ganger trenger du en kopi av en tabell, enten som en sikkerhetskopi før en risikabel endring eller som utgangspunkt for en ny tabell. SQLite bygger dette i ett trinn med CREATE TABLE AS SELECT, som oppretter en ny tabell der kolonnene kommer fra en spørring og fyller den med radene som spørringen returnerer.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Den nye tabellen «guru100_backup» mottar de samme kolonnene og hver rad fra «guru100». For å kopiere bare noen rader, legg til en WHERE-klausul i SELECT-en:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Et poeng å huske på er at CREATE TABLE AS SELECT kopierer kolonnenavnene, typene og dataene, men den kopierer ikke primærnøkler, andre begrensninger eller indekser. Du må legge disse til i den nye tabellen selv hvis kopien må håndheve de samme reglene som originalen.
SQLite Sett inn verdi i en tabell
For å sette inn verdier i en tabell bruker vi «INSERT INTO»-setningen som følger:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Du kan utelate kolonnenavnene etter tabellnavnet og skrive det som følger:
INSERT INTO Tablename VALUES(value1, value2, ….);
I slike tilfeller, der du utelater kolonnenavnene fra tabellene, må antallet innsatte verdier være det samme nøyaktige antallet av tabellens kolonner. Deretter vil hver verdi settes inn i korrespondansekolonnen. For eksempel for følgende innsettingssetning:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Resultatet av denne uttalelsen vil være som følger:
- Verdien 1 vil bli satt inn i kolonnen «id».
- Verdien «Mike» vil bli satt inn i kolonnen «Navn», og
- Verdien 25 vil bli satt inn i kolonnen «Alder».
INSERT ... DEFAULT VALUES-setning
Du kan fylle ut tabellen med standardverdiene for kolonnene samtidig som følger:
INSERT INTO Tablename DEFAULT VALUES;
Hvis en kolonne ikke tillater en nullverdi eller en standardverdi, vil du få en feilmelding om at «IKKE NULL-begrensning mislyktes» for den kolonnen. Som følger:





