Difference between revisions of "Tvorba tabulky"

From Wikivyuka
Jump to: navigation, search
m
m
Line 1: Line 1:
 +
=====Nová tabulka=====
 
K založení nové tabulky v databázi slouží příkaz CREATE TABLE.
 
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 [http://docs.oracle.com/cd/B10501_01/server.920/a96540/sql_elements2a.htm 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íč).  
 
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 [http://docs.oracle.com/cd/B10501_01/server.920/a96540/sql_elements2a.htm 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íč).  
Line 23: Line 24:
 
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.  
 
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:
+
Další nepovinnou částí definice je pojmenování pomocí klauzule CONSTRAINT:
   CONSTRAINT <nazev_tabulky> <definice omezení>
+
   CONSTRAINT <nazev_omezeni> <definice omezeni>
 +
 
 +
=====Změna tabulky=====
 +
 
 +
Změnit strukturu tabulky lze příkazem ALTER TABLE.
 +
 
 +
V případě požadavku na změnu definovaného omezení použijeme nejprve jeho zrušení:
 +
 
 +
ALTER TABLE <nazev_tabulky> DROP CONSTRAINT <nazev_omezeni>;
 +
 
 +
      alter table <jméno_tabulky> add constraint <nazev_omezeni> <definice_omezeni>;
 +
 
 +
a poté vytvoření nového
 +
 
 +
ALTER TABLE <nazev_tabulky> ADD CONSTRAINT <nazev_omezeni>;
 +
 
 +
[http://gis.vsb.cz/wikivyuka/index.php/Prostorov%C3%A9_datab%C3%A1ze_-_cvi%C4%8Den%C3%AD Hlavní stránka předmětu]

Revision as of 09:15, 30 August 2014

Nová tabulka

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í klauzule CONSTRAINT:

 CONSTRAINT <nazev_omezeni> <definice omezeni>
Změna tabulky

Změnit strukturu tabulky lze příkazem ALTER TABLE.

V případě požadavku na změnu definovaného omezení použijeme nejprve jeho zrušení:

ALTER TABLE <nazev_tabulky> DROP CONSTRAINT <nazev_omezeni>;
      alter table <jméno_tabulky> add constraint <nazev_omezeni> <definice_omezeni>;
a poté vytvoření nového
ALTER TABLE <nazev_tabulky> ADD CONSTRAINT <nazev_omezeni>;

Hlavní stránka předmětu