sql >> Database teknologi >  >> RDS >> SQLite

SQLite Opret tabel

Oversigt :i denne øvelse lærer du, hvordan du opretter nye tabeller ved hjælp af SQLite CREATE TABLE erklæring ved hjælp af forskellige muligheder.

Introduktion til SQLite CREATE TABLE erklæring

For at oprette en ny tabel i SQLite, bruger du CREATE TABLE sætning ved hjælp af følgende syntaks:

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)

I denne syntaks:

  • Først skal du angive navnet på den tabel, du vil oprette efter CREATE TABLE søgeord. Navnet på tabellen kan ikke starte med sqlite_ fordi det er reserveret til intern brug af SQLite.
  • For det andet skal du bruge HVIS IKKE FINDER mulighed for at oprette en ny tabel, hvis den ikke eksisterer. Forsøg på at oprette en tabel, der allerede eksisterer uden at bruge HVIS IKKE FINDER vil resultere i en fejl.
  • For det tredje skal du eventuelt angive skemanavn hvortil det nye bord hører. Skemaet kan være hoveddatabasen, temp database eller enhver vedhæftet database.
  • For det fjerde skal du angive kolonnelisten for tabellen. Hver kolonne har et navn, datatype og kolonnebegrænsningen. SQLite understøtter PRIMARY KEY , UNIQUE , IKKE NULL , og CHECK kolonne begrænsninger.
  • For det femte, angiv tabelbegrænsningerne såsom PRIMÆR NØGLE , UDLANDS NØGLE , UNIQUE , og CHECK begrænsninger.
  • Til sidst kan du eventuelt bruge WITHOUT ROWID mulighed. Som standard har en række i en tabel en implicit kolonne, som omtales som rowid , oid eller _rowid_ kolonne. rovid kolonne gemmer en 64-bit signeret heltalsnøgle, der unikt identificerer rækken inde i tabellen. Hvis du ikke ønsker, opretter SQLite rowid kolonne, angiver du WITHOUT ROWID mulighed. En tabel, der indeholder rowid kolonne er kendt som en rovid bord. Bemærk, at WITHOUT ROWID indstillingen er kun tilgængelig i SQLite 3.8.2 eller nyere.

Bemærk, at den primære nøgle i en tabel er en kolonne eller en gruppe af kolonner, der unikt identificerer hver række i tabellen.

SQLite OPRET TABEL eksempler

Antag, at du skal administrere kontakter ved hjælp af SQLite.

Hver kontakt har følgende oplysninger:

  • Fornavn
  • Efternavn
  • E-mail
  • Telefon

Kravet er, at mail og telefon skal være unikke. Derudover tilhører hver kontakt en eller flere grupper, og hver gruppe kan have nul eller mange kontakter.

Baseret på disse krav kom vi frem til tre tabeller:

  • kontaktpersonerne tabel, der gemmer kontaktoplysninger.
  • grupperne tabel, der gemmer gruppeoplysninger.
  • kontaktgrupperne tabel, der gemmer forholdet mellem kontakter og grupper.

Følgende databasediagram illustrerer tabeller:kontakter grupper og contact_groups.

Følgende erklæring opretter kontaktpersonerne tabel.

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)

Prøv det

contact_id er den primære nøgle til kontaktpersonerne tabel.

Fordi den primære nøgle består af én kolonne, kan du bruge kolonnebegrænsningen.

fornavn og efternavn kolonner har TEXT lagerklasse, og disse kolonner er IKKE NULL . Det betyder, at du skal angive værdier, når du indsætter eller opdaterer rækker i kontaktpersoner tabel.

E-mailen og telefonen er unikke, derfor bruger vi UNIQUE begrænsning for hver kolonne.

Følgende sætning opretter grupperne tabel:

CREATE TABLE groups (
   group_id INTEGER PRIMARY KEY,
   name TEXT NOT NULL
);Code language: SQL (Structured Query Language) (sql)

Prøv det

grupperne tabel er ret enkel med to kolonner:group_id og navn . group_id kolonne er den primære nøglekolonne.

Følgende erklæring opretter kontaktgrupper tabel:

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)

Prøv det

kontaktgrupperne tabel har en primær nøgle, der består af to kolonner:contact_id og group_id .

For at tilføje tabellens primærnøglebegrænsning bruger du denne syntaks:

PRIMARY KEY (contact_id, group_id)Code language: SQL (Structured Query Language) (sql)

Derudover er contact_id og group_id er fremmednøglerne. Derfor bruger du FOREIGN KEY begrænsning for at definere en fremmednøgle for hver kolonne.

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)

Bemærk, at vi vil diskutere i FOREIGN KEY begrænsning i detaljer i den efterfølgende tutorial.

I denne øvelse har du lært, hvordan du opretter en ny tabel med forskellige muligheder ved hjælp af SQLite CREATE TABLE erklæring.


  1. SQL Server-fejl - HRESULT E_FAIL er blevet returneret fra et kald til en COM-komponent

  2. MySQL - hvor mange rækker kan jeg indsætte i en enkelt INSERT-sætning?

  3. hvordan man tjekker alle begrænsninger på et bord i oracle

  4. Aktiver SQL Server Agent via SSMS