Administrace Oracle se nachazi na strankach [[oracle.html|Oracle]].
====Obsah====
- Externi odkazy
- [[#tabulky|Tabukly]]
- Promenne
- Vytvareni tabulek
- Popis tabulky
- meneni tabulky
- smazani tabulky
- [[#zaznamy|Zaznamy]]
- vkladani
- mazani
- modifikace
- vypis
- [[#plsql|PL/SQL]]
CHAR(20) ... pole pro retezec dlouhy 20 znaku
VARCHAR(20) ... pole pro retezec dlouhy az 20 znaku
DATE ... datum a cas
INTEGER ... cele cislo
NUMBER ... Realne cislo, az 38 znaku dlouhe. NUMBER(6,2) je omezeni cisla na max delku xxxx.xx
BINARY_FLOAT ... (Oracle >= 10) binarni reprezentace realneho cisla - 32-bitu - uspornejsi a rychlejsi nez NUMBER. Hodnoty napr. 96.56f, BINARY_FLOAT_NAN, BINARY_FLOAT_INFINITY
BINARY_DOUBLE ... (Oracle >= 10) binarni reprezentace realneho cisla - 64-bitu - uspornejsi a rychlejsi nez NUMBER. Hodnoty napr. 96.56D, BINARY_DOUBLE_NAN, BINARY_DOUBLE_INFINITY
===Vytvareni tabulek===
CREATE TABLE zakaznici (\\
id_zakaznika INTEGER CONSTRAINT zakaznicky_pk PRIMARY KEY ... cislo pro id zakaznika - primarni klic (PRIMARY KEY - musi byt unikatni cislo, nesmi existovat stejne)\\
jmeno VARCHAR(10) NOT NULL ... neprazdny udaj pro jmeno - az 10 znaku\\
prijmeni VARCHAR(10) NOT NULL\\
narozeni DATE\\
telefon VARCHAR(20)\\
); ... vytvoreni tabulky\\
id_zakaznika INTEGER CONSTRAINT zakaznicky_pk PRIMARY KEY ... cislo pro id zakaznika - primarni klic (PRIMARY KEY - musi byt unikatni cislo, nesmi existovat stejne)\\
CREATE TABLE nakupy (\\
id_zakaznika INTEGER CONSTRAINT zakaznicky_pk PRIMARY KEY\\
datum DATE
zakaznik INTEGER CONSTRAINT zakanik_fk REFERENCES ZAKAZNICI(id_zakaznika) ... vzdaleny klic (froreign key) - odkaz na zaznam jine tabukly (na primarni klic id_zakaznika)\\
zaplaceno NUMBER(8,2)
);\\
===Popis tabulky===
DESCRIBE zakaznici; popise sloupce, promenne a podminky nenulovosti tabulky zakaznici\\
CREATE OR REPLACE PROCEDURE update_zakaznika (
p_id_zakaznika IN zakaznici.id_zakaznika%TYPE
p_faktor IN NUMBER
) AS pocet_nakupu INTEGER;
BEGIN
-- popis
SELECT COUNT(*) INTO pocet_nakupu FROM nakupy WHERE zakaznik=p_id_zakaznika;
IF pocet_nakupu < p_faktor THEN
UPDATE zakaznici SET popis = "malo nakupuje" WHERE id_zakaznika = p_id_zakaznika;
COMMIT
END IF;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END update_zakaznika;