0% ont trouvé ce document utile (0 vote)
8 vues5 pages

Cours SQL Oracle SELECT

La commande SELECT permet d'extraire des données de tables avec une syntaxe flexible incluant des options pour filtrer, trier et regrouper les résultats. Des fonctions intégrées et d'agrégation sont disponibles pour manipuler et analyser les données, ainsi que des jointures et des sous-requêtes pour combiner des informations de plusieurs tables. Les motifs de format de date et les fonctions de chaînes en Oracle facilitent la présentation et la transformation des données.

Transféré par

Ouni Lawa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues5 pages

Cours SQL Oracle SELECT

La commande SELECT permet d'extraire des données de tables avec une syntaxe flexible incluant des options pour filtrer, trier et regrouper les résultats. Des fonctions intégrées et d'agrégation sont disponibles pour manipuler et analyser les données, ainsi que des jointures et des sous-requêtes pour combiner des informations de plusieurs tables. Les motifs de format de date et les fonctions de chaînes en Oracle facilitent la présentation et la transformation des données.

Transféré par

Ouni Lawa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

La commande SELECT

1. Introduction à la commande SELECT


La commande SELECT permet d’extraire des données depuis une ou plusieurs tables.

Syntaxe générale :

SELECT [DISTINCT] liste_colonnes


FROM table
[WHERE condition]
[GROUP BY colonnes]
[HAVING condition]
[ORDER BY colonnes [ASC|DESC]];

2. Sélection de données de base


Afficher toutes les colonnes :

SELECT * FROM employes;

Sélectionner des colonnes spécifiques :

SELECT nom, prenom FROM employes;

Utiliser un alias :

SELECT nom AS NomEmploye FROM employes;

Concaténation de colonnes :

SELECT nom || ' ' || prenom AS NomComplet FROM employes;

3. Filtrage des données avec WHERE


Filtrer avec conditions :

SELECT * FROM employes WHERE salaire > 2000;

Utiliser AND / OR :

SELECT * FROM employes WHERE poste = 'DEV' AND salaire > 2500;

Utiliser BETWEEN :

SELECT * FROM employes WHERE salaire BETWEEN 2000 AND 3000;

Recherche avec LIKE :


SELECT * FROM employes WHERE nom LIKE 'S%';

Valeurs NULL :

SELECT * FROM employes WHERE commission IS NULL;

4. Tri des résultats avec ORDER BY


Trier par salaire croissant :

SELECT nom, salaire FROM employes ORDER BY salaire ASC;

Trier par salaire décroissant :

SELECT nom, salaire FROM employes ORDER BY salaire DESC;

5. Fonctions intégrées
Fonctions numériques :

SELECT ROUND(salaire, 0), TRUNC(salaire, -2) FROM employes;

Fonctions de caractères :

SELECT UPPER(nom), LOWER(prenom), LENGTH(nom) FROM employes;

Fonctions de dates :

SELECT SYSDATE, ADD_MONTHS(SYSDATE, 3) FROM dual;

6. Fonctions d’agrégation
Obtenir des statistiques :

SELECT COUNT(*), AVG(salaire), MAX(salaire), MIN(salaire) FROM


employes;

Regrouper avec GROUP BY :

SELECT poste, AVG(salaire) FROM employes GROUP BY poste;

Filtrer les groupes avec HAVING :

SELECT poste, AVG(salaire) FROM employes GROUP BY poste HAVING


AVG(salaire) > 2500;
7. Les motifs de format de date en Oracle
En Oracle, les dates peuvent être affichées ou converties à l’aide de la fonction TO_CHAR
avec des motifs de format (date format models).
Quelques motifs les plus utilisés :

• YYYY : année sur 4 chiffres (ex. 2025)

• YY : année sur 2 chiffres (ex. 25)

• MM : mois numérique (01 à 12)

• MON : abréviation du mois (ex. JAN, FEV)

• MONTH : nom complet du mois (ex. JANVIER)

• DD : jour du mois (01 à 31)

• DY : abréviation du jour de la semaine (ex. LUN, MAR)

• DAY : nom complet du jour (ex. LUNDI)

• HH24 : heure en format 24h

• MI : minutes

• SS : secondes

Exemple de requête : extraire l’année d’une date

Supposons qu’on ait une table employes avec une colonne date_embauche.
Pour afficher uniquement l’année :

SELECT nom, TO_CHAR(date_embauche, 'YYYY') AS Annee_Embauche

FROM employes;

8. Les fonctions de chaînes en Oracle


Oracle met à disposition plusieurs fonctions de chaînes de caractères permettant de
manipuler, transformer ou analyser du texte. Elles sont très utilisées pour formater les
résultats d’une requête ou effectuer des recherches plus précises.

Parmi les plus courantes :

• UPPER(chaine) : transforme le texte en majuscules.

• LOWER(chaine) : transforme le texte en minuscules.


• INITCAP(chaine) : met en majuscule la première lettre de chaque mot.

• LENGTH(chaine) : retourne le nombre de caractères.

• SUBSTR(chaine, debut, longueur) : extrait une sous-chaîne.

• INSTR(chaine, motif) : retourne la position d’un motif dans une chaîne.

• CONCAT(chaine1, chaine2) ou || : concatène deux chaînes.

• TRIM(chaine), LTRIM, RTRIM : suppriment les espaces (ou caractères spécifiques)


à gauche, à droite, ou des deux côtés.

• REPLACE(chaine, ancien, nouveau) : remplace un motif par un autre.

Exemple pratique

SELECT nom,

UPPER(nom) AS NomMaj,

SUBSTR(nom, 1, 3) AS DebutNom,

LENGTH(nom) AS TailleNom

FROM employes;

9. Jointures
Jointure interne (INNER JOIN) :

SELECT e.nom, d.nom_dept FROM employes e INNER JOIN departements d ON


e.id_dept = d.id_dept;

Jointure externe (LEFT JOIN) :

SELECT e.nom, d.nom_dept FROM employes e LEFT JOIN departements d ON


e.id_dept = d.id_dept;

10. Sous-requêtes
Sous-requête dans WHERE :

SELECT nom FROM employes WHERE salaire > (SELECT AVG(salaire) FROM
employes);

Sous-requête corrélée :
SELECT nom FROM employes e WHERE salaire > (SELECT AVG(salaire) FROM
employes WHERE id_dept = e.id_dept);

11. Opérateurs ensemblistes


UNION :

SELECT nom FROM employes UNION SELECT nom FROM anciens_employes;

INTERSECT :

SELECT nom FROM employes INTERSECT SELECT nom FROM anciens_employes;

MINUS :

SELECT nom FROM employes MINUS SELECT nom FROM anciens_employes;

Vous aimerez peut-être aussi