Difference between revisions of "Tvorba tabulky"

From Wikivyuka
Jump to: navigation, search
m
m
Line 10: Line 10:
 
         |[<omezeni pro tabulku>]
 
         |[<omezeni pro tabulku>]
 
         [,...n]
 
         [,...n]
     )
+
     );
 
+
V [] jsou uvedeny nepovinné údaje - například [nazev_databaze.]. Za () je uvedena povinná část <nazev sloupce> <datovy typ> s možným opakováním až n-krát [,...n].
 
 
Základní syntaxe může být rozšířena o různá integritní omezení kladená na jednotlivé sloupce nebo 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 tabukly
 
    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.
+
Typy omezení, která při tvorbě tabulky používáme:
Každé omezení může být pojmenováno klauzulí CONSTRAINT, syntaxe:
 
  
 
+
PRIMARY KEY - definujeme primární klíč tabulky
      constraint <jméno_omezení> <definice omezení>V příkazu pojmenujeme tabulku (dle významu obashu dat, předchozí analýzy), její sloupce (atributy), ke kterým nadefinujeme datové typy.
+
UNIQUE - definujeme unikátní klíč
 +
NOT NULL - definujeme požadavek, kdy se ve sloupci nesmí zadat prázdná hodnota
 +
DEFAULT <výraz> - definujeme defaultní hodnotu/y pro sloupec (při vkládání nových záznamů SŘBD automaticky hodnotu vloží)
 +
CHECK (<podmínky>) - definujeme podmínky, kterými jsou omezujeme přípustné hodnoty či kombinace hodnot ve sloupcích jednoho záznamu
  
Syntaxe příkazu CREATE TABLE:
+
V případě, že omezení nejsou definována při tvorbě tabulky, je možné příkazem ALTER TABLE omezení přidat či změnit.
  
'''CREATE TABLE''' [nazev_databaze.]nazev_tabulky
+
Další nepovinnou částí definice je pojmenování pomocí klauzuel CONSTRAINT:
 
+
  CONSTRAINT <nazev_tabulky> <definice omezení>
V [] jsou uvedeny nepovinné údaje - například [nazev_databaze.]. Za () je uvedena povinná část <nazev sloupce> <datovy typ> s možným opakováním až n-krát [,...n].
 

Revision as of 09:08, 30 August 2014

K založení nové tabulky v databázi slouží příkaz CREATE TABLE. Obsahuje několik povinných údajů. Tabulku musíme 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říručce jazyka SQL pro konkrétní SŘBD. Pro Oracle jsou DT uvedeny v dokumentaci Oracle. Dále je možné ke každému sloupci uvést různá omezení - default hodnotu, možnost hodnoty NULL či referenci na jinou tabulku (cizí klíč). Syntaxe příkazu:

CREATE TABLE [nazev_databaze.]nazev_tabulky 
        (<nazev sloupce> <datovy typ> 
        [DEFAULT <konstantni vyraz>]
        [NULL | NOT NULL]
        [<omezeni pro sloupec>]
        |[<omezeni pro tabulku>]
        [,...n]
   );

V [] jsou uvedeny nepovinné údaje - například [nazev_databaze.]. Za () je uvedena povinná část <nazev sloupce> <datovy typ> s možným opakováním až n-krát [,...n].

Typy omezení, která při tvorbě tabulky používáme:

PRIMARY KEY - definujeme primární klíč tabulky
UNIQUE - definujeme unikátní klíč
NOT NULL - definujeme požadavek, kdy se ve sloupci nesmí zadat prázdná hodnota
DEFAULT <výraz> - definujeme defaultní hodnotu/y pro sloupec (při vkládání nových záznamů SŘBD automaticky hodnotu vloží)
CHECK (<podmínky>) - definujeme podmínky, kterými jsou omezujeme přípustné hodnoty či kombinace hodnot ve sloupcích jednoho záznamu 

V případě, že omezení nejsou definována při tvorbě tabulky, je možné příkazem ALTER TABLE omezení přidat či změnit.

Další nepovinnou částí definice je pojmenování pomocí klauzuel CONSTRAINT:

 CONSTRAINT <nazev_tabulky> <definice omezení>