Muj Webik MFF Přednáška Oracle 2004 8.3.2004
  
Hlavní strana   |      |   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 |

 
 
Na Obsah   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
 
 
Na Obsah   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
 
 
Na Obsah   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 ...
 
 
Na Obsah   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  
Vyhledávání
Mapa Serveru
Tiskni stránku
  
Prohledej Fotografie (3158 položek)
Prohledej Dokumenty (10 položek)
Prohledej Odkazy (62 položek)
Prohledej Události (59 položek)
Prohledej Adresy (1 položek)