IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

2. diel - Oracle krok za krokom: Vytvorenie schémy a tabuľky

V minulej lekcii, Oracle krok za krokom: Úvod do Oracle a príprava , sme sa zoznámili s pojmom databázy a pripravili sme si nástroje pre prácu s databázou Oracle.

V dnešnej lekcii si ukážeme, ako vytvoriť schému a v ňom tabuľku.

Schéma

Pod pojmom schéma sa v Oracle databáze myslí súbor tabuliek a iných databázových objektov, ktoré vlastní nejaký používateľ. V databázach všeobecne je to súbor tabuliek a iných databázových objektov, ktoré dohromady tvoria databázu pre daný systém. V Oracle databázu preto nevytvárame novej databázy, tak ako to býva zvykom u iných typov databáz, ale vytvárame nové schémy.

Tvorba schémy

Schéma vytvoríme príkazom CREATE USER, to môže byť mätúce. O vzťahu SCHEMA x USER, si povieme v jednej z ďalších lekcií. Lokálne vytvorenie užívatelia musia obsahovať v mene prefix c## alebo C##, túto požiadavku možno obísť povolením nezdokumentovaného skriptu _ORACLE_SCRIPT. Aby sme zamedzili systémové zmene, povolíme tento skript iba na toto sedenie, anglicky session. Celý príkaz, ktorý nám vytvorí schému noveSchema vyzerá nasledovne:

ALTER SESSION SET "_ORACLE_SCRIPT"=true;

CREATE USER noveSchema identified by nove;
GRANT CONNECT TO noveSchema;
GRANT UNLIMITED TABLESPACE TO noveSchema;
GRANT CREATE TABLE TO noveSchema;

Prvý príkaz ALTER SESSION SET, povolí skripty pod ním. Ďalej pomocou príkazu CREATE USER vytvoríme schému noveSchema, ktorému pridelíme heslo nove. Ďalej udelíme práva pre pripojenie, tvorbu neobmedzeného množstva tabuliek a samotné právo pre tvorbu tabuliek.

Tieto SQL príkazy vykonávame cez tzv. Worksheet:

Oracle

Tu zadáme všetky príkazy a potom celý skript pustíme cez klávesu F5 a alebo 2. tlačidlom, ktoré je hneď vedľa tlačidla "play" (zelená šípka).

Teraz, keď sme vytvorili schému, môžeme sa na neho napojiť.

Pripojenie

V ľavom hornom rohu klikneme na zelené tlačidlo plus a pripojenie vyplníme nasledovne:

Oracle

Názov spojenia si ľubovoľne nazveme, ja som zvolil kombináciu názvu schémy a našej databázy noveSchema_IT_NETWORK_ORACLE_DB, do používateľského mena zadáme noveSchema a nami zvolené heslo nove. Pole pre hostname, port a sid by mali byť automaticky vyplnené. Ak tak nie je, zadáme hostname localhost, port na ktorom beží náš server (defaultne je to port 1521) a do sid zadáme xe. Po kliknutí na tlačidlo "Connect" sa nám otvorí nové okno:

Oracle

Tabuľka

Keď už máme vytvorené nové databázové schéma, tak si ukážeme, ako vytvoriť tabuľku.

Rozkliknite nami vytvorené schému a pravým kliknutím na záložku Tables vyberieme možnosť New Table:

Oracle

Otvorí sa nám editor tabuliek:

Oracle

Vytvoríme si tabuľku s názvom uzivatele. Tabuľka bude mať 5 stĺpcov: uzivatele_id, jmeno, prijmeni, datum_narozeni, pocet_clanku. O každom užívateľovi v našej tabuľke budeme mať záznam o jeho id, mene, priezvisko, dátum narodenia a počtu článkov, ktoré napísal:

Oracle

Ako dátové typy zvolíme:

  • uzivatele_id - INT
  • jmeno - VARCHAR2 (60)
  • prijmeni - VARCHAR2 (60)
  • datum_narozeni - DATE
  • pocet_clanku - INT

Dátový typ INT prijíma celé čísla v rozpätí -2 31 až 2 31. Pri výbere dátových typov, sa vám pravdepodobne na začiatku ponúkne výber najčastejšie používaných dátových typov, medzi ktoré patrí aj dátový typ NUMBER. Tento dátový typ však akceptuje aj desatinné čísla a to s presnosťou na 38 desatinných miest, preto zvolíme INT. Meno a priezvisko užívateľa uložíme ako dátový typ VARCHAR2, tento typ údajov uchová krátky text. Musíme mu nastaviť jeho maximálnu dĺžku, v tejto tabuľke zvolíme veľkosť na 60 znakov. Poslednému stĺpci pridelíme dátový typ DATE, teda dátum.

Možno ste si už všimli, že existuje aj dátový typ VARCHAR. Rozdiel medzi VARCHAR a VARCHAR2 je ten, že dátový typ VARCHAR2 nerozoznáva hodnotu null a prázdny reťazec. V našom prípade budú oba údaje meno aj priezvisko povinné a zvolíme preto dátový typ VARCHAR2.

Pri každom stĺpca zaškrtneme checkbox Not null. Tým zabezpečíme, že všetky hodnoty našej tabuľky bude užívateľ musieť vyplniť.

Než tabuľku vytvoríme, musíme ešte zvoliť jej primárny kľúč. Primárny kľúč by mala mať každá tabuľka. Ide o hodnotu, ktorá je pre každý riadok v tabuľke, teda záznam (v našom prípade používateľa), unikátne. Túto hodnotu využívame v databázach pre výber záznamu z tabuľky, zároveň môžeme vďaka tomu tabuľky prepájať. V tabuľke uzivatele zvolíme ako primárny kľúč hodnotu uzivatele_id, ktorá bude pre každého užívateľa unikátna. Primárny kľúč urobíme tak, že klikneme na prázdne políčko vedľa názvu stĺpca. Zobrazí sa nám zlatý kľúč (ako na obrázku vyššie). Primárnym a cudzím kľúčom sa budeme venovať viac jednej z ďalších lekcií.

Všimnite si, že pod záložkou DDL (D ata D efinition L Anguage) sa skrýva SQL skript, ktorý vytvorí nami definovanú tabuľku. Skript vyzerá nasledovne:

CREATE TABLE UZIVATELE
(
  UZIVATELE_ID INT NOT NULL
, JMENO VARCHAR2(60) NOT NULL
, PRIJMENI VARCHAR2(60) NOT NULL
, DATUM_NAROZENI DATE NOT NULL
, POCET_CLANKU INT NOT NULL
, CONSTRAINT UZIVATELE_PK PRIMARY KEY
  (
    UZIVATELE_ID
  )
  ENABLE
);

Na prvom riadku sa nachádza príkaz CREATE TABLE nazev_tabulky, ktorého parametre špecifikujú obsah tabuľky. Ďalej vidíme, že sú špecifikované jednotlivé stĺpce tabuľky. Za každú definíciou stĺpca sa tiež nachádza tzv. CONSTRAINT, česky by sa dalo preložiť ako obmedzenie stĺpca NOT NULL, ktoré nepovoľuje stĺpci prijať hodnotu null, čiže stĺpec tabuľky musí vždy nadobúdať nejaké neprázdne hodnoty. Kus kódu za definíciami stĺpcov:

CONSTRAINT UZIVATELE_PK PRIMARY KEY
  (
    UZIVATELE_ID
  )
  ENABLE

nám vytvorí ďalšie CONSTRAINT, v tomto prípade sa jedná o vyššie spomínaný primárny kľúč.

Ďalej si všimnime, že jednotlivé definície stĺpcov sú oddelené čiarkou ,, ktorá v syntaxi jazyka SQL podobne ako v slovenčine znamená, že za príkazom nasleduje ďalšie. Na rozdiel od bodkočiarky ;, Ktorý značí koniec SQL príkazu.

Po stlačení tlačidla OK, sa nám definovaná tabuľka vytvorí. V našom schéme sa zobrazia po rozbalení položky TABLES:

Oracle

Prepnutím do okna schémy sa nám otvorí možnosť písať SQL príkazy ručne:

Oracle

Skúsme si teda vytvoriť tabuľku znova, tentoraz za použitia SQL dotazu.

Ako prvý vykonáme príkaz:

DROP TABLE uzivatele;

Príkaz spustíme zelenou šípkou v menu, alebo klávesovou skratkou CTRL + ENTER. Musíme mať však vybraný riadok s príkazom, pretože klávesa CTRL + ENTER spustí iba príkaz na nami vybranom riadku. Riadok vyberieme kliknutím myšou na riadok. Tento dotaz teda odstráni nami vytvorenú tabuľku, aby sme ju mohli vytvoriť znova.

Pod oknom pre príkazy sa nám zobrazí výstup SQL skriptu, podľa ktorého môžeme poznať, že sa nám príkaz správne vykonal a alebo máme niekde chybu.

Teraz zadáme dotaz, ktorý nám tabuľku vytvorí:

CREATE TABLE UZIVATELE
(
  UZIVATELE_ID INT NOT NULL
, JMENO VARCHAR2(60) NOT NULL
, PRIJMENI VARCHAR2(60) NOT NULL
, DATUM_NAROZENI DATE NOT NULL
, POCET_CLANKU INT NOT NULL
, CONSTRAINT UZIVATELE_PK PRIMARY KEY
  (
    UZIVATELE_ID
  )
  ENABLE
);

Opäť príkaz spustíme a tabuľka je na svete. Oracle databázy vykonáva príkazy v dotaze jeden po druhom od zhora nadol, keby sme teda zadali príkazy:

DROP TABLE uzivatele;

CREATE TABLE UZIVATELE
(
  UZIVATELE_ID INT NOT NULL
, JMENO VARCHAR2(60) NOT NULL
, PRIJMENI VARCHAR2(60) NOT NULL
, DATUM_NAROZENI DATE NOT NULL
, POCET_CLANKU INT NOT NULL
, CONSTRAINT UZIVATELE_PK PRIMARY KEY
  (
    UZIVATELE_ID
  )
  ENABLE
);

Dostaneme rovnaký výsledok ako pri spustení príkazov zvlášť.

V budúcej lekcii, Oracle krok za krokom: Vkladanie a mazanie dát v tabuľke , si ukážeme vkladanie a mazanie záznamov.


 

Predchádzajúci článok
Oracle krok za krokom: Úvod do Oracle a príprava
Všetky články v sekcii
Oracle
Preskočiť článok
(neodporúčame)
Oracle krok za krokom: Vkladanie a mazanie dát v tabuľke
Článok pre vás napísal Jan Hranický
Avatar
Užívateľské hodnotenie:
2 hlasov
Aktivity