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

Vytvořte tabulku v SQLite

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.


  1. MySQL:Jak resetovat nebo změnit kořenové heslo MySQL?

  2. Jak získat čas z formátu DateTime v SQL?

  3. Jak zobrazit hodnoty Null při spouštění dotazů v psql (PostgreSQL)

  4. Importujte soubor CSV přímo do MySQL