Vous êtes sur la page 1sur 6

Documentation SQL

Ordre Select :

Syntaxe : SELECT Attribut_1 as alias_ 1 …. From table.

 On peut mettre * pour sélectionner tous les attributs


 On peut utiliser des opérateurs : *, /, +, -

Opérateurs de concaténation :

Syntaxe : SELECT concat (Attribut_1, Attribut_2) FROM table;

Permet l’affichage de deux colonnes ou plus dans une seule colonne.

Elimination des doublons :

Syntaxe : SELECT DISTINCT liste_attributs FROM table;

Clause WHERE :

Syntaxe: SELECT liste_attributs FROM table WHERE condition(s);

Opérateurs de comparaison :

 Opérateur BETWEEN : SELECT nom, age FROM etudiant WHERE age BETWEEN 20 AND 22;
 Opérateur LIKE : SELECT nom, age FROM etudiant WHERE nom LIKE ’moha%’ ;
o % Représente une série de caractères
o _ Représente un caractère quelconque
 Opérateur IN : SELECT nom, age FROM etudiant WHERE age IN(20, 21, 22);
 Opérateur IS NULL : SELECT nom, age FROM etudiant WHERE adresse IS NULL;
 Opérateur AND : SELECT nom, prenom, age FROM etudiant WHERE prénom=‘Mohamed’
AND age=20;
 Opérateur OR : SELECT nom, prenom, age FROM etudiant WHERE prénom=‘mohamed’ OR
age=20;
 Opérateur NOT: SELECT nom, prenom, age FROM etudiant WHERE age NOT IN (20,21,22);
 Ordonner la clause SELECT : SELECT nom, prenom, age FROM etudiant ORDER BY age;
o Possibilité de trier sur plusieurs colonnes : SELECT nom, prénom, age FROM etudiant
ORDER BY prénom, age DESC;

Fonctions SQL :

INITCAP(col | expr) : convetit la premiere lettre e chaque mot d’une chaine en Maj et les autres on
Min.

LOWER( col | expr) : Convertit une chaîne de caractères en minuscule .

UPPER( col | expr) : Convertit une chaîne de caractères en minuscule .

LENGHT(col | expr) : Permet de récupérer le nombre de caractères d’une chaine.

SUBSTR(col | exp) : Permet d'extraire une chaîne de caractères de la chaîne de caractère col(ou expr)
sur une longueur n à partir de la position m.

INSTR(col | expr, C) : Permet de récupérer la position de la première occurrence du caractère C dans


la chaîne de caractères col (ou expr) .
LPAD(col | expr, n,’String’) : Permet de compléter une chaîne de caractère jusqu’à ce qu’elle atteigne
la taille souhaitée (n), en ajoutant des caractères à la début de cette chaîne.

RPAD(col | expr,n,’String’) : Permet de compléter une chaîne de caractère jusqu’à ce qu’elle atteigne
la taille souhaitée (n), en ajoutant des caractères à la fin de cette chaîne.

ROUND(col| expr,n) : Permet d'arrondir une valeur de col (ou expr) à n décimales près.

TRUNC(col | expr,n) : Permet de tronquer la valeur de col (ou expr) à n décimales près.

MOD(m,n) : Permet de retourner le reste de MOD(3,2) 1 la valeur de m divisé par n.

Fonctions des dates :

Fonction SYSDATE :

 Permet de retourner la date et l’heure du système.


 par défaut le résultat est sous la forme DD-MON-YY.
 date + nombre date Ajoute un nombre de jours à une date.
 date - nombre date Soustrait un nombre de jours à une date.
 date – date Nombre de jours Soustrait une date d’une autre date.
 date + nombre/24 date Ajoute un nombre d’heures à une date

LAST_DAY(date) : Trouve la date du dernier jour du mois qui contient date.

ROUND(date,’format’) : Retourne la date arrondie à l'unité spécifiée par format. Si le format est omis,
date est arrondie au jour le plus près.

TRUNC(date ,’format’) : Retourne la date tronquée à l'unité spécifiée par format. Si le format est
omis, date est tronquée au jour le plus près.

MONTHS_BETWEEN (date1,date2) : Retourne le nombre de mois séparant deux dates.

ADD_MONTHS(date, n) : Ajoute n mois à une date. n doit être un entier.

NEXT_DAY(date, 'day of week'): Trouve la date du prochain jour de la semaine (day of week) suivant
date. La valeur de “day of week” doit être un nombre représentant le jour ou une chaine.

Fonctions de conversion :

 Le serveur Oracle peut automatiquement convertir les types de données suivants :


o DE A VARCHAR2 OU CHAR NUMBER
o VARCHAR2 OU CHAR DATE
o NUMBER VARCHAR2
o DATE VARCHAR2
 Les trois principales fonctions de conversion explicite :
o TO_CHAR(number|date, ‘format’) : Convertit un nombre ou une date en une chaîne
de caractères.
o TO_NUMBER (char ,‘format’) Convertit une chaîne de caractères en un nombre.
o TO_DATE (char ,’format’) Convertit une chaîne de caractères en une date .

La fonction NVL :

 Retourne expr2 si expr1 est NULL, sinon retourne expr1.


 Convertit expr1 susceptible d’être nulle en une valeur réelle expr.
La fonction NVL2 :

 Retourne expr3 si expr1 est NULL sinon retourne expr2.


 Convertit expr1 susceptible d’être nulle en une valeur réelle expr3 ou expr2.

La fonction NULLIF : Compare deux expressions, si elles sont identiques la fonction retourne NULL,
dans le cas contraire la fonction retourne la première expression.

La fonction: COALESCE :Retourne la première expression non nulle rencontré dans la liste.

Expression: CASE :

 Permet d’utiliser la structure de IF-THEN-ELSE sans recourir à l’utilisation des procédures.


 Syntaxe 1:
o CASE WHEN condition1 THEN expression1
o WHEN condition2 THEN expression2
o ...
o ELSE expression_défaut
o END
 Exemple :
o CASE
o WHEN (poste = 'Président') THEN 1
o WHEN (poste = 'Directeur') THEN 2
o ELSE 3
o END

Jointures de tables :

Produit cartésien :

 Une condition de jointure est omise.


 Une condition de jointure est invalide.
 Tous les enregistrements de la première table sont liés à tous les enregistrements de la
seconde table.
 Syntaxe: SELECT * FROM table1 [Alias1 ], ..., tablen [Aliasn ],

Types de jointures :

 Equi-jointure:
o Utilisée pour afficher des données provenant de plusieurs tables lorsqu’une valeur
dans une colonne d’une table correspond directement à une valeur d’une autre
colonne dans une autre table.
o Les noms des colonnes doivent être qualifiés avec le nom de la table ou l’alias de la
table à laquelle elles appartiennent afin d’éviter toute ambiguïté.
o Syntaxe: La condition de jointure doit être réalisée dans la clause WHERE. SELECT
table1.colonne, table2.colonne, table3.colonne FROM table1, table2, table3 WHERE
table1.colonne1 = table2.colonne2 [AND table2.colonne2=table3.colonne3];
 Non equi-jointure :
o Une condition de non équi-jointure est utilisée lorsque deux tables n’ont pas de
colonnes qui correspondent directement.
o Exemple: SELECT e.nom, e.salaire, g.id_grade FROM employe e, grade g WHERE
e.salaire BETWEEN g.salaire_inf AND g.salaire_sup;
 Jointure externe :
o La condition (outer join) est utilisée pour afficher tous les enregistrements incluant
ceux qui ne respectent pas la condition de jointure .
o L’opérateur de jointure externe est le signe plus (+).
o Syntaxe: SELECT table1.column, table2.column FROM table1, table2 WHERE table1.
column(+) = table2.column ;( Cette requête affiche tous les enregistrements de la
colonne de table1 même s’ils ne respectent pas la condition de jointure)
 Auto-Jointure :
o Une condition d’auto-jointure permet de faire une jointure sur deux colonnes liées
appartenant à la même table.
o Syntaxe: SELECT alias1.column, alias2.column FROM table1 alias1, table1 alias2
WHERE alais1.column = alias2.column ;
o Pour simuler deux tables dans la clause FROM on utilise les alias.
 Jointure CROSS JOIN :
o Une condition de jointure croisée permet de retourner chaque ligne d’une table avec
chaque ligne d’une autre table.
o Identique au produit cartésien de deux tables.
o Syntaxe: SELECT table1.colonne, table2.colonne FROM table1 CROSS JOIN table2;
o Exemple 1: SELECT e.enom, d.dnom FROM employé e CROSS JOIN département d;
 Jointure NATURAL JOIN :
o La jointure naturelle se base sur toutes les colonnes de deux tables qui possèdent le
même nom et sélectionne les lignes qui possèdent les mêmes valeurs.
o Syntaxe: SELECT table1.colonne1, table2.colonne2 FROM table1 NATURAL JOIN table
2;
 Jointure avec la clause USING :
o Certaines colonnes possèdent les mêmes noms, mais les types de données ne
correspondent pas;
o La clause USING est utilisée pour spécifier explicitement une colonne qui sera utilisé
pour faire la jointure.
o Syntaxe: SELECT table1.col, table2.col FROM table1 JOIN table 2; USING
(col_similaire);
 Jointure avec la clause ON :
o Avec la clause ON, on spécifie explicitement la condition de la jointure;
o Syntaxe: SELECT table1.col, table2.col FROM table1 JOIN table 2
 Triple jointure avec la clause ON (3) :
o Permet de relier trois tables.
o L’utilisation de cette clause est identique à l’utilisation des clauses WHERE et AND
lorsqu’on relie plusieurs tables.
o Syntaxe: SELECT table1.col1, table2.col2, table3.col3 FROM table1 JOIN table 2 On
(table1.col_similaire= table2.col_similaire) JOIN table 3 On (table2.col_similaire=
table3.col_similaire);
 Jointure: RIGHT OUTER JOIN :
o Alternative de la jointure externe avec le signe plus (+) placé à droite dans la clause
WHERE.
o Syntaxe: SELECT table1.col1, table2.col2 FROM table1 RIGHT OUTER JOIN table2 ON
(table1.col_similaire= table2.col_similaire); / SELECT table1.col1, table2.col2 FROM
table1, table2 WHERE table1. col1 = table2.col2 (+) ;

 Jointure FULL OUTER JOIN :


o Retrouve toutes les lignes de la table1 même s’il n’y a pas de correspondance dans la
table2, et vice versa.
o Syntaxe: SELECT table1.col1, table2.col2 FROM table1 FULL OUTER JOIN table2 ON
(table1.col_similaire= table2.col_similaire)

Fonctions de groupe :

 Les fonctions de groupe sont utilisées pour afficher des informations sur un groupe
d’enregistrements.
 Syntaxe: SELECT [colonne,] fonction_groupe(argument) FROM table [ WHERE condition(s) ]
[ GROUP BY colonne] [ORDER BY fontion_group(argument)];
 L’argument peut-être un nom de colonne, une expression ou une constante.
 Les fonctions de groupe ne peuvent pas être utilisées dans les clauses FROM, WHERE et
GROUP BY.
 SUM( [DISTINCT | ALL] : Retourne la somme de toutes les valeurs du groupe n.
 MIN( [DISTINCT | ALL] expr) : Retourne la plus grande valeur du groupe expr.
 MAX( [DISTINCT | ALL] expr : | ALL] expr ) Retourne la plus petite valeur du groupe expr .
 COUNT( { * | [DISTINCT | ALL] expr } ) : Retourne le nombre d’enregistrements contenus
dans le groupe expr. -COUNT(*) retourne le nombre total d'enregistrements retournés en
incluant les valeurs nulles et les doublons.
 AVG( [DISTINCT | ALL] n ) : Retourne la moyenne des valeurs du groupe n.
 STDDEV( [DISTINCT | ALL] x ) : Retourne la déviance standard (l’écart type) de x.
 VARIANCE( [DISTINCT | ALL] x ) : Retourne la variance de x.
 Les fonctions de groupe ignorent les valeurs nulles sauf la fonction COUNT(*).
 Le type de données des arguments peuvent être CHAR, VARCHAR2, NUMBER, DATE sauf pour
les fonctions AVG, SUM, VARIANCE et STDDEV qui ne peuvent être utilisées qu’avec des
données de type numérique.
 Pour substituer les valeurs nulles dans un groupe, il faut utiliser la fonction single-row : «
NVL>>
o La clause WHERE n’acceptant pas les fonctions de groupe.  La restriction du
résultat des fonctions de groupe se fera dans la clause HAVING.
o Syntaxe: SELECT [colonne,] fonction_groupe(argument) FROM table [WHERE
condition(s) ] [GROUP BY colonne] [HAVING condition_condition] [ORDER BY
fontion_group(argument)];
o Comme dans les clauses WHERE et GROUP BY, les alias de colonne ne peuvent pas
être utilisés dans la clause HAVING.
o La clause HAVING peut être utilisée sans présence de fonctions de groupe dans la
clause SELECT.
o WHERE restreint les enregistrements.
o HAVING restreint les groupes d’enregistrements et peutêtre utilisée pour restreindre
les enregistrements

Sous-requêtes Single-row :
 Plusieurs sous-requêtes peuvent être mises en place dans une requête.
 Des fonctions de groupes ainsi que la clause HAVING peuvent être utilisées dans une sous-
requête.
 Ex: SELECT ename, fonction FROM employe WHERE fonction = ( SELECT fonction FROM
employe WHERE empno=1230);
 SELECT ename, empno FROM employe WHERE sal IN (SELECT MIN(sal) FROM employe
GROUP BY deptno);
 SELECT ename, empno FROM employe WHERE sal IN (800, 900, 1100);
 SELECT ename, empno FROM employe WHERE fonction <>’ingénieur’ AND sal < ANY(SELECT
sal FROM employe WHERE fonction=‘ingénieur’);

Création des tables :REATE TABLE [ schema. ] nom_table ( Nom_colonne type , …);

Types de données :

 VARCHAR2(taille) :Texte de longueur variable.<=4000 caractères.


 CHAR(taille) : Texte de longueur fixe. <=2000 caractères.
 NUMBER(p, e) : Nombre avec une précision pouvant atteindre 38 chiffres et ayant une
échelle pouvant aller jusqu’à 127.
 DATE : Date notée sous la forme DD-MON-YY
 LONG Texte de longueur variable pouvant stocker jusqu'à 2 Go.
 CLOB pointeur vers un fichier de données composé de caractère et <=4 GO.
 BLOB pointeur vers un fichier composé de données binaire<=4 G.

La contrainte FOREIGN KEY :

 EX : CREATE TABLE EMP( id_emp NUMBER(6), nom VARCHAR2(50) NOT NULL, CONSTRAINT
emp_dept_fk FOREIGN KEY(id_dep) REFERENCES department(id_dep) ON DELETE CASCADE
(ou ON DELETE SET NULL), …)

Vous aimerez peut-être aussi