Table of Contents

Administrace Oracle se nachazi na strankach Oracle.

Obsah

<dl> <dt>Externi odkazy</dt> <dt>Tabukly</dt>

<dd>Promenne</dd>
<dd>Vytvareni tabulek</dd>
<dd>Popis tabulky</dd>
<dd>meneni tabulky</dd>
<dd>smazani tabulky</dd>

<dt>Zaznamy</dt>

<dd>vkladani</dd>
<dd>mazani</dd>
<dd>modifikace</dd>
<dd>vypis</dd>

<dt>PL/SQL</dt> </dl>

<a name=“odkazy|]]

Externi odkazy

Uvod na abc linuxu
Rychlejsi aplikace na db svete
Oracle Database Performance Tuning Guide

Oracle Database Backup and Recovery Basics
Oracle Database Backup and Recovery Advanced User's Guide
SQL*Plus User's Guide and Reference
Oracle Database Security Guide
Oracle Database Concepts
Oracle Database Performance Tuning Guide
Oracle 2 Day DBA
Oracle Database Utilities
Oracle Real Application Clusters Installation and Configuration

Oracle Database Upgrade Guide
Oracle Database Globalization Support Guide
Pekny strucny navod na Oracle vcetne RMANu
Obrazek - jak hezke mohou byt sql dotazy

Spusteni SQL skriptu v sqlplus

@/tmp/createtable.sql

<a name=“tabulky|]]

Tabulky

Datove typy pro tabulky

<dl>

<dd>CHAR(20) ... pole pro retezec dlouhy 20 znaku</dd>
<dd>VARCHAR(20) ... pole pro retezec dlouhy az 20 znaku</dd>
<dd>DATE ... datum a cas</dd>
<dd>INTEGER ... cele cislo</dd>
<dd>NUMBER ... Realne cislo, az 38 znaku dlouhe. NUMBER(6,2) je omezeni cisla na max delku xxxx.xx</dd>
<dd>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</dd>
<dd>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</dd>

</dl>

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

<a name=“zaznamy|]]

Zaznamy v tabulce

Vkladani

INSERT INTO zakaznici (id_zakaznika, jmeno, prijmeni) VALUES (1, 'Alois', 'Skrivanek');

mazani

DELETE FROM zakaznici WHERE id_zakaznika = 1; … smaze cely radek s polozkou id_zakaznika 1

modifikace

UPDATE zakaznici SET jmeno = 'Albert' WHERE id_zakaznika = 1; … modifikuje zaznam jmeno u radku s id_zakaznika 1

vypis

SELECT * FROM zakaznici;

<a name=“plsql|]]

PL/SQL

PL/SQL (Procedural Laguage) rozsiruje moznosti SQL o bloky, deklarace promennych, podminky, smycky, kursory a definice procedur a funkci

<tt>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 &lt; 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; </tt>