Chcete-li vytvořit tabulku v SQLite, použijte CREATE TABLE
prohlášení.
Tento příkaz přijímá název tabulky, názvy sloupců a jejich definice, stejně jako některé další možnosti.
Příklad
Zde je základní příklad.
CREATE TABLE Products(
ProductId INTEGER PRIMARY KEY AUTOINCREMENT,
ProductName TEXT NOT NULL,
Price NUMERIC
);
Takže v tomto případě Products
je název tabulky a obsahuje tři sloupce; ProductId
, ProductName
a Price
.
V tomto příkladu jsem přidal datový typ každého sloupce a také některá omezení, ale všechna jsou volitelná.
Upřesněte schéma
Název tabulky může (volitelně) mít předponu s názvem schématu. Při tom musí být název schématu buď main
, temp
nebo název připojené databáze.
Takže bych místo toho mohl udělat toto:
CREATE TABLE Store.Products(
ProductId,
ProductName,
Price
);
V tomto případě Store
je název připojené databáze, ve které chci tabulku vytvořit.
Za názvem sloupce může následovat datový typ a jakákoli omezení.
Typ dat je volitelný
Ano, čtete správně – datový typ je ve skutečnosti volitelný.
SQLite používá dynamické typování, takže datový typ hodnoty je spojen se samotnou hodnotou, nikoli s jejím kontejnerem (sloupcem). To je na rozdíl od většiny ostatních databázových systémů SQL, kde musíte při vytváření sloupce zadat typ dat.
Takže bych místo toho mohl udělat toto:
CREATE TABLE Products(
ProductId,
ProductName,
Price
);
Omezení a další možnosti
Máte možnost zadat jakákoli omezení nebo jiné možnosti, které chcete použít na každý sloupec. Patří mezi ně následující:
DEFAULT
doložka. To určuje výchozí hodnotu nebo výraz pro každý sloupec v tabulce.- Položka
COLLATE
klauzule k určení názvu porovnávací posloupnosti, která se má použít jako výchozí porovnávací posloupnost pro sloupec. Výchozí hodnota je BINARY. PRIMARY KEY
doložka. Volitelně můžete určit, že sloupec je primární klíč. V SQLite jsou podporovány jak jednosloupcové, tak složené (více sloupcové) primární klíče.- SQLite také podporuje omezení UNIQUE, NOT NULL, CHECK a FOREIGN KEY.
- Vygenerované omezení sloupce (nazývané také vypočítaný sloupec). Jedná se o sloupce, jejichž hodnoty jsou funkcí jiných sloupců ve stejném řádku.
- Zda je tabulka
WITHOUT ROWID
stůl. Toto je technika optimalizace výkonu, která vynechává sloupec „rowid“, což je speciální sloupec, který SQLite standardně používá. Další informace o této technice naleznete v dokumentaci SQLite.
Dočasné tabulky
Pomocí TEMP
můžete určit, že tabulka je dočasnou tabulkou nebo TEMPORARY
klíčové slovo.
Používáte-li jedno z těchto klíčových slov, musíte je vložit mezi CREATE
a TABLE
.
Zde je příklad:
CREATE TEMP TABLE Products(
ProductId,
ProductName,
Price
);
Můžete také přidat temp
schéma, pokud chcete.
Další příklady vytváření dočasných tabulek v SQLite naleznete v části Jak vytvořit dočasnou tabulku.
Vytvořte tabulku z jiné tabulky
Můžete také použít CREATE TABLE ... AS SELECT
příkaz k vytvoření nové tabulky založené na jiné tabulce. Když to uděláte, nová tabulka se naplní daty z SELECT
příkaz (který vybírá data z jiné tabulky nebo tabulek).
Zde je základní příklad:
CREATE TABLE Store.Products2 AS
SELECT * FROM Store.Products;
Tento příklad vytvoří novou tabulku s názvem Products2
a naplní jej všemi daty z Products
stůl.
Všechny názvy sloupců jsou stejné jako v původní tabulce.
Je důležité si uvědomit, že tabulky vytvořené tímto způsobem nemají žádný PRIMÁRNÍ KLÍČ ani žádná omezení jakéhokoli druhu. Výchozí hodnota každého sloupce je také NULL
. Výchozí posloupnost řazení pro každý sloupec nové tabulky je také BINARY.