1. Je spušťen následující anonymní PL/SQL blok: BEGIN INSERT INTO countries (id, name) VALUES ('XA', 'Xanadu'); INSERT INTO countries (id, name) VALUES ('NV','Neverland'); COMMIT; COMMIT; ROLLBACK; END; Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny. Každý řádek je vložen dvakrát; máme tak 4 nové řádky v příslušné tabulce. Blok skončí chybou; není možné použít dva příkazy COMMIT za sebou. Nic se nestane; poslední ROLLBACK vrátil vše do stavu před oběma operacemi INSERT. Jsou přidány dva nové řádky do příslušné tabulky. 2. Pro použití implicitního kurzoru je nutné jej uvést v DECLARE části PL/SQL bloku. Je toto tvrzení správné nebo chybné? Správné Chybné // je rozdíl impicitní a explicitní 3. Předpokládejme, že oddělení 10 má 5 zaměstnanců. Co se stane po provedení následujícího příkazu UPDATE employees SET salary=salary*1.1; Všem zaměstnancům se navýší mzda o 10 % Nebude upraven žádný z řádků, protože nebyla použita klauzule "WHERE department_id=10" Objeví se výjimka TOO_MANY_ROWS Zobrazí se chybová zpráva, protože v PL/SQL musíme použít pro uložení nové mzdy použít klauzuli INTO
4. Následující anonymní blok PL/SQL kódu vrátí příjmení zaměstnance, jeho zaměstnanecké id je 100. Je toto tvrzení správné nebo chybné? DECLARE v_last_name employees.last_name%type; employee_id employees.employee_id%type := 100; BEGIN SELECT last_name INTO v_last_name FROM employees WHERE employee_id = employee_id; END; Správné Chybné 5. Existuje mnoho důvodů pro vytváření konceptuálního modelu. Vyberte tři pravdivá trzení. Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny. Slouží k modelování funkčních a informačních potřeb. Zachycují implementační detaily fyzického modelu Zachycují současné a budoucí potřeby. Popisují, co bude obsahovat fyzický model. 6. Která dvě tvrzení o ERD jsou pravdivá? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny. Všechna data musí být zahrnuta do ERD, včetně odvozených souhrnů a výsledků kalkulací. Daná informace může být v ERD ukázána vícekrát. Neměli byste modelovat dělitelná data Daná informace by se měla v ERD vyskytovat pouze jednou. 7. Která z následujících není instancí entity OSOBA? Angelina Rosalie Muž David Jones Grace Abinajam 8.
Unikátní identifikátor... Nerozlišuje nic Rozlišuje jednu entitu od ostatních. Rozlišuje jednu instanci entity od všech ostatních instantcí stejné entity Rozlišuje všechny entity v databázi Pokyny k bloku otázek: 9. Tabulka STYLES obsahuje tato data: STYLE_ID STYLE_NAME CATEGORY COST 895840 SANDAL 85940 12.00 968950 SANDAL 85909 10.00 869506 SANDAL 89690 15.00 809090 LOAFER 89098 10.00 890890 LOAFER 89789 14.00 857689 HEEL 85940 11.00 758960 SANDAL 86979 Uvažujte tento dotaz: SELECT style_id, style_name, category, cost FROM styles WHERE style_name LIKE 'SANDAL' AND NVL(cost, 0) < 15.00 ORDER BY category, cost; Který výsledek dostaneme? STYLE_ID STYLE_NAME CATEGORY COST 895840 SANDAL 85940 12.00 968950 SANDAL 85909 10.00 758960 SANDAL 86979 STYLE_ID STYLE_NAME CATEGORY COST 895840 SANDAL 85909 12.00 968950 SANDAL 85909 10.00 758960 SANDAL 86979 869506 SANDAL 89690 15.00 STYLE_ID STYLE_NAME CATEGORY COST 968950 SANDAL 85909 10.00 895840 SANDAL 85940 12.00
758960 SANDAL 86979 STYLE_ID STYLE_NAME CATEGORY COST 895840 SANDAL 85909 12.00 968950 SANDAL 85909 10.00 869506 SANDAL 89690 15.00 758960 SANDAL 86979 10. Zde je struktura tabulek CUSTOMERS a SALES_ORDER: CUSTOMERS: CUSTOMER_ID NUMBER NOT NULL, Primary Key CUSTOMER_NAME VARCHAR2 (30) CONTACT_NAME VARCHAR2 (30) CONTACT_TITLE VARCHAR2 (20) ADDRESS VARCHAR2 (30) CITY VARCHAR2 (25) REGION VARCHAR2 (10) POSTAL_CODE VARCHAR2 (20) COUNTRY_ID NUMBER Foreign key to COUNTRY_ID column of the COUNTRY table PHONE VARCHAR2 (20) FAX VARCHAR2 (20) CREDIT_LIMIT NUMBER(7,2) SALES_ORDER: ORDER_ID NUMBER NOT NULL, Primary Key CUSTOMER_ID NUMBER Foreign key to CUSTOMER_ID column of the CUSTOMER table ORDER_DT DATE ORDER_AMT NUMBER (7,2) SHIP_METHOD VARCHAR2 (5) Máte vytvořite report, který ukáže zákazníky bez objednávky. Který doatz použijete? SELECT c.customer_name FROM customers c RIGHT OUTER JOIN sales_order s ON (c.customer_id = s.customer_id); SELECT c.customer_name FROM customers c, sales_order s WHERE c.customer_id (+) = s.customer_id; SELECT c.customer_name FROM customers c WHERE c.customer_id not in (SELECT s.customer_id FROM sales_order s) SELECT c.customer_name
FROM customers c, sales_order s WHERE c.customer_id = s.customer_id(+); 11. A column that will be used to store binary data up to 4 Gigabyes in size should be defined as which datatype? Sloupec, který bude použit pro ukládání binárních dat až do 4 GB by měl být definován jako který datový typ? NUMBER LONG BLOB LONGRAW 12. Pokud chcete odstranit omezení a současně chcete vynutit, aby všechna integritní omezení, která se odkazují na primární a unikátní klíče definované na odstraňovaném sloupci byla také odstraněna, tak použijete které klíčové slovo? ON DELETE SET NULL CASCADE FOREIGN KEY REFERENCES 13. Skupinové funkce mohou zabránit výpočtům zahrnujícím duplikované hodnoty zahrnutím kterého klíčového slova? UNLIKE SELECT DISTINCT NULL 14. Které tvrzení o snížení šířky sloupce je pravdivé?
Pokud sloupec obsahuje znaková data, můžete zmenšit šířku sloupce, pokud by stávající data neporušovala novou velikost. Pokud sloupec obsahuje znaková data, není možné zmenšit šířku sloupce. Není možné zmenšit šířku sloupce obsahující znaky, pokud sloupec neobsahuje žádná data (znaky). Pokud sloupec obsahuje znaková data, můžete zmenšit šířku sloupce bez jakýchkoliv omezení. 15. Které z následujících tvrzení o cizím klíči je pravdivé? Cizí klíč umožňuje kontrolu vkládané hodnoty, zda náleží do množiny povolených hodnot. Pro každý cizí klíč je automaticky vytvořen index. Cizí klíč omezuje obsah hodnot ve sloupci na hodnoty, které odkazujíc na hodnoty primárních nebo unikátních klíčů v nadřazených tabulkách. Sloupec s cizím klíčem může obsahovat hodnoty jiného datového typu než je datový typ primárního klíče. 16. ALTER TABLE employees ADD CONSTRAINT emp_manager_fk FOREIGN KEY(manager_id) REFERENCES employees(employee_id); Uvedený SQL příkaz provede co? Upraví tabulku EMPLOYEES a přidá cizí omezení FOREIGN KEY, které znamená, že ID každého zaměstnance musí být unikátní. Přidá omezení FOREIGN KEY do tabulky EMPLOYEES, které znamená, že manažer musí být zaměstnancem. Upraví tabulku EMPLOYEES a zruší omezení emp_manager_fk. Přidá omezení FOREIGN KEY do tabulky EMPLOYEES, které znamená, že ID manažera musí odpovídat každému ID zaměstnance. 17. Chcete vytvořit tabulku s názvem TRAVEL, která je potomkem tabulky EMPLOYEES. Který z následujících příkazů byste použili? CREATE TABLE travel (destination_id primary key, departure_date date, return_date date, emp_id REFERENCES employees (emp_id)); CREATE TABLE travel (destination_id number primary key, departure_date date, return_date date, emp_id number(10) REFERENCES employees
(emp_id)); CREATE TABLE travel (destination_id number primary key, departure_date date, return_date date, t.emp_id = e.emp_id); CREATE TABLE travel (destination_id number primary key, departure_date date, return_date date, JOIN emp_id number(10) ON employees (emp_id)); 18. Je spuštěn následující anonymní PL/SQL blok: BEGIN INSERT INTO countries (id, name) VALUES ('XA', 'Xanadu'); INSERT INTO countries (id, name) VALUES ('NV','Neverland'); COMMIT; COMMIT; ROLLBACK; END; Co se stane po jeho vykonání? Každý řádek je vložen dvakrát; máme tak 4 nové řádky v příslušné tabulce. Nic se nestane; poslední ROLLBACK vrátil vše do stavu před oběma operacemi INSERT. Jsou přidány dva nové řádky do příslušné tabulky. Blok skončí chybou; není možné použít dva příkazy COMMIT za sebou. 19. Tabulka PRODUKT obsahuje takto definovaný sloupec: PRICE NUMBER(7,2). Uvažujte tento dotaz: SELECT NVL(10 / price, '0') FROM PRODUCT; Co se stane, když sloupec PRICE bude obsahovat NULL hodnoty? A value of 10 would be displayed. A value of 0 would be displayed. The statement would fail because values cannot be divided by null. The statement would fail because values cannot be divided by 0. 20. Kolik nenulových omezení (NOT NULL) lze maximálně nastavit nad libovolnou tabulkou?
Libovolný počet 10 3 5 21. Máte zobrazit každé jméno zaměstnance celé velkými znaky. Kterou funkci použijete? UPPER CASE TOUPPER UCASE 22. Které datové typy umožňují uložit proměnlivou délku řetězce? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny. VARCHAR2 CLOB NCHAR CHAR 23. Vemte v úvahu tento dotaz? SELECT a.lname ', ' a.fname as "Patient", b.lname ', ' b.fname as "Physician", c.admission FROM patient a JOIN physician b ON (b.physician_id = c.physician_id) JOIN admission c ON (a.patient_id = c.patient_id); Která klauzule způsobí chybu? JOIN admission c JOIN physician b ON (b.physician_id = c.physician_id); ON (a.patient_id = c.patient_id) 24.
Předpokládejme, že oddělení 10 má 5 zaměstnanců. Co se stane po provedení následujícího příkazu UPDATE employees SET salary=salary*1.1; Objeví se výjimka TOO_MANY_ROWS Nebude upraven žádný z řádků, protože nebyla použita klauzule "WHERE department_id=10" Zobrazí se chybová zpráva, protože v PL/SQL musíme použít pro uložení nové mzdy použít klauzuli INTO Všem zaměstnancům se navýší mzda o 10 % 25. Co umožňuje datový typ TIMESTAMP? Čas se uloží jako datum s přesností na sekundy. Nic z výše uvedeného. Čas je možné uložit jako interval dnů na hodiny, minuty a sekundy. Čas je možné uložit jako interval roků a měsíců. 26. Každý anonymní blok v PL/SQL musí začínat klíčovým slovem DECLARE. Je toto tvrzení správné nebo chybné? Správné Chybné 27. Které tvrzení o sloupci není pravdivé? Můžete změnit datový typ sloupce v případě, že sloupec obsahuje nenulové (non-null) hodnoty. Můžete převést sloupec datového typu CHAR na VARCHAR2 datový typ. Můžete převést sloupec datového typu DATE na VARCHAR2 datový typ. Můžete zvýšit šířku sloupce typu CHAR. 28. Vytváříte tabulku EMPLOYEES. Tato tabulka by měla obsahovat sloupec COMMISSION_PCT. Pokud je vložen záznam bez hodnoty poplaku, autoamticky se má nastavit hodnota 10 procent. Které řádek je třeba uvést v příkazu CREATE TABLE ke splnění tohoto úkolu? commission_pct NUMBER(4,2) (DEFAULT, 0.10)
commission_pct NUMBER(4,2) DEFAULT 0.10 commission_pct NUMBER(4,2) DEFAULT = 0.10 commission_pct NUMBER(4,2) DEFAULT (0.10) 29. Chcete vytvořit report, který bude ukazovat všechny objednávky a jejich částky, které byly vytvořeny během ledna. Objednávky s nejvyššími částkami chcete zobrazit jako první. Který dotaz použijete? SELECT orderid, total FROM orders WHERE order_date LIKE '01-jan-02' AND '31-jan-02' ORDER BY total DESC; SELECT orderid, total FROM orders WHERE order_date IN ( 01-jan-02, 31-jan-02 ) ORDER BY total; SELECT orderid, total FROM orders WHERE order_date BETWEEN '31-jan-02' AND '01-jan-02' ORDER BY total DESC; SELECT orderid, total FROM orders WHERE order_date BETWEEN '01-jan-02' AND '31-jan-02' ORDER BY total DESC; 30. Zadali jste tento dotaz: SELECT CONCAT(last_name, (SUBSTR(LOWER(first_name), 4))) "Default Password" FROM employees; Která funkce bude vyhodnocona jako první? LOWER SUBSTR CONCAT Všechny tři najednou.