Databázové systémy I Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013
Náplň cvičení Připojení k databázovému serveru Úvod do DDL a DML Databázové systémy I - cvičení č. 5 2
3 Přístupové údaje k DB serveru Jméno serveru: fei-sql1.upceucebny.cz SID: ee11 Username: vaše_doménové_jméno (např. ST12345) Password: ( při prvním přihlášení vaše_doménové_jméno malými písmeny) Port: 1521 Změna hesla: ALTER USER ST12345 IDENTIFIED BY nove_heslo
Databázové systémy I - cvičení č. 5 4 Připojení mimo síť UPCE 1.Přihlaste se na 2.Pro připojení k databázovému systému použijte aplikace Oracle SQL Developer
Databázové systémy I - cvičení č. 5 5 SQL Developer Nástroj pro vizuální práci s databází Možnosti: o Tvorba databázových objektů (pomocí průvodců). o Přímé vkládání a editace dat v tabulkách. o Kompilace funkcí a procedur. o Zadávání jednotlivých příkazu i celých SQL skriptů. o Kontrola a zvýraznění syntaxe, automatické doplňovaní příkazů o Grafické zobrazení výsledků. o Komplexní správa všech DB objektů, přidělovaní práv, … Alternativy k SQL Developeru: Toad for Oracle OraDeveloper Studio
Databázové systémy I - cvičení č. 5 6 Nastavení připojení v SQL Developeru
Databázové systémy I - cvičení č. 5 7 SQL Developer -freeware -dobrý nástroj -pozor na aktualizace dat (neprovádí se automaticky) -přehledná struktura objektů -práce i přes menu (netřeba zadávat textové příkazy pro některé operace) -k provozu vyžaduje Javu
Databázové systémy I - cvičení č. 5 8 SQL Developer - přehled
SQL Developer - SQL worksheet Databázové systémy I - cvičení č. 5 9
Časté problémy V SQL Developeru se nezobrazil seznam dostupných připojení. – Menu View -> Connections Nezobrazil se žádný SQL Worksheet (pracovní prostor) – Pravý klik na otevřené připojeni -> Open SQL Worksheet nebo – ikona v hlavní nástrojové liště. Databázové systémy I - cvičení č. 5 10
Databázové systémy I - cvičení č Časté problémy Z hlediska transakčního zpracování dat je vhodné provedené změny v databázi potvrdit příkazem COMMIT a to i v prostředí SQL Developeru (buď stiskem tlačítka COMMIT nebo zapsáním příkazu COMMIT) jinak jde totiž o rozpracovanou transakci, která -zabírá systémové prostředky -je možné ji vrátit zpět příkazem ROLLBACK -pokud nebude ukončena, může dojít i k automatickému návratu zpět (tedy ztrátě změn provedených od minulého příkazu COMMIT) například při nekorektním ukončení připojení k databázovému serveru -v SQL develeperu mohou být k potvrzení či odvolaní transakce tlačítka daného SQL workshhetu:
Databázové systémy I - cvičení č Vzorová schémata -Na databázovém serveru je několik vzorových schémat, s nimiž budeme během semestru pracovat, tato schémata mají název typu „A_problematika“, např. A_CLOVEK -V těchto schématech je tabulka A_POPIS, která obsahuje -ve sloupci TEXT popis problematiky, která je v daném schématu řešena -ve sloupci ERD diagram ve formátu jpg souboru, který je možné zobrazit, případně i uložit
Cvičení 5 - samostatné Pokuste se navázat připojení k databázi Změňte si přístupové heslo heslo – ALTER USER STxxxxx IDENTIFIED BY heslo ; Vyzkoušejte připojení s novým heslem Spusťte testovací dotaz – SELECT * FROM A_CLOVEK.lide; Databázové systémy I - cvičení č. 5 13
Cvičení 5 - samostatné V SQL developeru vyzkoušejte následující příkazy jazyka SQL: -- vytvořte si tabulku HODNOCENI sloužící pro uchovávání číselných hodnot známek a jím odpovídajících slovních hodnocení CREATE TABLE HODNOCENI (znamka NUMBER, slovne VARCHAR2(40) ); -- vložte do tabulky první řádek INSERT INTO HODNOCENI (znamka, slovne) VALUES (1, 'Výborně'); -- potvrzení uložení příkazem COMMIT nebo stiskem tlačítka v SQL Developeru COMMIT; -- zjistěte obsah tabulky HODNOCENI SELECT * FROM HODNOCENI; -- alternativně vyzkoušejte SELECT znamka, slovne FROM HODNOCENI; SELECT slovne FROM HODNOCENI; Databázové systémy I - cvičení č. 5 14
Cvičení 5 - samostatné -- doplňte do tabulky další řádky (uveďte správné údaje) INSERT INTO HODNOCENI (znamka, slovne) VALUES ( 1.5, ' … '); INSERT INTO HODNOCENI (znamka, slovne) VALUES ( 2, ' … '); … -- potvrzení uložení všech změn příkazem nebo stiskem tlačítka v SQL Developeru COMMIT; -- zjistěte obsah tabulky HODNOCENI SELECT * FROM HODNOCENI; -- pokuste se editovat tabulku přímo v zobrazení dat tabulky v SQL Developeru, nezapomeňte na potvrzení změn tlačítkem COMMIT -- prozkoumejte stromové zobrazeni v levém panelu Connections (rozklikněte Tables a tabulku HODNOCENI) -- odstraňte tabulku HODNOCENI DROP TABLE HODNOCENI; Databázové systémy I - cvičení č. 5 15
Jak pochopit zápisy syntaxí parametr, za který se dosazuje konkrétní hodnota {A|B|C}povinná volba jedné z uvedených možností |oddělení variant [ ]nepovinná část …možnost opakování ’označení konstant typu řetězec znaků Databázové systémy I - cvičení č. 5 16
Syntaxe příkazu CREATE TABLE CREATE TABLE ( [, = [, … ] ]) = { [ ] | } = [CONSTRAINT ] { [NOT] NULL | [NOT NULL] UNIQUE | [NOT NULL] PRIMARY KEY | REFERENCES [( )] | CHECK ( )} Databázové systémy I - cvičení č. 5 17
Syntaxe příkazu CREATE TABLE /2 = [CONSTRAINT ] { UNIQUE ( ) | PRIMARY KEY ( ) | CHECK ( ) | FOREIGN KEY ( ) REFERENCES [( )] | } Databázové systémy I - cvičení č. 5 18
CREATE TABLE Vytvoří tabulku dle popsané struktury. Příklad: CREATE TABLE dodavatele ( dodavatel_id number(4), nazev varchar2(100), zastoupeni varchar2(100) ); Strukturu tabulky lze zobrazit příkazem DESC Databázové systémy I - cvičení č. 5 19
CREATE TABLE Omezující podmínky pro sloupce: NOT NULL – hodnota ve sloupci nesmí být NULL UNIQUE – jedinečnost = zakázány duplicity PRIMARY KEY – primární klíč (zakázány duplicity a NULL hodnoty) FOREIGN KEY – cizí klíč (odkazuje na sloupec jiné tabulky – podpora pro udržení integrity dat) CHECK – podmínka pro hodnoty ve sloupci (např. ID INTEGER CHECK ID BETWEEN 0 AND 100) DEFAULT – předdefinovaná hodnota (např. sloupec_1 INTEGER DEFAULT 50) Databázové systémy I - cvičení č. 5 20
CREATE TABLE Vytvoří tabulku dle popsané struktury. Příklad: CREATE TABLE employees_demo (employee_id NUMBER(6) PRIMARY KEY, first_name VARCHAR2(20), last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn NOT NULL, VARCHAR2(25) CONSTRAINT emp_ _nn NOT NULL, phone VARCHAR2(20), hire_date DATE DEFAULT SYSDATE CONSTRAINT emp_hire_date_nn NOT NULL, job_id VARCHAR2(10) CONSTRAINT emp_job_nn NOT NULL, salary NUMBER(8,2) CONSTRAINT emp_salary_nn NOT NULL, commiss_pct NUMBER(2,2), manager_id NUMBER(6), dept_id NUMBER(4), dn VARCHAR2(300), CONSTRAINT emp_salary_min CHECK (salary > 0), CONSTRAINT emp_ _uk UNIQUE ( ) ) ; Databázové systémy I - cvičení č. 5 21
CREATE TABLE Vytvoří tabulku dle popsané struktury. Příklad: CREATE TABLE dodavatele ( dodavatel_id number(4) not null, nazev varchar2(100) not null, zastoupeni varchar2(100), CONSTRAINT dodavatel_pk PRIMARY KEY (dodavatel_id) ); CREATE TABLE produkty ( produkt_id number(8) not null, oznaceni varchar2(30) not null, dodavatel_id number(4) not null, cena number(6), CONSTRAINT fk_dodavatele FOREIGN KEY (dodavatel_id) REFERENCES dodavatele(dodavatel_id) ); Databázové systémy I - cvičení č. 5 22
Syntaxe příkazu DROP TABLE DROP TABLE Odstraní z databáze tabulku s daným jménem, tj. všechny řádky tabulky, celou strukturu, všechny nad ní definované indexy a všechna případná omezení definovaná nad sloupci či celou tabulkou. Databázové systémy I - cvičení č. 5 23
DROP TABLE Příklad: DROP TABLE dodavatele; Databázové systémy I - cvičení č. 5 24
Syntaxe příkazu ALTER TABLE ALTER TABLE ADD ( ) = { [ ] | } Příkaz se používá pro přidání sloupců či omezení do tabulky. ALTER TABLE dodavatele ADD mesto varchar2(50); ALTER TABLE dodavatele ADD (mesto varchar2(50), telefon varchar2(13) ); Databázové systémy I - cvičení č. 5 25
Syntaxe příkazu ALTER TABLE ALTER TABLE MODIFY ( ) Příkaz se používá pro úpravu specifikace sloupců či omezení do tabulky. ALTER TABLE dodavatele MODIFY zastoupeni varchar2(80) not null; Databázové systémy I - cvičení č. 5 26
Syntaxe příkazu ALTER TABLE ALTER TABLE DROP COLUMN Příkaz se používá pro odstranění sloupce z tabulky. ALTER TABLE dodavatele DROP COLUMN telefon; Databázové systémy I - cvičení č. 5 27
Cvičení 5 - samostatné -Pokračujte na semestrální práci Videopůjčovna -Proveďte převod konceptuálního modelu na fyzický -Vytvořte všechny objekty ve vašem schématu na databázovém serveru -Kontrola proběhne na dalším cvičení! Databázové systémy I - cvičení č. 5 28