Samenvatting :in deze tutorial leer je hoe je nieuwe tabellen maakt met SQLite CREATE TABLE verklaring met verschillende opties.
Inleiding tot SQLite CREATE TABLE verklaring
Om een nieuwe tabel in SQLite aan te maken, gebruik je CREATE TABLE statement met de volgende syntaxis:
CREATE TABLE [IF NOT EXISTS] [schema_name].table_name (
column_1 data_type PRIMARY KEY,
column_2 data_type NOT NULL,
column_3 data_type DEFAULT 0,
table_constraints
) [WITHOUT ROWID];Code language: SQL (Structured Query Language) (sql) In deze syntaxis:
- Geef eerst de naam op van de tabel die u wilt maken na de
CREATE TABLEtrefwoorden. De naam van de tabel mag niet beginnen metsqlite_omdat het is gereserveerd voor intern gebruik van SQLite. - Ten tweede, gebruik
IF NOT EXISTSoptie om een nieuwe tabel te maken als deze niet bestaat. Poging om een tabel te maken die al bestaat zonder deIF NOT EXISTS. te gebruiken optie resulteert in een fout. - Ten derde, specificeer optioneel de
schema_namewaartoe de nieuwe tabel behoort. Het schema kan de hoofddatabase zijn,tempdatabase of een bijgevoegde database. - Ten vierde, specificeer de kolomlijst van de tabel. Elke kolom heeft een naam, gegevenstype en de kolombeperking. SQLite ondersteunt
PRIMARY KEY,UNIQUE,NOT NULL, enCHECKkolombeperkingen. - Ten vijfde, specificeer de tabelbeperkingen zoals
PRIMARY KEY,FOREIGN KEY,UNIQUE, enCHECKbeperkingen. - Gebruik tot slot optioneel de
WITHOUT ROWIDoptie. Standaard heeft een rij in een tabel een impliciete kolom, die derowidwordt genoemd. ,oidof_rowid_kolom. Derowidkolom slaat een 64-bits ondertekende integersleutel op die de rij in de tabel op unieke wijze identificeert. Als u niet wilt dat SQLite derowidkolom, specificeert u deWITHOUT ROWIDoptie. Een tabel die derowid. bevat kolom staat bekend als eenrowidtafel. Merk op dat deWITHOUT ROWIDoptie is alleen beschikbaar in SQLite 3.8.2 of hoger.
Houd er rekening mee dat de primaire sleutel van een tabel een kolom of een groep kolommen is die elke rij in de tabel op unieke wijze identificeert.
SQLite CREATE TABLE voorbeelden
Stel dat u contacten moet beheren met SQLite.
Elk contact heeft de volgende informatie:
- Voornaam
- Achternaam
- Telefoon
De eis is dat de e-mail en telefoon uniek moeten zijn. Bovendien behoort elk contact tot een of meerdere groepen en kan elke groep nul of veel contacten hebben.
Op basis van deze vereisten kwamen we tot drie tabellen:
- De
contactstabel met contactgegevens. - De
groupstabel waarin groepsinformatie wordt opgeslagen. - De
contact_groupstabel die de relatie tussen contacten en groepen opslaat.
Het volgende databasediagram illustreert tabellen:contacts groups , en contact_groups.
De volgende instructie creëert de contacts tafel.
CREATE TABLE contacts (
contact_id INTEGER PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
phone TEXT NOT NULL UNIQUE
);Code language: SQL (Structured Query Language) (sql) Probeer het
De contact_id is de primaire sleutel van de contacts tafel.
Omdat de primaire sleutel uit één kolom bestaat, kunt u de kolombeperking gebruiken.
De first_name en last_name kolommen hebben TEXT opslagklasse en deze kolommen zijn NOT NULL . Het betekent dat u waarden moet opgeven wanneer u rijen invoegt of bijwerkt in de contacts tafel.
Het e-mailadres en telefoonnummer zijn uniek, daarom gebruiken we de UNIQUE beperking voor elke kolom.
De volgende instructie creëert de groups tafel:
CREATE TABLE groups (
group_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql) Probeer het
De groups tabel is vrij eenvoudig met twee kolommen:group_id en name . De group_id kolom is de primaire sleutelkolom.
De volgende instructie creëert contact_groups tafel:
CREATE TABLE contact_groups(
contact_id INTEGER,
group_id INTEGER,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTION,
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTION
);Code language: SQL (Structured Query Language) (sql) Probeer het
De contact_groups tabel heeft een primaire sleutel die uit twee kolommen bestaat:contact_id en group_id .
Om de primaire sleutelbeperking van de tabel toe te voegen, gebruikt u deze syntaxis:
PRIMARY KEY (contact_id, group_id)Code language: SQL (Structured Query Language) (sql)
Daarnaast is de contact_id en group_id zijn de buitenlandse sleutels. Daarom gebruikt u FOREIGN KEY beperking om een externe sleutel voor elke kolom te definiëren.
FOREIGN KEY (contact_id)
REFERENCES contacts (contact_id)
ON DELETE CASCADE
ON UPDATE NO ACTIONCode language: SQL (Structured Query Language) (sql) FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
ON UPDATE NO ACTIONCode language: SQL (Structured Query Language) (sql)
Merk op dat we zullen bespreken in de FOREIGN KEY beperking in detail in de volgende tutorial.
In deze zelfstudie hebt u geleerd hoe u een nieuwe tabel met verschillende opties kunt maken met behulp van SQLite CREATE TABLE verklaring.