SQL CREATE TABLE- Jak na založení tabulky v databázi

Založení tabulky v databázi patří mezi základní dovednosti. Při založení pomocí příkazu sql CREATE TABLE tabulky definujeme:

  • Název tabulky spolu s určením databáze a schématu
  • Seznam sloupců spolu s datovými typy, constraints a definováním toho jestli může být sloupec prázdný (NULL vs NOT NULL)

Tabulku můžeme založit v SQL dvěma základními způsoby:

  1. CREATE TABLE – v tomto případě explicitně definujeme všechny komponenty tabulky – datové typy, primární/cizí klíče, constraints, atd.
  2. SELECT INTO – není potřeba definovat komponenty tabulky. Ta je založena automaticky na základě seznamu sloupců v SELECT části skriptu. Při této variantě založení tabulky se nezaloží do nové tabulky constraints, které jsou definovány nad podkladovou tabulkou

Syntaxe SQL CREATE TABLE:

CREATE TABLE Databaze.Schema.Nova_Tabulka (
<Sloupec1> Datovy_typ NULL,
<Sloupec1> Datovy_typ NOT NULL,
...)

Příklad založení tabulky: 

Pochopení syntaxe sql CREATE TABLE je nejsnažší na příkladu. Založme si na zkoušku tabulku se zaměstnanci, která bude obsahovat údaje k pracovníkům, kde:

  • ID_Zamestnanec bude primární klič tabulky – jedinečný identifikátor číselného typu
  • Jmeno, Prijmeni, Pozice, Oddeleni – bude typu VARCHAR, hodnota musí být vždy vyplněna (NOT NULL)
  • FK_NadrizenyZamestnaneccizí klíč na šéfa daného zaměstnance – uděláme formou self seferenced foreign key – pole s nadřízeným bude reference na primární klíč ID_Zamestnanec. Pole může být NULL, nejvýše postavení zaměstnanci nemají nadřízeného
  • Zamestnan_Od, Zamestnan_Do – datumové pole. Zamestnan_Do může být NULL
  • Je_Zamestnan – Identifikátor jestli je zaměstanec v současné době zaměstnán, nabává hodnoty 1,0. Nemůže být prázdné
CREATE TABLE dbo.Zamestnanci (
   ID_Zamestnanec INTEGER IDENTITY(1,1) PRIMARY KEY,
   Jmeno VARCHAR(255) NOT NULL,
   Prijmeni VARCHAR(255) NOT NULL,
   Pozice VARCHAR (255) NOT NULL,
   FK_NadrizenyZamestnanec INT NULL,
   Oddeleni VARCHAR (255) NOT NULL,
   Plat INTEGER NOT NULL,
   Zamestnan_Od DATE NOT NULL,
   Zamestnan_Do DATE NULL,
   Je_Zamestnan INT NOT NULL
);
ALTER TABLE dbo.Zamestnanci
ADD CONSTRAINT FK_SelfReference FOREIGN KEY (FK_NadrizenyZamestnanec) REFERENCES dbo.Zamestnanci (ID_Zamestnanec);

Syntaxe SQL SELECT INTO:

SELECT <Sloupec1>, <Sloupec2>
INTO Databaze.Schema.Nova_Tabulka
FROM Databaze.Schema.Tabulka;

Reagovat na příspěvek