SQL – SELECT
Interrogation des données
Table des matières
1 Instruction SELECT 2
1.1 Sélection de colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Alias de colonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Filtrer les lignes (WHERE) 2
3 Tri des résultats (ORDER BY) 3
4 UNION 3
5 UNION ALL 4
6 Sous-requêtes 4
7 Sous-requêtes monolignes 4
8 Sous-requêtes multilignes 5
9 Fonctions de groupe 5
10 GROUP BY 6
11 HAVING 6
12 Fonctions analytiques 6
12.1 ROW_NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
12.2 RANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
12.3 DENSE_RANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
13 Fonctions monolignes 7
13.1 Fonctions de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
13.2 Fonctions numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
13.3 Fonctions de dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
14 Fonctions de conversion 7
15 Fonctions conditionnelles 8
15.1 NVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
15.2 CASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1
SQL – SELECT 2
1 Instruction SELECT
Permet d’extraire des données d’une table.
Syntaxe
SELECT [ DISTINCT ] colonne1 , colonne2
FROM table ;
— SELECT : colonnes à afficher
— DISTINCT : supprime les doublons
— FROM : table source
Exemple
SELECT * FROM employees ;
1.1 Sélection de colonnes
Exemple
SELECT first_name , salary
FROM employees ;
1.2 Alias de colonne
Exemple
SELECT first_name AS nom ,
salary AS salaire
FROM employees ;
2 Filtrer les lignes (WHERE)
Syntaxe
SELECT colonnes
FROM table
WHERE condition ;
SQL – SELECT 3
Exemple
SELECT first_name , salary
FROM employees
WHERE salary > 5000;
Exemple
SELECT *
FROM employees
WHERE department_id = 10;
3 Tri des résultats (ORDER BY)
Syntaxe
SELECT colonnes
FROM table
ORDER BY colonne ASC | DESC ;
Exemple
SELECT first_name , salary
FROM employees
ORDER BY salary DESC ;
4 UNION
Combine les résultats de deux requêtes.
Syntaxe
SELECT col1 , col2
FROM table1
UNION
SELECT col1 , col2
FROM table2 ;
SQL – SELECT 4
Remarque
Les deux requêtes doivent avoir :
— le même nombre de colonnes
— les mêmes types de données
Exemple
SELECT employee_id , job_id
FROM employees
WHERE job_id = ’ AC_MGR ’
UNION
SELECT employee_id , job_id
FROM employees
WHERE job_id = ’ AD_VP ’;
5 UNION ALL
Même fonctionnement que UNION mais sans suppression des doublons.
Exemple
SELECT employee_id , job_id
FROM employees
UNION ALL
SELECT employee_id , job_id
FROM managers ;
6 Sous-requêtes
Une sous-requête est une requête SQL imbriquée dans une autre.
7 Sous-requêtes monolignes
Renvoient une seule valeur.
SQL – SELECT 5
Exemple
SELECT last_name , job_id , salary
FROM employees
WHERE salary =
(
SELECT MAX ( salary )
FROM employees
);
8 Sous-requêtes multilignes
Renvoient plusieurs lignes.
Utilisent :
— IN
— ANY
— ALL
Exemple
SELECT employee_id , last_name
FROM employees
WHERE department_id IN
(
SELECT department_id
FROM departments
WHERE location_id = 1700
);
9 Fonctions de groupe
Fonctions appliquées à plusieurs lignes.
— AVG()
— COUNT()
— MAX()
— MIN()
— SUM()
Exemple
SELECT AVG ( salary )
FROM employees ;
SQL – SELECT 6
10 GROUP BY
Permet de regrouper les lignes.
Exemple
SELECT department_id , AVG ( salary )
FROM employees
GROUP BY department_id ;
11 HAVING
Filtre les groupes.
Exemple
SELECT department_id , MIN ( salary )
FROM employees
GROUP BY department_id
HAVING MIN ( salary ) > 5000;
12 Fonctions analytiques
Permettent de calculer des valeurs sur un ensemble de lignes.
12.1 ROW_NUMBER
Exemple
SELECT employee_id ,
ROW_NUMBER () OVER ( ORDER BY salary DESC )
FROM employees ;
12.2 RANK
Exemple
SELECT employee_id ,
RANK () OVER ( ORDER BY salary DESC )
FROM employees ;
SQL – SELECT 7
12.3 DENSE_RANK
Exemple
SELECT employee_id ,
DENSE_RANK () OVER ( ORDER BY salary DESC )
FROM employees ;
13 Fonctions monolignes
13.1 Fonctions de caractères
Exemple
SELECT LOWER ( first_name ) ,
UPPER ( last_name )
FROM employees ;
13.2 Fonctions numériques
Exemple
SELECT salary ,
ROUND ( salary ,2) ,
ABS ( -10)
FROM employees ;
13.3 Fonctions de dates
Exemple
SELECT SYSDATE ,
ADD_MONTHS ( SYSDATE ,2)
FROM dual ;
14 Fonctions de conversion
Exemple
SELECT TO_CHAR ( salary , ’ 9999 ’)
FROM employees ;
SQL – SELECT 8
15 Fonctions conditionnelles
15.1 NVL
Exemple
SELECT NVL ( commission_pct ,0)
FROM employees ;
15.2 CASE
Exemple
SELECT first_name ,
CASE department_id
WHEN 10 THEN ’ ACCOUNTING ’
WHEN 20 THEN ’ RESEARCH ’
ELSE ’ OTHER ’
END
FROM employees ;