Sintaxa este următoarea:
SELECT [table_1.]expr_1, [table_1.]expr_2, ..., [table_1.]expr_n FROM table_1 WHERE conditions [GROUP BY expression_group] HAVING expressions_having operator (SELECT expressions_nested_query FROM table_nested_query [WHERE conditions_where_nq] [[GROUP BY expressions_group_nq] [HAVING conditions_having_nq]]) [ORDER BY expression_order]
Ex. 1. Să se determine care departament are cei mai mulți angajați pe aceeași funcție.
Ex. 2. Să se determine angajații care au comisionul maxim pentru un departament introdus de la tastatură.
Ex. 3. Să se afle ce angajat are salariul maxim în firmă
Aceste subcereri pot fi necorelate sau corelate dar trebuie să returneze întotdeauna o singură valoare. Sintaxa este următoarea:
SELECT expressions_select, (SELECT expressions_nested_query FROM table_nested_query [WHERE conditions_where_nq] [[GROUP BY expressions_group_nq] [HAVING conditions_having_nq]]) alias FROM TABLE [WHERE conditions_where] [[GROUP BY expressions_group] [HAVING conditions_having]] [ORDER BY expressions_order]
Ex. 4. Să se afișeze șefii angajaților din departamentul 20.
Sintaxa este următoarea:
SELECT expressions_select, FROM TABLE [WHERE conditions_where] [[GROUP BY expressions_group] [HAVING conditions_having]] ORDER BY (SELECT expressions_nested_query FROM table_nested_query [WHERE conditions_where_nq] [[GROUP BY expressions_group_nq] [HAVING conditions_having_nq]]) [ACS|DESC]
Ex. 5. Să se facă o listă cu angajații din departamentele 10 și 20, ordonați descrescător după numărul de angajați din fiecare departament.
Ex. 6. Să se afle care sunt angajații care au salariul mai mare decât salariul cel mai mic pentru funcția de SALESMAN.
Ex. 7. Să se afle care sunt angajații care au salariul mai mare decât salariul cel mai mare pentru funcția de SALESMAN.
Operatorul [NOT] EXISTS este folosit adesea în subcereri corelate și testează dacă subcererea returnează cel puțin o valoare, pentru EXISTS, sau niciuna, în cazul lui NOT EXISTS, returnând TRUE sau FALSE.
Ex. 8. Să se determine departamentele care au cel puțin un angajat.
Ex. 9. Să se determine care angajați nu au șef.
Ex 10. Dacă ex. 9 se rescrie astfel încât cererea să folosească NOT IN în loc de NOT EXISTS, atunci cererea nu va returna nimic.
1. Să se calculeze și afișeze funcția și venitul mediu lunar pentru fiecare funcție. Să se folosească o subcerere în clauza select.
2. Să se facă o listă cu funcție, gradul salarial, salariul mediu angajați calculat după funcție și grad unde salariul mediu angajați este mai mare sau egal cu salariu mediu pentru grad.
3. Să se selecteze angajatul/angajații cu cel mai mare venit lunar din departamentul în care lucrează. Afișați
Ordonați după numele departamentului.
Să se rezolve fără a folosi funcții agregate (de grup).
Rezolvati in 3 metode, folosind: