SQLite Tabel met voorbeelden maken, wijzigen en neerzetten
⚡ Slimme samenvatting
SQLite Tabelbeheer is gebaseerd op drie datadefinitiecommando's: CREATE TABLE om een tabel te definiëren, ALTER TABLE om deze te hernoemen of kolommen toe te voegen en te wijzigen, en DROP TABLE om deze volledig uit de database te verwijderen.

De onderstaande secties laten zien hoe u tabellen kunt maken, hun structuur kunt wijzigen en tabellen kunt verwijderen. SQLite3 met voorbeelden, waarin de commando's CREATE TABLE, ALTER TABLE en DROP TABLE aan bod komen.
SQLite Maak een tabel
Syntaxis
Hieronder vindt u de syntaxis van de instructie CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Om een tabel te maken, gebruikt u de query "CREATE TABLE" als volgt:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Binnen de twee haakjes na de tabelnaam definieert u de kolommen van de tabellen. Elke kolom moet de volgende eigenschappen hebben:
- Een naam, de kolomnaam, deze moet uniek zijn onder de kolommen van de tabel.
- Een gegevenstype – het gegevenstype van de kolom.
- Optionele kolombeperkingen, zoals we in latere delen van deze handleiding zullen uitleggen.
SQLite MAAK TABEL ALS NIET BESTAAT
Als een script meer dan eens wordt uitgevoerd, mislukt een eenvoudige CREATE TABLE-instructie als de tabel al bestaat en stopt het met een foutmelding. SQLite Dit wordt opgelost met de optionele IF NOT EXISTS-clausule, die de tabel alleen aanmaakt als deze ontbreekt en niets doet als deze al bestaat.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
De bovenstaande instructie geeft nooit de foutmelding "tabel bestaat al", waardoor deze veilig bovenaan een installatie- of migratiescript kan worden geplaatst.
Hetzelfde principe werkt ook omgekeerd wanneer je een tabel verwijdert. Door IF EXISTS toe te voegen aan DROP TABLE voorkom je een foutmelding wanneer de tabel al verwijderd is:
DROP TABLE IF EXISTS guru99;
Beide clausules komen vaak voor in geautomatiseerde scripts, omdat ze ervoor zorgen dat hetzelfde bestand herhaaldelijk kan worden uitgevoerd zonder handmatige opschoning tussen de uitvoeringen.
Laat de tafel vallen
Om een tabel te verwijderen, gebruikt u de opdracht "DROP TABLE" gevolgd door de tabelnaam, zoals hieronder weergegeven:
DROP TABLE guru99;
Tabel wijzigen
Je kunt de opdracht "ALTER TABLE" gebruiken om een tabel als volgt te hernoemen:
ALTER TABLE guru99 RENAME TO guru100;
Om te controleren of de tabelnaam is gewijzigd, kunt u de opdracht ".tables" gebruiken om de lijst met tabellen weer te geven. De tabelnaam zou nu als volgt gewijzigd moeten zijn:
Zoals je ziet, wordt de tabelnaam "guru99" na het commando "alter table" gewijzigd in "guru100".
SQLite kolommen toevoegen - Met behulp van de opdracht ALTER TABLE
Je kunt ook de opdracht "ALTER TABLE" gebruiken om kolommen toe te voegen:
ALTER TABLE guru100 ADD COLUMN Age INT;
Dit zal de tabel "guru100" wijzigen en een nieuwe kolom "Leeftijd" eraan toevoegen.
Als je geen uitvoer ziet, betekent dit dat de instructie succesvol was en de kolom is toegevoegd. Geen uitvoer betekent dat de cursor na "sqlite>" staat zonder tekst erachter, zoals dit:
Om te controleren of de kolom is toegevoegd, kunnen we de opdracht “.schema guru100” gebruiken. Hiermee krijg je de tabeldefinitie te zien, en zou je de zojuist toegevoegde kolom moeten zien:
SQLite ALTER TABLE: Kolom hernoemen en verwijderen
Naast het toevoegen van een kolom, omvatten moderne versies van SQLite Je kunt ook een enkele kolom hernoemen en een kolom verwijderen. Het hernoemen van een kolom is beschikbaar sinds... SQLite 3.25, en het werkt de naam bij in de tabeldefinitie, evenals in elke index, trigger en weergave die naar de kolom verwijst.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Om een kolom te verwijderen, SQLite 3.35 en latere versies ondersteunen een directe DROP COLUMN-clausule:
ALTER TABLE guru100 DROP COLUMN Age;
Een kolom kan niet worden verwijderd als deze deel uitmaakt van een primaire sleutel, een unieke beperking of een index. Op oudere versies SQLite Voor versies die geen DROP COLUMN-functie hebben, is de klassieke oplossing om een nieuwe tabel te maken met de gewenste kolommen, de rijen te kopiëren, de oude tabel te verwijderen en tot slot de nieuwe tabel een andere naam te geven.
Hoe kopieer je een tabel in SQLite Gebruikmakend van CREATE TABLE AS SELECT
Soms heb je een kopie van een tabel nodig, bijvoorbeeld als back-up vóór een risicovolle wijziging of als uitgangspunt voor een nieuwe tabel. SQLite Dit wordt in één stap gedaan met CREATE TABLE AS SELECT, waarmee een nieuwe tabel wordt aangemaakt waarvan de kolommen afkomstig zijn uit een query, en die vervolgens wordt gevuld met de rijen die de query retourneert.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
De nieuwe tabel “guru100_backup” ontvangt dezelfde kolommen en alle rijen van “guru100”. Om slechts enkele rijen te kopiëren, voegt u een WHERE-clausule toe aan de SELECT-query:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Een belangrijk punt om te onthouden is dat CREATE TABLE AS SELECT de kolomnamen, gegevenstypen en data kopieert, maar niet de primaire sleutels, andere beperkingen of indexen. Deze moet u zelf aan de nieuwe tabel toevoegen als de kopie dezelfde regels moet hanteren als het origineel.
SQLite Voeg waarde in een tabel in
Om waarden in een tabel in te voegen, gebruiken we de "INSERT INTO"-instructie als volgt:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
U kunt de kolomnamen na de tabelnaam weglaten en deze als volgt schrijven:
INSERT INTO Tablename VALUES(value1, value2, ….);
In een dergelijk geval, waarbij u de kolomnamen uit de tabellen weglaat, moet het aantal ingevoegde waarden hetzelfde exacte aantal kolommen van de tabel zijn. Vervolgens wordt elke waarde ingevoegd in de correspondentiekolom. Bijvoorbeeld, voor de volgende insert-instructie:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Het resultaat van deze verklaring is als volgt:
- De waarde 1 wordt in de kolom "id" ingevoegd.
- De waarde 'Mike' wordt in de kolom 'Naam' ingevoegd, en
- De waarde 25 wordt in de kolom 'Leeftijd' ingevoerd.
INSERT … DEFAULT VALUES-instructie
U kunt de tabel als volgt in één keer vullen met de standaardwaarden voor de kolommen:
INSERT INTO Tablename DEFAULT VALUES;
Als een kolom geen null-waarde of standaardwaarde toestaat, krijgt u een foutmelding met de tekst "NOT NULL-beperking mislukt" voor die kolom. Bijvoorbeeld:





