This is an old revision of the document!
Conținut
Ex1. Să se creeze o copie a tabelului emp. Folosiți ambele metode.
Observații:
{{**Metoda I** * 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. * Unordered List ItemDaca copia nu respecta ordinea coloanelor din tabelul original trebuie sa se specifice coloanele - atat in INSERT cat si in SELECT. }} {{**Metoda II** * Unordered List ItemColoanele din copie vor pastra aveleasi nume ca si coloanele din tabelul original. }} {{colend}} * Prima metoda permite schimbarea numelor de coloana, a doua metoda nu permite acest lucru; * Pentru metoda I, dacă copia nu are același număr de coloane atunci trebuie să se specifice coloanele în care se vor insera date; * Pentru metoda I, dacă copia nu respectă ordinea coloanelor din tabelul original, atunci trebuie să se specifice coloanele, atât pentru Insert cât și pentru Select. * Pentru metoda II, coloanele vor avea același nume ca și coloanele din tabela originală.
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ă.
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ă)
Dați cel puțin 4 metode de rezolvare.