Difference between revisions of "Tvorba tabulky"
m (→Změna tabulky) |
m (→Změna tabulky) |
||
Line 29: | Line 29: | ||
=====Změna tabulky===== | =====Změna tabulky===== | ||
− | Změnit strukturu tabulky lze příkazem ALTER TABLE. | + | Změnit strukturu tabulky lze příkazem ALTER TABLE. SQL umožňuje přidávat a rušit sloupce příkazem: |
+ | |||
+ | ALTER TABLE <nazev_tabulky> ADD/DROP (adress VARCHAR2(80) ); | ||
+ | |||
+ | |||
+ | Přidání sloupce pak může vypadat takto: | ||
+ | ALTER TABLE pracoviste ADD/DROP (adress VARCHAR2(80) ); | ||
+ | a jeho zrušení: | ||
+ | |||
+ | ALTER TABLE osoba DROP (adress); | ||
+ | |||
+ | Může se stát, že rušený sloupec je cizím klíčem v jiné tabulce. Potom by mohla být porušena referenční integrita dat, a proto je i zde možné použít jak restriktivní (implicitně daný), tak kaskádní přístup : | ||
+ | |||
+ | ALTER TABLE pracoviste DROP ( cislo_prac ) CASCADE; | ||
+ | |||
+ | Zrušení tabulky | ||
+ | |||
+ | Pro likvidaci celé tabulky (tj. data i struktura) použijeme příkaz DROP TABLE. | ||
+ | |||
+ | DROP TABLE osoby; | ||
+ | |||
+ | |||
V případě požadavku na změnu definovaného omezení použijeme nejprve jeho zrušení: | V případě požadavku na změnu definovaného omezení použijeme nejprve jeho zrušení: |
Revision as of 09:19, 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. SQL umožňuje přidávat a rušit sloupce příkazem:
ALTER TABLE <nazev_tabulky> ADD/DROP (adress VARCHAR2(80) );
Přidání sloupce pak může vypadat takto:
ALTER TABLE pracoviste ADD/DROP (adress VARCHAR2(80) );
a jeho zrušení:
ALTER TABLE osoba DROP (adress);
Může se stát, že rušený sloupec je cizím klíčem v jiné tabulce. Potom by mohla být porušena referenční integrita dat, a proto je i zde možné použít jak restriktivní (implicitně daný), tak kaskádní přístup :
ALTER TABLE pracoviste DROP ( cislo_prac ) CASCADE;
Zrušení tabulky
Pro likvidaci celé tabulky (tj. data i struktura) použijeme příkaz DROP TABLE.
DROP TABLE osoby;
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>;
a poté vytvoření nového
ALTER TABLE <nazev_tabulky> ADD CONSTRAINT <nazev_omezeni>;