Differences

This shows you the differences between two versions of the page.

Link to this comparison view

bd:laboratoare:04 [2018/10/08 23:27]
ciprian.truica
bd:laboratoare:04 [2023/03/20 10:05] (current)
sorin.ciolofan [Cereri cu clauza WHERE]
Line 1: Line 1:
-===== Laboratorul ​04Cereri 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 32: Line 45:
   * **GROUP BY** expressions - stabilește criteriile de grupare a înregistrărilor (numele coloanelor folosite în criteriul de grupare);   * **GROUP BY** expressions - stabilește criteriile de grupare a înregistrărilor (numele coloanelor folosite în criteriul de grupare);
   * **HAVING** conditions - restricționarea înregistrărilor din grup la anumite condiții;   * **HAVING** conditions - restricționarea înregistrărilor din grup la anumite condiții;
-  * **UNION [ALL] | INTERSECT | MINUS** - combină ​rândurile ​selectate de mai multe comenzi SELECT prin aplicarea anumitor restricții;​+  * **UNION [ALL] | INTERSECT | MINUS** - combină ​liniile ​selectate de mai multe comenzi SELECT prin aplicarea anumitor restricții;​
   * **ORDER BY** expressions|positions ordonează înregistrările selectate după coloanele din expresie sau în ordinea coloanelor specificate prin poziție;   * **ORDER BY** expressions|positions ordonează înregistrările selectate după coloanele din expresie sau în ordinea coloanelor specificate prin poziție;
   * **FOR UPDATE OF** - face o blocare (lock) a înregistrărilor în vederea modificării anumitor coloane;   * **FOR UPDATE OF** - face o blocare (lock) a înregistrărilor în vederea modificării anumitor coloane;
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: ​ 
-<code sql> +  * id_dep number(2) 
-CREATE TABLE departamente AS  +  * den_dep varchar2(14) ​ 
-SELECT +  * locatie varchar2(13) 
-    deptno id_dep,  + 
-    name den_dep,  +{{:​bd:​laboratoare:​carbon_lab4_ex01.png?​nolink&​320|}}
-    loc locatie  +
-FROM dept; +
-</​code>​+
  
 <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 93: 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 158: Line 135:
 | ''​!=''​ | Diferit de (Unix, Windows) | | ''​!=''​ | Diferit de (Unix, Windows) |
 | ''​^=''​ | Diferit de (IBM) | | ''​^=''​ | Diferit de (IBM) |
-| ''<>''​ | Diferit de (Doate OS) |+| ''<>''​ | Diferit de (Toate OS) |
 | ''​NOT val { = | > | >= | < | %%<=%% }''​ | Neagă operatorul de comparație | | ''​NOT val { = | > | >= | < | %%<=%% }''​ | Neagă operatorul de comparație |
  
Line 180: 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 "Nrdeptartament",​ +
-    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>​
-Operatorul ''​LIKE''​ poate fi folosit cu simbolurile ''​_''​ și ''​%''​ pentru a selecta ​rândurile ​care se potrivesc cu un caracter sau un subșir de caractere. ​+Operatorul ''​LIKE''​ poate fi folosit cu simbolurile ''​_''​ și ''​%''​ pentru a selecta ​liniile ​care se potrivesc cu un caracter sau un subșir de caractere. ​
  
 ^Simbol^Semnificație^ ^Simbol^Semnificație^
Line 258: 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 286: 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 315: 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====
bd/laboratoare/04.1539030462.txt.gz · Last modified: 2018/10/08 23:27 by ciprian.truica
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0