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 TABLEklíčová slova. Název tabulky nemůže začínatsqlite_protože je vyhrazen pro interní použití SQLite. - Zadruhé použijte
IF NOT EXISTSmožnost vytvořit novou tabulku, pokud neexistuje. Pokus o vytvoření tabulky, která již existuje, bez použitíIF NOT EXISTSzpůsobí chybu. - Za třetí, volitelně zadejte
schema_nameke kterému nová tabulka patří. Schéma může být hlavní databáze,tempdatabá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 NULLaCHECKomezení sloupců. - Za páté, určete omezení tabulky, jako je
PRIMARY KEY,FOREIGN KEY,UNIQUEaCHECKomezení. - Nakonec volitelně použijte
WITHOUT ROWIDvolba. Ve výchozím nastavení má řádek v tabulce implicitní sloupec, který se nazývárowid,oidnebo_rowid_sloupec.rowidsloupec ukládá 64bitový klíč celého čísla se znaménkem, který jednoznačně identifikuje řádek v tabulce. Pokud nechcete, SQLite vytvořírowidzadejteWITHOUT ROWIDvolba. Tabulka, která obsahujerowidsloupec je známý jakorowidstůl. Všimněte si, žeWITHOUT ROWIDmož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í
- 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:
contactstabulka, která ukládá kontaktní informace.groupstabulka, která ukládá informace o skupině.contact_groupstabulka, 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í.