Differences

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

Link to this comparison view

bd:laboratoare:07 [2019/04/03 16:41]
maria_luiza.serban [Funcții de grup]
bd:laboratoare:07 [2022/05/05 16:55] (current)
florin.radulescu [Funcții diverse]
Line 1: Line 1:
 ===== Laborator 07 - Funcții SQL (II) ===== ===== Laborator 07 - Funcții SQL (II) =====
  
-**Conținut**+ 
 +===== Obiective ===== 
   * Funcții de conversie   * Funcții de conversie
   * Funcții diverse   * Funcții diverse
   * Funcții de grup   * Funcții de grup
 +  ​
 +===== Materiale ajutătoare =====
 +
 +[[bd:​resurse:​tables|Resurse BD]]
 +
  
 ==== Funcții de conversie ==== ==== Funcții de conversie ====
Line 28: Line 35:
 | 9    | Numere (nr. de 9 determină lungimea de afișare) ​   |  | 9    | Numere (nr. de 9 determină lungimea de afișare) ​   | 
 | 0    | Afișează 0 de la început ​   | | 0    | Afișează 0 de la început ​   |
-\$   | Semnul $     ​| ​+''​$'' ​  | Semnul ​''​$'' ​    | 
 | .    | Punct decimal ​    | | .    | Punct decimal ​    |
 | ,    | Virgulă ​    | | ,    | Virgulă ​    |
Line 67: Line 74:
 {{:​bd:​laboratoare:​lab07_p7_2.png?​520}} {{:​bd:​laboratoare:​lab07_p7_2.png?​520}}
  
-  * **Instrucțiunea ​CASE**+  * **Expresii ​CASE**
  
-Instrucținea ​CASE poate fi folosită ​în clauza SELECT sau WHERE:+Expresiile ​CASE pot fi folosite ​în clauza SELECT sau WHERE. Ele returnează o valoare (a nu se confunda cu instrucțiunea CASE):
  
 Sintaxa 1: Sintaxa 1:
  
 <code sql>CASE expr <code sql>CASE expr
-WHEN value1 THEN statements_1;​ +WHEN value1 THEN retval_1 
-WHEN value2 THEN statements_2;​+WHEN value2 THEN retval_2
 ... ...
-[ELSE statements_k;​]+[ELSE retval_k]
 END</​code>​ END</​code>​
  
   * **expr** – reprezintă expresia care se va evalua;   * **expr** – reprezintă expresia care se va evalua;
-  * **statements_1** – reprezintă valoarea care se va returna pentru **expr = value1;** +  * **retval_1** – reprezintă valoarea care se va returna pentru **expr = value1;** 
-  * **statements_2** – reprezintă valoarea care se va returna pentru **expr = value2;** +  * **retval_2** – reprezintă valoarea care se va returna pentru **expr = value2;** 
-  * **statements_k** – reprezintă valoarea implicită care se va returna pentru **expr <> value1, value2, ...** +  * **retval_k** – reprezintă valoarea implicită care se va returna pentru **expr <> value1, value2, ...** 
  
 Sintaxa 2: Sintaxa 2:
  
 <code sql>​CASE ​ <code sql>​CASE ​
-WHEN expr_1 THEN statements_1;​ +WHEN expr_1 THEN retval_1 
-WHEN expr_2 THEN statements_2;​+WHEN expr_2 THEN retval_2
 ... ...
-[ELSE statements_k;​]+[ELSE retval_k]
 END</​code>​ END</​code>​
  
-  * **expr_i** – reprezintă expresia care se va evalua  +  * **expr_i** – reprezintă expresia ​**booleana** ​care se va evalua  
-  * **statements_i** – reprezintă valoarea care se va returna pentru **expr_i**+  * **retval_i** – reprezintă valoarea care se va returna pentru **expr_i**
  
 |{{:​bd:​laboratoare:​lab07_p8_1.png?​320}}|{{:​bd:​laboratoare:​lab07_p8_2.png?​410}}| |{{:​bd:​laboratoare:​lab07_p8_1.png?​320}}|{{:​bd:​laboratoare:​lab07_p8_2.png?​410}}|
Line 166: Line 173:
   * numele departamentului din care face parte seful   * numele departamentului din care face parte seful
   * salariu minim/​mediu/​maxim pt subalterni   * salariu minim/​mediu/​maxim pt subalterni
 +
 +<​hidden>​
 +<​code>​
 +select s.empno "id sef", ​
 + s.ename "nume sef", ​
 + count(e.empno) "nr angajati",​
 + d.dname "​dept",​
 + min (e.sal) "​min",​
 + max (e.sal) "​max",​
 + avg (e.sal) "​avg"​
 +from emp e, emp s, dept d
 +where e.mgr = s.empno and
 + s.deptno = d.deptno
 +group by s.empno, s.ename, d.dname;
 +
 +    id sef nume sef   nr angajati dept                  min        max        avg
 +---------- ---------- ----------- -------------- ---------- ---------- ----------
 +      7782 CLARK                1 ACCOUNTING ​          ​1300 ​      ​1300 ​      1300
 +      7839 KING                 3 ACCOUNTING ​          ​2450 ​      2975 2758.33333
 +      7566 JONES                2 RESEARCH ​            ​3000 ​      ​3000 ​      3000
 +      7788 SCOTT                1 RESEARCH ​            ​1100 ​      ​1100 ​      1100
 +      7902 FORD                 1 RESEARCH ​             800        800        800
 +      7698 BLAKE                5 SALES                 ​950 ​      ​1600 ​      1310
 +
 +</​code>​
 +</​hidden>​
  
 <color red>Ex 2. </​color>​ Să se facă o listă cu: <color red>Ex 2. </​color>​ Să se facă o listă cu:
Line 237: Line 270:
  
  
-====Bibliografie==== +
-  - **Alexandru Boicea** -// Oracle SQL SQL Plus//, Editura Printech ​+
bd/laboratoare/07.1554298882.txt.gz · Last modified: 2019/04/03 16:41 by maria_luiza.serban
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