sql >> Database >  >> RDS >> SQLite

SQLite-tabel maken

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 TABLE trefwoorden. De naam van de tabel mag niet beginnen met sqlite_ omdat het is gereserveerd voor intern gebruik van SQLite.
  • Ten tweede, gebruik IF NOT EXISTS optie om een ​​nieuwe tabel te maken als deze niet bestaat. Poging om een ​​tabel te maken die al bestaat zonder de IF NOT EXISTS . te gebruiken optie resulteert in een fout.
  • Ten derde, specificeer optioneel de schema_name waartoe de nieuwe tabel behoort. Het schema kan de hoofddatabase zijn, temp database 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 , en CHECK kolombeperkingen.
  • Ten vijfde, specificeer de tabelbeperkingen zoals PRIMARY KEY , FOREIGN KEY , UNIQUE , en CHECK beperkingen.
  • Gebruik tot slot optioneel de WITHOUT ROWID optie. Standaard heeft een rij in een tabel een impliciete kolom, die de rowid wordt genoemd. , oid of _rowid_ kolom. De rowid kolom slaat een 64-bits ondertekende integersleutel op die de rij in de tabel op unieke wijze identificeert. Als u niet wilt dat SQLite de rowid kolom, specificeert u de WITHOUT ROWID optie. Een tabel die de rowid . bevat kolom staat bekend als een rowid tafel. Merk op dat de WITHOUT ROWID optie 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
  • E-mail
  • 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 contacts tabel met contactgegevens.
  • De groups tabel waarin groepsinformatie wordt opgeslagen.
  • De contact_groups tabel 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.


  1. SQL Server-authenticatie versus Windows-authenticatie:welke te gebruiken en wanneer?

  2. NULL vervangen door 0 in een SQL-serverquery

  3. Hoe u uw PostgreSQL-databases kunt beschermen tegen cyberaanvallen met SQL Firewall

  4. Grondbeginselen van tabeluitdrukkingen, deel 5 – CTE's, logische overwegingen