IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 2 - Oracle krok za krokem: Vytvoření schématu a tabulky

V minulé lekci, Oracle krok za krokem: Úvod do Oracle a příprava, jsme se seznámili s pojmem databáze a připravili jsme si nástroje pro práci s databází Oracle.

V dnešní lekci si ukážeme, jak vytvořit schéma a v něm tabulku.

Schéma

Pod pojmem schéma se v Oracle databázi myslí soubor tabulek a jiných databázových objektů, které vlastní nějaký uživatel. V databázích obecně je to soubor tabulek a jiných databázových objektů, které dohromady tvoří databázi pro daný systém. V Oracle databázi proto netvoříme nové databáze, tak jak to bývá zvykem u jiných typů databází, ale vytváříme nová schémata.

Tvorba schématu

Schéma vytvoříme příkazem CREATE USER, to může být matoucí. O vztahu SCHEMA x USER, si povíme v jedné z dalších lekcí. Příkaz, který nám vytvoří schéma noveSchema, bude vypadat následovně:

ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;
CREATE USER noveSchema IDENTIFIED BY nove
DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;
GRANT ALL PRIVILEGES TO noveSchema;

Prvním řádkem povolíme vytvoření schématu bez nutnosti speciálního "c##" prefixu. Poté pomocí příkazu CREATE USER vytvoříme schéma noveSchema, kterému přidělíme heslo nove, a veškerá práva, ať nás v budoucnu nic neomezuje :)

Tyto SQL příkazy vykonáváme přes tzv. WORKSHEET:

Oracle

Zde zadáme všechny příkazy a pak celý skript pustíme přes klávesu F5 a nebo 2. tlačítkem, které je hned vedle tlačítka "play" (zelená šipka).

Teď, když jsme vytvořili schéma, můžeme se na něj napojit.

Připojení

V levém horním rohu klikneme na zelené tlačítko plus a připojení vyplníme následovně:

Oracle

Název spojení si libovolně nazveme, já jsem zvolil kombinaci názvu schématu a naší databáze noveSchema_IT_NETWORK_ORACLE_DB, do uživatelského jména zadáme noveSchema a námi zvolené heslo nove. Pole pro hostname, port a sid by měly být automaticky vyplněny. Pokud tak není, zadáme hostname localhost, port na kterém běží náš server (defaultně je to port 1521) a do sid zadáme xe. Po kliknutí na tlačítko "Connect" se nám otevře nové okno:

Oracle

Tabulka

Když už máme vytvořené nové databázové schéma, tak si ukážeme, jak vytvořit tabulku.

Rozklikneme námi vytvořené schéma a pravým kliknutím na záložku Tables vybereme možnost New Table:

Oracle

Otevře se nám editor tabulek:

Oracle

Vytvoříme si tabulku s názvem uzivatele. Tabulka bude mít 5 sloupců: uzivatele_id, jmeno, prijmeni, datum_narozeni, pocet_clanku. O každém uživateli v naší tabulce budeme mít záznam o jeho id, jméně, příjmení, datu narození a počtu článků, které napsal:

Oracle

Jako datové typy zvolíme:

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

Datový typ INT přijímá celá čísla v rozpětí -231 až 231. Při výběru datových typů, se vám nejspíše na začátku nabídne výběr nejčastěji používaných datových typů, mezi které patří i datový typ NUMBER. Tento datový typ ovšem akceptuje i desetinná čísla a to s přesností na 38 desetinných míst, proto zvolíme INT. Jméno a příjmení uživatele uložíme jako datový typ VARCHAR2, tento datový typ uchová krátký text. Musíme mu nastavit jeho maximální délku, v této tabulce zvolíme velikost na 60 znaků. Poslednímu sloupci přidělíme datový typ DATE, tedy datum.

Možná jste si již všimli, že existuje také datový typ VARCHAR. Rozdíl mezi VARCHAR a VARCHAR2 je ten, že datový typ VARCHAR2 nerozeznává hodnotu null a prázdný řetězec. V našem případě budou oba údaje jméno i příjmení povinné a zvolíme proto datový typ VARCHAR2.

U každého sloupce zaškrtneme checkbox Not null. Tím zajistíme, že všechny hodnoty naší tabulky bude uživatel muset vyplnit.

Než tabulku vytvoříme, musíme ještě zvolit její primární klíč. Primární klíč by měla mít každá tabulka. Jedná se o hodnotu, která je pro každý řádek v tabulce, tedy záznam (v našem případě uživatele), unikátní. Tuto hodnotu využíváme v databázích pro výběr záznamu z tabulky, zároveň můžeme díky tomu tabulky propojovat. V tabulce uzivatele zvolíme jako primární klíč hodnotu uzivatele_id, která bude pro každého uživatele unikátní. Primární klíč uděláme tak, že klikneme na prázdné políčko vedle názvu sloupce. Zobrazí se nám zlatý klíč (jako na obrázku výše). Primárním a cizím klíčům se budeme věnovat více jedné z dalších lekcí.

Všimněte si, že pod záložkou DDL (Data Definition Language) se skrývá SQL skript, který vytvoří námi definovanou tabulku. Skript vypadá následovně:

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 prvním řádku se nachází příkaz CREATE TABLE nazev_tabulky, jehož parametry specifikují obsah tabulky. Dále vidíme, že jsou specifikovány jednotlivé sloupce tabulky. Za každou definicí sloupce se také nachází tzv. CONSTRAINT, česky by se dalo přeložit jako omezení sloupce NOT NULL, které nepovoluje sloupci přijmout hodnotu null, neboli sloupec tabulky musí vždy nabývat nějaké neprázdné hodnoty. Kus kódu za definicemi sloupců:

CONSTRAINT UZIVATELE_PK PRIMARY KEY
  (
    UZIVATELE_ID
  )
  ENABLE

nám vytvoří další CONSTRAINT, v tomto případě se jedná o výše zmíněný primární klíč.

Dále si všimněme, že jednotlivé definice sloupců jsou odděleny čárkou ,, která v syntaxi jazyka SQL podobně jako v češtině znamená, že za příkazem následuje další. Na rozdíl od středníku ;, který značí konec SQL příkazu.

Po stisknutí tlačítka OK, se nám definovaná tabulka vytvoří. V našem schématu se zobrazí po rozbalení položky TABLES:

Oracle

Přepnutím do okna schématu se nám otevře možnost psát SQL příkazy ručně:

Oracle

Zkusme si tedy vytvořit tabulku znova, tentokrát za použití SQL dotazu.

Jako první provedeme příkaz:

DROP TABLE uzivatele;

Příkaz spustíme zelenou šipkou v menu, nebo klávesovou zkratkou CTRL + ENTER. Musíme mít však vybraný řádek s příkazem, jelikož klávesa CTRL+ENTER spustí pouze příkaz na námi vybraném řádku. Řádek vybereme kliknutím myší na řádek. Tento dotaz tedy odstraní námi vytvořenou tabulku, abychom ji mohli vytvořit znova.

Pod oknem pro příkazy se nám zobrazí výstup SQL skriptu, podle kterého můžeme poznat, že se nám příkaz správně provedl a nebo máme někde chybu.

Nyní zadáme dotaz, který nám tabulku vytvoří:

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ět příkaz spustíme a tabulka je na světě. Oracle databáze provádí příkazy v dotazu jeden po druhém od shora dolů, kdybychom tedy zadali pří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 stejný výsledek jako při spuštění příkazů zvlášť.

V příští lekci, Oracle krok za krokem: Vkládání a mazání dat v tabulce, si ukážeme vkládání a mazání záznamů.


 

Předchozí článek
Oracle krok za krokem: Úvod do Oracle a příprava
Všechny články v sekci
Oracle
Přeskočit článek
(nedoporučujeme)
Oracle krok za krokem: Vkládání a mazání dat v tabulce
Článek pro vás napsal Jan Hranický
Avatar
Uživatelské hodnocení:
41 hlasů
Aktivity