This is an old revision of the document!
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ă.
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.