J,
d) Sale(id_sali, numer, ile_komputerów) Programy(id_programu, firma, nazwa, wersja) V Przedmioty(id_przedmiołu, nazwa) Sale_programy(id_sali, id_programu, wersja, iłeJnstalacjO
Przedmioty_programy(id_przedmiotu, id_programu, wersja)
I.Dana jest tabela Osoby(lmje, Nazwisko, Zarobki).
Które z następujących instrukcji są składniowo poprawnymi instrukcjami SOL w Oracle: ajSELECT Osoby.Nazwisko, Osoby.Imię, Osoby .Zarobki Oso by.Nazwrsko='KOWALSKI' AND WHERE Osoby Zarobki >1000; Działy Nazwa=’KASA’ AND
b)INSERT INTO Osoby VALUES (‘Jan', ‘Kowalski', 2000) Osoby.ld_działu=Działy.ld_dzialu;
WHERE USER = KOWALSKI'; siDELETE FROM Osoby WHERE USEReKOWALSW.
diye
2.Dana jest tabela Osoby(lmie, Nazwisko, Zarobki). Które z następujących instrukcji są składniowo poprawnymi instrukcjami SQL w Oracle: a)SELECT Osoby.Nazwisko, Osoby.lmie, Osoby.Zarobki FROM Osoby GROUP BY Osoby.Nazwisko;
b)INSERT INTO Osoby VALUES ('Jan', Kowalski', 2000)
V
bjINSERT INTO Osoby VALLIES (‘Jan’, ‘Kowalski’, 2000) WHERE Osoby.ld_dzialu = 23;
Które z następujących instrukcji są składniowo poprawnymi instrukcjami SQL w Oracle: ajSELECT Osoby.Nazwisko, Osoby.lmie, Osoby.Zarobki
FROM Osoby HAV1NG Qsoby.Zarobki>1000; -Q. , >INSERT INTO Osoby SELECT • FROM Osoby WHERł ul~~1 ^ Nazwisko - KOWALSKI-; cjDELETE FROM Osoby WHENEVER Osoby Zarobki* 1000;
d)UPDATE Osoby WHERE Nazwisko=KOWALSKl';
■ ttINSERT INTO Osobyflmie, NazwiskpZarebkh VALUES f-Jan1. 'Kowalski'. 2000):
o>CSL£TE FRCM Osoby ‘MIERĘ Id "
° łd„teiału FROM Mały WIERĘ łtewa*'BVFST); djUPDATE Osoby DELETE Nazwisko=USER;
Osoby, Działy WHERE Osoby.ld_działu=Działy.ld_działu deptno=e.deptno GROUP BY deptno); group by Osoby.Nazwisko: i \ -351151 dsptn? ..DRam?, Nreflate. FS5M gmp
k\ikiccDT ^ ^ , lcc „, . v ^ ^ WBBŁ>feai9.»
bjINSERT INTO Osoby VALUES (Jan , Kowalski, 2000)
WHERE Osoby. Iddziału = 23;
3,Dane są dwie tabele Osoby(lmie, Nazwisko, Zarobki, ld_działu) oraz Działy(ld_działu, Nazwa). Które z następujących instrukcji są poprawnymi instrukcjami SOL w Oracle;
^SSLćCT Psoby.flazwisko, COUNTfDziały Nazwa; FROM Osoby, Pzjahf.WHERS Osofrr.ld działu* Ozatr,Id dziełu GROUP BY
b)INSERT INTO Osoby VALUES ('Jan', ‘Kowalski', 2000)
WHERE Osoby.ld_działu = 23;
4,Dane są dwie tabele Osoby(lmie, Nazwisko, Zarobki, ld_działu) oraz Działy(ld_działu, Nazwa). Które z następujących instrukcji są poprawnymi /■
instrukcjami SOL w Oracle: /,
a)SELECT Osoby.Nazwisko, COUNT(Działy.Nazwa) FROM Osoby, Działy WHERE
LETE FROM Osotw WHERE Osoby. Nazwisko" KOWALSKI' AND
Sv. DztaN.ld dztełu=22: ■ ■
ijltJPOATE Osoby SET M ,dBgłg=NUll. WHEBE
S>(SELECT COUNTO FROM Działy):
\i
2.Wskazać poprawne zapytanie SQL znajdujące dla każdego departamentu ostatnio zatrudnionych pracowników.
1. SELECT deptno, ename, hiredate FROM emp WHERE (hiredate, deptno) IN
(SELECT MAX(hiredate), deptno FROM emp GROUP BY deptno);
2. SELECT deptno, ename, hiredate FROM emp e WHERE (hiredate,) =
(SELECT MAX(hiredate) FROM emp WHERE
hi PrnoramWM npyiremu. firma, nazwa, weniat
^rtmfrMld.aroftntonb nazwaj >ate orograrmrfnr -sak. id aroarwnu, ite instalacji) ^rzadmłoty prootamyfid przedmiotu, id programu) c) Programy(id_programu, firma, nazwa, wersja. nazwa_przedmiotu)
Sale_programy(nr_sali, id_programu, wersja, ilejnstalacji)
SQL1
WHERE USER = KOWALSKI’;
■'jPELETE FROM Osoby WHERE ^NKCWSKT* KOWALSKI': -DUPOATĆ Osoby SET Hazwfeko-USER:
SQL2
I.Dane są dwie tabele Osobyflmie, Nazwisko, Zarobki, ld_działu) oraz Działyflddziału, Nazwa). Które z następujących instrukcji są poprawnymi instrukcjami SOL w Oracle: ajSELECT Osoby.Nazwisko, Osoby.lmie,
Osoby.Iddziału WHERE Działy. Nazwa='PRAWNY';
2. Dane są dwie tabele Osobyflmie, Nazwisko, Zarobki, Id działu) oraz Działyfld działu, Nazwa). Które z następujących instrukcji są poprawnymi instrukcjami SOL w Oracle:
ajSELECT Osoby.Nazwisko, Działy.Nazwa FROM
c)DELETE FROM Osoby, Działy WHERE Osoby ,Nazwisko='KOWALSKI' AND Działy.Nazwa='KASA’;
r*UPOATE Osoby SET Id działu-NULL:
c)DELETE FROM Osoby, Działy WHERE
d)UPDATE Osoby SET ld_działu=NULL WHERE COUNT(*)<5;
Osoby.ld_działu=Działy.ld_działu GROUP BY Osoby Nazwisko HAV1NG COUNT(ld_dzialu)<2;
(SB.2CT MAX(hiradat9) PROM emp GROUP 3Y de at no):
4. SELECT deptno. ename, MAX(hireda1e) FROM emp
GROUP BY deptno;
3.Wskazać poprawne zapytanie SQL znajdujące pracowników o najniższych zarobkach w ich działach.
1. SELECT ename, sal. deptno FROM emp WHERE (sal, deptno) IN (SELECT MIN(sal), deptno FROM empGROUP BY deptno);
2J SELECT ename. deptno. sal FROM emo 9 WHERE
dentno):
3. SELECT ename, sal, deptno FROM emp WHERE sal IN
(SELECT MIN(sal)FROM empGROUP BY
deptno)
4. SELECT ename MIN(sal), deptno FROM emp GROUP BY deptno)
4.Wskazać poprawne zapytanie SOL znajdujące pracowników, których zarobki są wyższe od pensji każdego pracownika z departamentu 30.
l. SELECT ename, sal. job, deptno FROM emp WHERE sal> ALL
(SELECT DISTINCT sal FROM emp WHERE
\ deptno = 30);
2, ŚELSCT ename. pal. iob. deptno FROM emp WHERE ~ ali.
(SŁSCT Mazi sal) FROM emo WHERE dartno -
3. SELECT ename, sal, job. deptno FROM emp WHERE sal> ANY
(SELECT DISTINCT sal FROM emp WHERE
deptno = 30);
4. SELECT ename, sal, job, deptno FROM emp WHERE sal»
(SELECT Min< sal) FROM emp WHERE deptno = 30);
10 OR deotno ■ 20
2. SELECT DISTINCT job FROM emp WHERE deptno = 10 UNION SELECT DISTINCT job FROM emp WHERE deptno = 20
3. SELECT DISTINCT job FROM emp WHERE deptno = 10 AND deptno = 20
4. SELECT DISTINCT job FROM emp WHERE deptno = 10 INTERSECT SELECT DISTINCT job FROM emp WHERE deptno = 20
6,Wskazać poprawne zapytanie SOL znajdujące stanowiska pracy występujące zarówno w dziale 10 jak i w dziale 20.
1. SELECT DISTINCT job FROM emp WHERE deptno = 10 INTERSECT SELECT DISTINCT job FROM emp Wl ICRC deptno = 20
2. SELECT DISTINCT job FROM emp WHERE deptno = 10 OR deptno = 20
3. SELECT DISTINCT job FROM emp WHERE deptno = 10 UNION SELECT DISTINCT job FROM emp WHERE deptno = 20
4, SELECT DISTINCT iob FROM sroo WHERE deotno -10 AND deotno = 20
7.Wskazać poprawne zapytanie SQL znajdujące
pracowników, którzy zarabiają mniej od swoich k") kierowników.
2. SELECT e.ename prac_name, e.sal pracsal m.ename kier_name. m.sal kier_sal FROM emp e, emp m
WHERE e.mgr = m.empno AND m.sal < e.sal
3. SELECT e.ename pracname, e.sal prac sal m.ename kier_name, m.sal kiersal FROM emp e, emp m WHERE e.mgr = m.mgr AND esal < m.sal
4. SELECT e.ename prac name, e.sal prac sal m.ename kier_name, m.sal kier sal FROM emp e, emp m WHERE emgr = m.mgr AND m.sal < e.sal
\J
3. Dana jest tabela Osobyflmie, Nazwisko, Zarobki). cjDELETE FROM Osoby, Działy WHERE
Które z następujących instrukcji są składniowo Osobv.Nazwisko=KOWALSK)' AND poprawnymi instrukcjami SQL w Oracle: Działy.Nazwa='KASA' AND
ajSELECT Osoby.Nazwisko. Osoby.lmie, Osoby Zarobki Osoby Id działu= Działy Id działu ORDER BY Osoby Zarobki; ~ _
iDłNSERT INTO Osoby SELECT • FROM Osób* WHEPŁtftDPOATE Osoby SET Id dzi*łu«NULL 'WHERE 5-Wskazać poprawne zapytanie SOL znajdujące
, ° USER - KOWALSKI': 5XSELECT COUNTD FROM Działy): stanowiska pracy występujące w działach 10 lub
'J faOELETE FROM Osoby WHERE USER-KOWALSW: ^ .......7mhllIx 20.
djUPDATE Osoby WHERE Nazwisko= KOWALSKI‘; 5,Dane są dwie tabele Osobyflmie, Nazwisko, Zarobki, r .sęLECT DISTINCT iob FROM emp WHERE deotno -
ld_działu) oraz Dzlały(ld_dzlału, Nazwa). Które z ~10 OR danino * 20
4. Dana jest tabela Osobyflmie, Nazwisko, Zarobki). następujących instrukcji są poprawnymi
Które z następujących instrukcji są składniowo instrukcjami SOL w Oracle: poprawnymi instrukcjami SOL w Oracle: ajSELECT Osoby.Nazwisko, Działy.Nazwa FROM
a)SELECT Osoby.Nazwisko, Osoby.lmie, Oso by .Zarobki Osoby, Działy WHERE Osoby.ld_działu=Działy.ld_dziakj HAV1NG OsobyZarobki>1000; GROUP BY Osoby.Nazwisko HAVING
bjINSERT INTO Osoby SELECT Nazwisko, Imię FROM COUNT(Działy.ld_działu)<2;
_ Osoby WHERE USER = KOWALSKI'; _
1<AC€IETE FROM OtotU WHERE WSER?'KgWftŁSKŁ ^>INSERT INTO Osoby VALUES (‘Jan', Kowalski', 2000); d)UPDATE Osoby WHERE Nazwisko=KOWALSKl‘; firnFl
5. Dana jest tabela Osobyflmie, Nazwisko, Zarobki). ,Vi '
i/
\i
.1/
3
1 .Wskazać poprawne zapytanie SQL znajdujące pracowników zarabiających minimalną pensję na Ich stanowiskach pracy.
SELPCT ename. iob. sal FROM emp e
WHERE sal« SELECT MłNfsaUFRCtt stop WHERE iob = e.iob):
SELECT ename, job, sal FROM emp WHERE( sal,job) in (SELECT MIN(sal),job FROM empGROUP BY job);
SELECT ename, job, sal FROM emp WHERE sal = (SELECT MIN(sal)FROM emp GROUP BY job);
SELECT ename, job. MIN(sal) FROM emp GROUP BY job;