|
|
|
Hlavní strana | Já | Rodina | Programování a tvorba | Galerie, fotografie, fotomontáže | MFF | Gympl | Vtipy | Odkazy | Files | O webu
|
| |
8.3.2004
Stránka vytvořena: 8. březen 2004 (14:40:00) |
Poslední změna: 15. březen 2004 (14:10:00) |
Stránku připravil: Matouš
|
Obsah: Poznámky k 8. 3. 2004 - CONSTRAINT |
Poznámky k 8. 3. 2004 - ALTER |
Standartní tabulky v Oracle |
Poznámky k 8. 3. 2004 - SELECT, Indexy |
|
|
| |
 |
Poznámky k 8. 3. 2004 - CONSTRAINT
|
Jsem línej vytahovat papír, tak to naboucham sem :)
CREATE TABLE osoba(
- rc VARCHAR(11)
- CONSTRAINT osoba_pk PRIMARY KEY
- CONSTRAINT osoba_chk_rc CHECK(
- TRANSLATE(RC, '0123456789', '9999999999') = '999999/999'
- OR
- TRANSLATE(RC,'0123456789', '9999999999') = '999999/9999'
- AND
- MOD(TO_NUMBER(substr(RC,1,6) || substr(RC,8),11) = 0
- ),
- jmeno VARCHAR2(30) NOT NULL,
- prijmeni VARCHAR2(30) NOT NULL,
- vek NUMBER(3)
- CONSTRAINT(osoba_chk_vek CHECK(vek BETWEEN 0 AND 150)),
- id_zam NUMBER(3)
- CONSTRAINT osoba_u_id_zam UNIQUE,
- id_sef NUMBER(3)
- CONSTRAINT osoba_fk_id sef REFERENCES osoba(id_zam),
);
Poznámky:
- U rodného čísla by to ještě chtělo zkontrolovat, aby prvních 6 čislic bylo reálným datumem.
- U id_zam musi byt omezení UNIQUE, protože jinak by na něj nešlo odkazovat referencí v id_sef
|
|
| |
 |
Poznámky k 8. 3. 2004 - ALTER
|
ALTER TABLE osoba
- ADD( ... klasická definice sloupců ... )
- přidání sloupců a omezení
- MODIFY( ... redefinice ...)
- lze pouze zvětšovat dané struktury, nikoliv zmenšovat
- ENABLE / DISABLE CONSTRAINT pojmenovane_omezeni
- můžeme tak zapínat / vypínat pojmenovaná omezení
- pokud jsou v tabulce data, které odporují omezení, které se snažíte příkazem uvést v činnost, pak příkaz selže
|
|
| |
 |
Standartní tabulky v Oracle
|
>> DESC table_name -- popíše tabulku
user_tables
- informace o tabulkách daného uživatele
user_tab_columns
- informace o všech sloupcích, ke kterým tabulkám patří, pořadové číslo sloupce atd.
- select column_name from user_tab_columns where table_name='OSOBA'
- Nazvy sloupců jsou velkými písmeny
user_constraints
- vypíše všechna uživatelem definovaná omezení, kde byla použita atd...
- Nepojmenovaná omezení dostanou nějakej systémovej název
user_indexes
- veškeré informace o indexech, kde jsou, jaké jsou
user_ind_columns
- Sloupečky obsažené v indexech
user_objects
- jména a typy objektů - indexy, clustery, funkce
- dá se použít na kladení hromadnejch dotazů... např vyničit všechny indexy, funkce s určitým názvem ...
|
|
| |
 |
Poznámky k 8. 3. 2004 - SELECT, Indexy
|
Dodatek k indexum
- indexy přes cizí klíče - automaticky se nedělaj, ale jsou velmi důležité, protože se pře cizí klíč hodně často vyhledává, ať už kvůli referenčních omezení, mazání atd.
- CREATE INDEX osoba_id_sef on osoba(id_sef);
Dodatky k příkazu SELECT
- START WITH, CONNECT BY - umoňují efektivní dotazy na stromové struktury
- START WITH podminka pro určení kořenů hierarchií
- každá řádka splňující tuto podmínku je prohlášena za kořen
- CONNECT BY jak se poznají potomci a nadřízené řádky
- klíčové slovo PRIOR pro nadřazenou řádku
- Každé řádce je přiřazena hodnota level ... úroveň zanoření od kořene
- SELECT id_zam, id_sef, jmeno || prijmeni as "zamestnanec", level
- FROM osoba
- START WITH id_sef is null
- CONNECT BY id_sef = PRIOR id_zam
|
|
|
|
|
|
u2b project, stránka spravována systémem MyOIS, webmaster Matouš "Mavo" Voldřich
|
 |
|
|