Ex1. Să se creeze o copie a tabelului emp. Folosiți ambele metode.
Observații:
Metoda I
Metoda II
O cerere SQL poate fi executată folosind anumiți parametri introduși de la tastatură. Acești parametri se mai numesc variabile substituite.
O astfel de variabilă se definește folosind &nume_variabila și este un parametru care se introduce de la tastatură în timpul execuției comenzii în care este utilizat.
Ex. 1. 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ă.
Rezultatul execuției exercițiului 1:
Pentru a introduce de la tastatură valori de tip string, sau dată, acestea trebuie să fie introduse cu apostrof; Pentru a evita acest lucru, se poate introduce variabila cu apostrof direct în comandă.
Ex. 2. 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ă.
Rezultatul execuției exercițiului 2:
Este posibil să fie introduse de la tastatură o expresie, numele unei coloane sau chiar numele unei tabele în timpul execuției.
Ex. 3. 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.
Rezultatul execuției exercițiului 3:
Ex. 4. 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).
Rezultatul execuției exercițiului 4:
Pentru a reseta o variabilă dată cu dublu ampersant se va utiliza comanda UNDEFINE nume_variabila. Pentru exercițiul 4, pentru a reseta variabila venit_lunar, se va da comanda:
UNDEFINE venit_lunar
Sunt variabile numerice (1-9) care sunt definite de sistem și funcționează similar cu variabilele cu dublu ampersand.
Avantajul folosirii acestor variabile este că pot fi apelate direct dintr-un fișier cu comenzi, fără a fi definite in prealabil.
Ex. 5. Să se selecteze id-ul angajatului, numele, funcția și data angajării pentru toți angajații care au aceeași funcție și au venit în firmă după o anumită dată. Funcția și data se vor da de la tastatură în momentul când se execută fișierul de comenzi.
Se va scrie următorul select înr-un fișier:
Execuția fișierului:
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ă.
ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE]
Ex. 6. 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)
Execuția fișierul:
Ex. 7. Să se adauge un nou angajat. La introducerea salariului caracterele să fie ascunse.
Execuția fișierului:
O variabilă poate să fie setată folosind comanda DEFINE, în acest caz promptul nu va mai cere să se introducă o valoare pentru respectiva variabilă. O astfel de variabilă rămâne setată pe tot parcursul sesiunii, pană când va fi resetată folosindu-se comanda UNDEFINE.
Ex. 8. Să se calculeze o primă de 15% pentru toți angajații din departamentul 20.
Rezultatul execuției exercițiului 8:
Pentru a vedea setările tuturor variabilelor active, folosiți comanda DEFINE.
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.