Poslední úpravy - Vyhledat:

SQL

O modelování

Power Designer

Oracle Data Modeler

Krátká videa DM

Zdroje...

edit SideBar

SQL /

CREATE TABLE

< Definiční příkazy | SQL postupně | ALTER TABLE >

Tímto příkazem založíme v databázi novou tabulku. Musíme ji pojmenovat, pojmenovat její sloupce a určit datové typy pro tyto sloupce. Seznam konkrétních možných datových typů naleznete v referenční přírůčce jazyka. Základní syntaxe:

  
      create table <jméno_tabulky> (<jméno_sloupce> <datový_typ>[,<jméno_sloupce> <datový_typ> ...]);

Základní syntaxe může být rozšířena o různá integritní omezení kladená na jednotlivé sloupce nabo jejich kombinaci. Omezení však mohou být definována i příkazem ALTER TABLE, jakož i přidávání nebo změna sloupců, takže v našem příkladu zvolíme určité rozdělení těchto definic.
Rozšířená syntaxe příkazu CREATE TABLE:

 
      create table <jméno_tabulky> (<jméno_sloupce> <datový_typ> [<omezení_tohoto_sloupce>]
                                   [,<jméno_sloupce> <datový_typ> [<omezení_tohoto_sloupce>] ...]
                                   [,<další_omezení> [,<další_omezení>...]] );

Možná omezení nepřesahující rámec tabulky:

  • PRIMARY KEY ... definice primárního klíče tabulky
  • UNIQUE ... definice unikátního klíče
  • NOT NULL ... sloupec nesmí být prázdný
  • DEFAULT <výraz> ... definice defaultní hodnoty pro sloupec

  • CHECK (<podmínky>) ... určení podmínek, které musí splňovat přípustné hodnoty či kombinace hodnot ve sloupcích jednoho řádku tabulky

Omezení referenční integrity uvedeme v kapitole ALTER TABLE.
Každé omezení může být pojmenováno klauzulí CONSTRAINT, syntaxe:

  
      constraint <jméno_omezení> <definice omezení>

Příklad: Založte tabulku OSOBA, definujte všechny její sloupce, a určete její primární klíč. Určete, že jméno a příjmení musí být v záznamech vyplněno. Určete, že ICQ i SKYPE musí být unikátní

        create table OSOBA (
        ID INT,
        JMEN VARCHAR2(50) not null,
        PRIJM VARCHAR2(50) not null,
        ULIC VARCHAR2(100),
        PSC CHAR(5),
        MEST VARCHAR2(100),
        ZEME VARCHAR2(100),
        EMAIL VARCHAR2(100),
        TEL1 VARCHAR2(13),
        TEL2 VARCHAR2(13),
        ICQ VARCHAR2(9),
        SKYPE VARCHAR2(150), 
        POZN CLOB,
        constraint PK_OSOBA primary key (ID),
        constraint AK_OSOBA_SKYPE unique (SKYPE),
        constraint AK_OSOBA_ICQ unique (ICQ)); 
Vložte několik řádků do této nové tabulky. Zkoušejte jak fungují datové typy a omezení. O výsledku se vždy přesvědčte příkazem SELECT. (Jak zařídit "automatické číslování" do pole ID můžete vidět v komplexním příkladu.)

Příklad: Založte tabulku KOMUNIKAT, definujte všechny její sloupce, a určete její primární klíč. vymezte možné hodnoty pro sloupec FORMA: o - osobní, t - telefonická, e - email, p - písemná. Definujte defaultní hodnotu pro sloupec DATE jako aktuání datum a čas.

        create table KOMUNIKAT (
        ID_OS INT,
        KDY DATE default sysdate,
        FORMA CHAR(1) check (FORMA in ('o','t','e','p')),
        OBSAH CLOB constraint OBSAH_NOT_NULL not null,
        ODKAZ VARCHAR2(100),
        constraint PK_KOMUNIKAT primary key (ID_OS,KDY));
Funkce sysdate v Oracle vrací aktuální datum a čas. Primární klíč této tabulky je složen z kombinace sloupců ID_OS a KDY (Vysvětlení pro tuto volbu je, že jedna osoba nemůže najednou komunikovat vícekrát. O tom, zda to tak skutečně je, by se asi dalo diskutovat, čtenáře prosíme o laskavou shovívavost. ) ODKAZ může obsahovat odkaz na další zdroj, např dokument, email. Celý design tohoto příkladu je zjednodušen pro účely výkladu jazyka SQL, není ukázkou ideálního návrhu.
Do této tabulky vkládejte data až po změnách z příkladů z kapitoly ALTER TABLE.

< Definiční příkazy | SQL postupně | ALTER TABLE >

Upravit - Historie - Tisk - Poslední úpravy - Vyhledat
Poslední úprava stránky: 28.03.2015, 19:16