Differences

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

Link to this comparison view

bd:laboratoare:03 [2019/03/02 15:21]
iulia.radulescu
bd:laboratoare:03 [2021/03/16 12:38] (current)
ciprian.truica [Exerciții individuale]
Line 1: Line 1:
 ===== Laborator 03 - Cereri cu variabile substituite în SQL*Plus===== ===== Laborator 03 - Cereri cu variabile substituite în SQL*Plus=====
-**Conținut**+ 
 +==== Obiective ==== 
   * Crearea unei copii a unui tabel   * Crearea unei copii a unui tabel
   * Variabile substituite   * Variabile substituite
Line 9: Line 11:
     * Variabile definite cu DEFINE și resetate cu UNDEFINE     * Variabile definite cu DEFINE și resetate cu UNDEFINE
   * Exerciții   * Exerciții
 +==== Materiale ajutătoare ====
 +
 +[[bd:​resurse:​tables|Resurse BD]]
 +
 +{{:​bd:​laboratoare:​laborator03.pdf|Laborator 3}}
 +
  
 ==== Crearea unei copii a unui tabel ==== ==== Crearea unei copii a unui tabel ====
Line 20: Line 28:
 Ex1. Să se creeze o copie a tabelului **emp**. Folosiți ambele metode. Ex1. Să se creeze o copie a tabelului **emp**. Folosiți ambele metode.
  
-{{:​bd:​laboratoare:​t4.png?​nolink&​400}}+{{ :​bd:​laboratoare:​create_methods.png?​nolink&​400 }}
  
 **Observații:​** **Observații:​**
Line 26: Line 34:
   * Daca cererea SELECT contine o expresie sau functie trebuie sa i se atribuie un alias valid.   * Daca cererea SELECT contine o expresie sau functie trebuie sa i se atribuie un alias valid.
  
-Metoda I+**Metoda I**
   * Permite schimbarea numelor coloanelor.   * Permite schimbarea numelor coloanelor.
-  * Unordered List ItemDaca ​copia nu are definit acelasi numar de coloane ca tabelul original trebuie sa se specifice in SELECT coloanele din care se vor insera date. +  * Daca copia nu are definit acelasi numar de coloane ca tabelul original trebuie sa se specifice in SELECT coloanele din care se vor insera date. 
-  * Unordered List ItemDaca ​copia nu respecta ordinea coloanelor din tabelul original trebuie sa se specifice coloanele - atat in INSERT cat si in SELECT.+  * Daca copia nu respecta ordinea coloanelor din tabelul original trebuie sa se specifice coloanele - atat in INSERT cat si in SELECT.
  
-Metoda II +**Metoda II** 
-    * Unordered List ItemColoanele ​din copie vor pastra aveleasi nume ca si coloanele din tabelul original.+    * Coloanele ​din copie vor pastra aveleasi nume ca si coloanele din tabelul original.
  
  
Line 47: Line 55:
 <color red>Ex. 1.</​color>​ Să se selecteze id_ang, nume, functie și salariu pentru angajatii care au același sef. Id-ul șefului se va introduce de la tastatură. <color red>Ex. 1.</​color>​ Să se selecteze id_ang, nume, functie și salariu pentru angajatii care au același sef. Id-ul șefului se va introduce de la tastatură.
  
-{{ :​bd:​laboratoare:​lab03.ex1a.png |}}+{{ :​bd:​laboratoare:​lab3_1_new.png |}}
  
 Rezultatul execuției exercițiului 1: Rezultatul execuției exercițiului 1:
Line 61: Line 69:
 <color red>Ex. 2.</​color>​ Să se selecteze numele, funcția și salariu pentru angajații care au aceași funcție. Funcția va fi introdusa ​ de la tastatură. <color red>Ex. 2.</​color>​ Să se selecteze numele, funcția și salariu pentru angajații care au aceași funcție. Funcția va fi introdusa ​ de la tastatură.
  
-{{ :​bd:​laboratoare:​lab03.ex2a.png |}}+{{ :​bd:​laboratoare:​lab3_2_new.png |}}
  
 Rezultatul execuției exercițiului 2: Rezultatul execuției exercițiului 2:
Line 75: Line 83:
 <color red>Ex. 3.</​color>​ Să se selecteze numele, funcția și salariul anual pentru toți angajații din același departament. Salariul anual este calculat după formula 12*salariu. Se va introduce de la tastatură funcția pentru salariul anual, ​ numele tabelului, numele coloanei pe care se pune condiția și id-ul departamentului. <color red>Ex. 3.</​color>​ Să se selecteze numele, funcția și salariul anual pentru toți angajații din același departament. Salariul anual este calculat după formula 12*salariu. Se va introduce de la tastatură funcția pentru salariul anual, ​ numele tabelului, numele coloanei pe care se pune condiția și id-ul departamentului.
  
-{{ :​bd:​laboratoare:​lab03.ex3a.png |}}+{{ :​bd:​laboratoare:​lab3_3_new.png |}}
  
 Rezultatul execuției exercițiului 3: Rezultatul execuției exercițiului 3:
Line 89: Line 97:
 <color red>Ex. 4.</​color>​ Să se selecteze numele, funcția și venitul lunar pentru toți angajații care au venitul lunar mai mare de 2000. Venitul lunar este o funcție care are formula salariu + nvl(comision,​ 0). <color red>Ex. 4.</​color>​ Să se selecteze numele, funcția și venitul lunar pentru toți angajații care au venitul lunar mai mare de 2000. Venitul lunar este o funcție care are formula salariu + nvl(comision,​ 0).
  
-{{ :​bd:​laboratoare:​lab03.ex4a.png |}}+{{ :​bd:​laboratoare:​lab3_4_new.png |}}
  
 Rezultatul execuției exercițiului 4: Rezultatul execuției exercițiului 4:
Line 111: Line 119:
 Se va scrie următorul select înr-un fișier: Se va scrie următorul select înr-un fișier:
  
-{{ :​bd:​laboratoare:​lab03.ex5a.png |}}+{{ :​bd:​laboratoare:​lab3_5_new.png |}}
  
 Execuția fișierului:​ Execuția fișierului:​
Line 125: Line 133:
 Când definim o variabilă cu ampersand, promptul va fi numele variabilei; Când definim o variabilă cu ampersand, promptul va fi numele variabilei;
 Folosind comanda ACCEPT, se poate redefini promptul și chiar se pot ascunde caracterele introduse de la tastatură. Folosind comanda ACCEPT, se poate redefini promptul și chiar se pot ascunde caracterele introduse de la tastatură.
 +
 +<​note>​
 +Sintaxa completă pentru comanda ACCEPT [[https://​docs.oracle.com/​en/​database/​oracle/​oracle-database/​19/​sqpug/​ACCEPT.html#​GUID-5D07E526-202B-429B-9E0C-005D1E37BBAB|Link]]
 +<​code>​
 +ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE]
 +</​code>​
 +</​note>​
 +
  
 <color red>Ex. 6.</​color>​ Să se selecteze numele, salariul și funcția angajaților care au aceeași funcție. Funcția se va da de la tastatură. <color red>Ex. 6.</​color>​ Să se selecteze numele, salariul și funcția angajaților care au aceeași funcție. Funcția se va da de la tastatură.
 Se vor scrie următoarele comenzi într-un fisier (de exemplu ex6.sql) Se vor scrie următoarele comenzi într-un fisier (de exemplu ex6.sql)
  
-{{ :​bd:​laboratoare:​lab03.ex6a.png |}}+{{ :​bd:​laboratoare:​lab3_6_new.png |}}
  
 Execuția fișierul: Execuția fișierul:
Line 138: Line 154:
 <color red>Ex. 7.</​color>​ Să se adauge un nou angajat. La introducerea salariului caracterele să fie ascunse. <color red>Ex. 7.</​color>​ Să se adauge un nou angajat. La introducerea salariului caracterele să fie ascunse.
  
-{{ :​bd:​laboratoare:​lab03.ex7a.png |}}+{{ :​bd:​laboratoare:​lab3_7_new.png |}}
  
 Execuția fișierului:​ Execuția fișierului:​
Line 149: Line 165:
 <color red>Ex. 8.</​color>​ Să se calculeze o primă de 15% pentru toți angajații din departamentul 20. <color red>Ex. 8.</​color>​ Să se calculeze o primă de 15% pentru toți angajații din departamentul 20.
  
-{{ :​bd:​laboratoare:​lab03.ex8a.png |}}+{{ :​bd:​laboratoare:​lab3_8_new.png |}}
  
 Rezultatul execuției exercițiului 8: Rezultatul execuției exercițiului 8:
Line 160: Line 176:
 ====Exerciții individuale==== ====Exerciții individuale====
  
-1. Să se scrie o comandă SQL care listează toți angajații dintr-un departament (introdus ca parametru de la tastatură),​ care au venitul anual peste un venit mediu anual (introdus tot de la tastatură)+1. Să se scrie o comandă SQL care listează toți angajații dintr-un departament (introdus ca parametru de la tastatură),​ care au venitul anual peste un venit mediu anual (introdus tot de la tastatură)
 +Să se afișeze numele angajatului,​ id-ul de departamentul,​ venitul anual.
  
 Dați cel puțin 4 metode de rezolvare. Dați cel puțin 4 metode de rezolvare.
  
-====Bibliografie==== +
-  - **Alexandru Boicea** -// Oracle SQL SQL Plus//, Editura Printech+
bd/laboratoare/03.1551532907.txt.gz · Last modified: 2019/03/02 15:21 by iulia.radulescu
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