sql >> Databáze >  >> RDS >> SQLite

Vytvořit tabulku SQLite

Shrnutí :v tomto tutoriálu se naučíte vytvářet nové tabulky pomocí SQLite CREATE TABLE výpis pomocí různých možností.

Úvod do SQLite CREATE TABLE prohlášení

Chcete-li vytvořit novou tabulku v SQLite, použijte CREATE TABLE pomocí následující syntaxe:

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)

V této syntaxi:

  • Nejprve zadejte název tabulky, kterou chcete vytvořit za CREATE TABLE klíčová slova. Název tabulky nemůže začínat sqlite_ protože je vyhrazen pro interní použití SQLite.
  • Zadruhé použijte IF NOT EXISTS možnost vytvořit novou tabulku, pokud neexistuje. Pokus o vytvoření tabulky, která již existuje, bez použití IF NOT EXISTS způsobí chybu.
  • Za třetí, volitelně zadejte schema_name ke kterému nová tabulka patří. Schéma může být hlavní databáze, temp databáze nebo jakékoli připojené databáze.
  • Za čtvrté určete seznam sloupců tabulky. Každý sloupec má název, datový typ a omezení sloupce. SQLite podporuje PRIMARY KEY , UNIQUE , NOT NULL a CHECK omezení sloupců.
  • Za páté, určete omezení tabulky, jako je PRIMARY KEY , FOREIGN KEY , UNIQUE a CHECK omezení.
  • Nakonec volitelně použijte WITHOUT ROWID volba. Ve výchozím nastavení má řádek v tabulce implicitní sloupec, který se nazývá rowid , oid nebo _rowid_ sloupec. rowid sloupec ukládá 64bitový klíč celého čísla se znaménkem, který jednoznačně identifikuje řádek v tabulce. Pokud nechcete, SQLite vytvoří rowid zadejte WITHOUT ROWID volba. Tabulka, která obsahuje rowid sloupec je známý jako rowid stůl. Všimněte si, že WITHOUT ROWID možnost je dostupná pouze v SQLite 3.8.2 nebo novějším.

Všimněte si, že primárním klíčem tabulky je sloupec nebo skupina sloupců, které jednoznačně identifikují každý řádek v tabulce.

SQLite CREATE TABLE příklady

Předpokládejme, že musíte spravovat kontakty pomocí SQLite.

Každý kontakt má následující informace:

  • Křestní jméno
  • Příjmení
  • E-mail
  • Telefon

Požadavek je, že e-mail a telefon musí být jedinečné. Každý kontakt navíc patří do jedné nebo mnoha skupin a každá skupina může mít nula nebo mnoho kontaktů.

Na základě těchto požadavků jsme přišli se třemi tabulkami:

  • contacts tabulka, která ukládá kontaktní informace.
  • groups tabulka, která ukládá informace o skupině.
  • contact_groups tabulka, která ukládá vztah mezi kontakty a skupinami.

Následující diagram databáze znázorňuje tabulky:contacts groups a contact_groups.

Následující příkaz vytvoří contacts tabulka.

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)

Zkuste to

contact_id je primární klíč contacts tabulka.

Protože se primární klíč skládá z jednoho sloupce, můžete použít omezení sloupce.

first_name a last_name sloupce mají TEXT storage class a tyto sloupce jsou NOT NULL . To znamená, že musíte zadat hodnoty, když vkládáte nebo aktualizujete řádky v contacts tabulka.

E-mail a telefon jsou jedinečné, proto používáme UNIQUE omezení pro každý sloupec.

Následující příkaz vytvoří groups tabulka:

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

Zkuste to

groups tabulka je poměrně jednoduchá se dvěma sloupci:group_id a name . group_id sloupec je sloupec primárního klíče.

Následující příkaz vytváří contact_groups tabulka:

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)

Zkuste to

contact_groups tabulka má primární klíč, který se skládá ze dvou sloupců:contact_id a group_id .

Chcete-li přidat omezení primárního klíče tabulky, použijte tuto syntaxi:

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

Kromě toho contact_id a group_id jsou cizí klíče. Proto používáte FOREIGN KEY omezení definovat cizí klíč pro každý sloupec.

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)

Všimněte si, že budeme diskutovat v FOREIGN KEY omezení podrobně v následujícím tutoriálu.

V tomto tutoriálu jste se naučili, jak vytvořit novou tabulku s různými možnostmi pomocí SQLite CREATE TABLE prohlášení.


  1. Připojte se k SQLite

  2. Připojování (posunutí) a odebrání z pole JSON v PostgreSQL 9.5+

  3. vložení obrázku do html e-mailu

  4. Nejjednodušší způsob, jak ověřit odkaz na e-mail PHP