This shows you the differences between two versions of the page.
bd:laboratoare:04 [2019/03/09 14:37] fbratiloveanu |
bd:laboratoare:04 [2023/03/20 10:05] (current) sorin.ciolofan [Cereri cu clauza WHERE] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Laborator 04 - Cereri SQL ===== | ===== Laborator 04 - Cereri SQL ===== | ||
+ | |||
+ | ==== Obiective ==== | ||
+ | |||
+ | * Prezentarea Cererii SELECT | ||
+ | * Cereri Simple | ||
+ | * Clauza Where | ||
+ | | ||
+ | ==== Materiale ajutătoare ==== | ||
+ | |||
+ | [[bd:resurse:tables|Resurse BD]] | ||
+ | |||
+ | {{:bd:laboratoare:laborator04.pdf|Laborator 4}} | ||
+ | |||
====Cereri SQL==== | ====Cereri SQL==== | ||
Line 39: | Line 52: | ||
====Cereri simple==== | ====Cereri simple==== | ||
- | <color red>Ex. 1.</color> Să se creeze o copie a tabelului DEPT care să se numească departamente cu următoarele coloane: id_dep number(2), den_dep varchar2(14), locatie varchar2(13). | + | <color red>Ex. 1.</color> Să se creeze o copie a tabelului DEPT care să se numească departamente cu următoarele coloane: |
+ | * id_dep number(2) | ||
+ | * den_dep varchar2(14) | ||
+ | * locatie varchar2(13) | ||
- | {{:bd:laboratoare:carbon_lab4_ex01.png?nolink&350|}} | + | {{:bd:laboratoare:carbon_lab4_ex01.png?nolink&320|}} |
<color red>Ex. 2.</color> Să se creeze o copie a tabelului EMP care să se numească angajati. | <color red>Ex. 2.</color> Să se creeze o copie a tabelului EMP care să se numească angajati. | ||
- | <code sql> | + | |
- | CREATE TABLE angajati AS | + | {{:bd:laboratoare:carbon_lab4_ex02.png?nolink&290|}} |
- | SELECT | + | |
- | empno id_ang, | + | |
- | ename nume, | + | |
- | job functie, | + | |
- | mgr id_sef, | + | |
- | hiredate data_ang, | + | |
- | sal salariu, | + | |
- | comm comision, | + | |
- | deptno id_dep | + | |
- | FROM emp; | + | |
- | </code> | + | |
<color red>Ex. 3.</color> Să se selecteze toate înregistrările și toate coloanele din tabela angajați | <color red>Ex. 3.</color> Să se selecteze toate înregistrările și toate coloanele din tabela angajați | ||
- | <code sql> | + | |
- | SELECT * FROM angajati; | + | {{:bd:laboratoare:carbon_lab4_ex03.png?nolink&280|}} |
- | </code> | + | |
<color red>Ex. 4.</color> Să se selecteze id-ul și numele departamentului din tabela departamente. | <color red>Ex. 4.</color> Să se selecteze id-ul și numele departamentului din tabela departamente. | ||
- | <code sql> | + | |
- | SELECT id_dep, den_dep | + | {{:bd:laboratoare:carbon_lab4_ex04.png?nolink&280|}} |
- | FROM departamente; | + | |
- | </code> | + | |
<color red>Ex. 5.</color> Să se selecteze id-ul, numele, funcția și data angajării pentru toți angajații din firmă, ordonați descrescător în funcție de id. Concatenați id-ul cu numele. | <color red>Ex. 5.</color> Să se selecteze id-ul, numele, funcția și data angajării pentru toți angajații din firmă, ordonați descrescător în funcție de id. Concatenați id-ul cu numele. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex05.png?nolink&320|}} |
- | id_ang||'-'||nume angajat, | + | |
- | functie, | + | |
- | data_ang | + | |
- | FROM angajati | + | |
- | ORDER BY id_ang desc; | + | |
- | </code> | + | |
<note important> | <note important> | ||
Line 87: | Line 83: | ||
<color red>Ex. 6.</color> Să se selecteze id-ul, numele, funcția și venitul lunar pentru toți angajații din firmă. Să se adauge la select o coloană goală care să se numească semnătura. Concatenați id-ul cu numele. Ordonați după departament. | <color red>Ex. 6.</color> Să se selecteze id-ul, numele, funcția și venitul lunar pentru toți angajații din firmă. Să se adauge la select o coloană goală care să se numească semnătura. Concatenați id-ul cu numele. Ordonați după departament. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex06.png?nolink&450|}} |
- | id_ang||'-'||nume angajat, | + | |
- | functie, | + | |
- | salariu+nvl(comision,0) as "venit lunar", | + | |
- | ' ' as semnatura | + | |
- | FROM angajati | + | |
- | ORDER BY id_dep; | + | |
- | </code> | + | |
<color red>Ex. 7.</color> Să se selecteze numele și funcția angajaților. | <color red>Ex. 7.</color> Să se selecteze numele și funcția angajaților. | ||
- | <code sql> | ||
- | SELECT nume, 'cu functie', functie | ||
- | FROM angajati; | ||
- | </code> | ||
+ | {{:bd:laboratoare:carbon_lab4_ex07.png?nolink&360|}} | ||
<color red>Ex. 8.</color> Să se facă o listă cu numele departamentului și codul acestuia. Ordonați după numele departamentului. | <color red>Ex. 8.</color> Să se facă o listă cu numele departamentului și codul acestuia. Ordonați după numele departamentului. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex08.png?nolink&530|}} |
- | den_dep||' are codul '||id_dep "Lista Departamente" | + | |
- | FROM departamente | + | |
- | ORDER BY den_dep asc; | + | |
- | </code> | + | |
====Cereri cu clauza WHERE==== | ====Cereri cu clauza WHERE==== | ||
Line 174: | Line 157: | ||
<color red>Ex. 9.</color> Să se listeze toți angajații din departamentul 10. | <color red>Ex. 9.</color> Să se listeze toți angajații din departamentul 10. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex09.png?nolink&380|}} |
- | a.id_ang ecuson, | + | |
- | a.nume, | + | |
- | a.data_ang AS "Data Angajarii", | + | |
- | a.salariu | + | |
- | FROM angajati a | + | |
- | WHERE id_dep = 10; | + | |
- | </code> | + | |
<color red>Ex. 10.</color> Să se selecteze toți angajații care au funcția MANAGER. Ordonați după id-ul departamentului. | <color red>Ex. 10.</color> Să se selecteze toți angajații care au funcția MANAGER. Ordonați după id-ul departamentului. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex10.png?nolink&380|}} |
- | id_dep "Nr. deptartament", | + | |
- | nume, | + | |
- | functie, | + | |
- | salariu, | + | |
- | data_ang AS "Data Angajarii" | + | |
- | FROM angajati | + | |
- | WHERE lower(functie) = 'manager' | + | |
- | ORDER BY id_dep; | + | |
- | </code> | + | |
<color red>Ex. 11.</color> Selectați toate persoanele care s-au angajat intr-o anumită perioadă. | <color red>Ex. 11.</color> Selectați toate persoanele care s-au angajat intr-o anumită perioadă. | ||
- | <code sql> | ||
- | SELECT | ||
- | id_dep departament, | ||
- | functie, | ||
- | nume, | ||
- | data_ang AS "Data Angajarii" | ||
- | FROM angajati | ||
- | WHERE data_ang BETWEEN '1-MAY-1981' AND '31-DEC-1981' | ||
- | ORDER BY 1, 2 desc; | ||
- | </code> | ||
- | <code sql> | + | {{:bd:laboratoare:carbon_lab4_ex11a.png?nolink&460|}} |
- | SELECT | + | |
- | id_dep departament, | + | {{:bd:laboratoare:carbon_lab4_ex11b.png?nolink&520|}} |
- | functie, | + | |
- | nume, | + | |
- | data_ang AS "Data Angajarii" | + | |
- | FROM angajati | + | |
- | WHERE data_ang >= '1-MAY-1981' AND data_ang <= '31-DEC-1981' | + | |
- | ORDER BY 1, 2 desc; | + | |
- | </code> | + | |
<color red>Ex. 12.</color> Să se listeze id-ul, numele, funcția, venitul lunar pentru angajații care au următoarele id-uri: 7499,7902, 7876. | <color red>Ex. 12.</color> Să se listeze id-ul, numele, funcția, venitul lunar pentru angajații care au următoarele id-uri: 7499,7902, 7876. | ||
- | <code sql> | ||
- | SELECT | ||
- | id_ang AS ecuson, | ||
- | nume, | ||
- | functie, | ||
- | salariu + nvl(comision,0) "Venit lunar" | ||
- | FROM angajati | ||
- | WHERE id_ang IN (7499,7902,7876) | ||
- | ORDER BY nume; | ||
- | </code> | ||
- | <code sql> | + | {{:bd:laboratoare:carbon_lab4_ex12a.png?nolink&480|}} |
- | SELECT | + | |
- | id_ang AS ecuson, | + | {{:bd:laboratoare:carbon_lab4_ex12b.png?nolink&520|}} |
- | nume, | + | |
- | functie, | + | |
- | salariu + nvl(comision,0) "Venit lunar" | + | |
- | FROM angajati | + | |
- | WHERE id_ang = 7499 OR id_ang = 7902 OR id_ang = 7876 | + | |
- | ORDER BY nume; | + | |
- | </code> | + | |
<note important> | <note important> | ||
Line 252: | Line 185: | ||
<color red>Ex. 13.</color> Să se selecteze toate persoanele care au fost angajate în anul 1980. | <color red>Ex. 13.</color> Să se selecteze toate persoanele care au fost angajate în anul 1980. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex13.png?nolink&360|}} |
- | id_ang AS ecuson, | + | |
- | nume, | + | |
- | functie, | + | |
- | data_ang AS "Data Angajarii" | + | |
- | FROM angajati | + | |
- | WHERE data_ang LIKE '%80'; | + | |
- | </code> | + | |
<color red>Ex. 14.</color> Să se selecteze toate persoanele al căror nume începe cu litera F și numele funcției are 7 caractere. | <color red>Ex. 14.</color> Să se selecteze toate persoanele al căror nume începe cu litera F și numele funcției are 7 caractere. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex14.png?nolink&500|}} |
- | id_ang AS ecuson, | + | |
- | nume, | + | |
- | functie, | + | |
- | data_ang AS "Data Angajarii" | + | |
- | FROM angajati | + | |
- | WHERE nume LIKE 'F%' AND functie LIKE '_______'; | + | |
- | </code> | + | |
<note warning> | <note warning> | ||
Line 280: | Line 199: | ||
<color red>Ex. 15.</color> Să se listeze angajații din departamentul 20 care nu au primit comision. | <color red>Ex. 15.</color> Să se listeze angajații din departamentul 20 care nu au primit comision. | ||
- | <code sql> | + | |
- | SELECT | + | {{:bd:laboratoare:carbon_lab4_ex15.png?nolink&420|}} |
- | id_ang as ecuson, | + | |
- | nume, | + | |
- | functie, | + | |
- | salariu, | + | |
- | comision | + | |
- | FROM angajati | + | |
- | WHERE | + | |
- | (comision = 0 OR comision IS NULL) AND | + | |
- | id_dep = 20 | + | |
- | ORDER BY nume; | + | |
- | </code> | + | |
<note important> | <note important> | ||
Line 309: | Line 217: | ||
<color red>Ex. 16.</color> Să se listeze angajații care au primit comision și au funcția SALESMAN. | <color red>Ex. 16.</color> Să se listeze angajații care au primit comision și au funcția SALESMAN. | ||
- | <code sql> | + | {{:bd:laboratoare:lab04_16.png?nolink&500|}} |
- | SELECT | + | |
- | id_ang as ecuson, | + | |
- | nume, | + | |
- | functie, | + | |
- | salariu, | + | |
- | comision | + | |
- | FROM angajati | + | |
- | WHERE | + | |
- | (comision != 0 AND comision IS NOT NULL) AND | + | |
- | functie = upper('salesman') | + | |
- | ORDER BY nume; | + | |
- | </code> | + | |
- | <color red>Ex. 17.</color> Să se selecteze toți angajații care au funcția MANAGER și salariul peste 1500, și toți angajații care au funcția ANALYST.<code sql> | + | |
- | SELECT | + | <color red>Ex. 17.</color> Să se selecteze toți angajații care au funcția MANAGER și salariul peste 1500, și toți angajații care au funcția ANALYST. |
- | id_ang AS ecuson, | + | |
- | nume, | + | {{:bd:laboratoare:carbon_lab4_ex17.png?nolink&380|}} |
- | functie, | + | |
- | salariu, | + | |
- | id_dep departament | + | |
- | FROM angajati | + | |
- | WHERE | + | |
- | salariu > 1500 AND | + | |
- | lower(functie) = 'manager' OR | + | |
- | upper(functie) = 'ANALYST' | + | |
- | ORDER BY functie, nume DESC; | + | |
- | </code> | + | |
====Exerciții individuale==== | ====Exerciții individuale==== |