Présentation de la formation 
Le langage SQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : h...
Plan 
• Présentation du formateur 
• Mes formations sur alphorm 
• Qu’est ce que c’est le langage SQL 
• Le plan de format...
Le formateur 
 Noureddine DRISSI 
 Expertise dans le domaine des bases de données 
 15 années d’expérience sur tous les SG...
Mes formations sur alphorm.com 
Formation MySQL, 
Administration 
(1Z0-883) 
Formation Oracle Database 
11g DBA 1 (1Z0-052...
Qu’est ce que c’est le langage SQL 
 SQL ( Structured Query Language) 
 Un langage de définition de données(LDD ou DDL) 
 ...
Plan du cours 
 Présentation de la formation 
 Le langage d'interrogation de données (LID) 
 Requêtes mult-tables (LID) 
 ...
Publics concernés 
 Toute personne ayant un profil d’informaticien désirant se servir de SQL 
en environnement SGBDR(Oracl...
Connaissances requises 
 Aucune connaissance préalable 
Le langage SQL pour les Bases de données relationnelles alphorm.co...
Objectifs 
 Appréhender les fondements du langage SQL; 
 Maîtriser la structure du langage SQL; 
 Créer des objets avec le...
Liens utiles 
• Tutoriels : 
 http://sql.developpez.com 
• Livres : 
Le langage SQL pour les Bases de données relationnell...
GO 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Présentation de la 
formation 
Présentation de 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum :...
Objectifs 
 Configurer l’environnement de travail 
 Vérifier et configurer les pré-requis 
 Installer le SGBDR SQL Server ...
Les pré-requis 
 Matériel 
 Mémoire 
• Minimum : 
- Éditions Express : 512 MO 
 Processeur 
• Minimum : 
- Processeur x86 ...
Les pré-requis 
 Logiciel 
• OS 
• Windows 8 ; Windows 7; Windows Server 2008 R2; Windows Server 2008 
Service Pack 2; Win...
Atelier 
 Installation du .Net Framework 3.5 
 Installation de SQL Server 2012 Express Edition 
 Installation de SQL Serve...
Présentation des composants 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Présentation de la 
formation 
Présentation des 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum ...
Objectifs 
 Décrire les composants d’un SGBDR 
 Qu’est-ce qu’une base de données relationnelle ? 
 Les objets d’une base d...
Qu’est-ce qu’une base de données ? 
 Permet de stocker la description des objets (ex: table) 
 Permet de stocker les donné...
Les objets d’une base de données relationnelle 
fact 
Tables 
Tables 
Tables 
Tables 
Tables 
Indexes 
Tables 
Tables 
Vue...
Les tables et leur caractéristiques 
 Permet de stocker des données dans une base 
 Contient un ensemble de colonnes (cham...
La notion d’intégrité des données 
 Assurée par des contraintes sur les colonnes 
• NULL ou NOT NULL 
• Clés primaires 
• ...
Présentation du langage SQL 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Présentation de la 
formation 
Présentation du langage 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog ...
Objectifs 
 Caractéristiques du langage SQL 
 Les principaux types de langages 
 Les limites du langage SQL 
Le langage SQ...
Caractéristiques du langage SQL 
 SQL pour Structured Query Language 
 Permet de manipuler des données stockées dans des b...
Les principaux types de langages 
 LMD (Langage de manipulation de données) 
 LID (langage d’interrogation de données) 
 S...
Les limites du langage SQL 
 Non procédural 
 PL/SQL (Oracle) 
 T-SQL (SQL Server) 
 PlpgSQL (PostgreSQL) 
 Portabilité li...
Présentation du modèle de données 
pour les ateliers 
Le langage SQL pour les Bases de données relationnelles alphorm.com™...
Présentation de la 
formation 
Présentation du modèle 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
...
Le modèle de données 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage d’interrogation de 
données (LID) 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage d’interrogation 
de données (LID) 
Ordre SELECT 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/b...
Objectifs 
 Connaître la synthaxe basique de l’ordre SELECT 
 Réaliser des extractions de données monotable 
 Traiter les ...
Synthaxe: ordre SELECT 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_table; 
Le langage SQL pour les Bas...
Traitement de la valeur NULL 
 Fonctions 
 COALESCE(SQL Server, PostgreSQL et MySQL) 
 NVL (Oracle) 
SELECT COALESCE (nom_...
Les opérateurs arithmétiques 
 Liste des opérateurs 
 Addition: + 
 Soustraction: - 
 Multiplication: * 
 Division: / 
Le ...
Opérateur de concaténation 
 SQL Server: CONCAT( ), + 
 MySQL: CONCAT( ) 
 Oracle, PostgreSQL: CONCAT( ), || 
Le langage S...
La clause WHERE 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage d’interrogation 
de données (LID) 
Clause WHERE 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/b...
Objectifs 
 Utiliser la clause WHERE dans un ordre SELECT 
 Utiliser les différents opérateurs logiques 
 Réaliser des fil...
Syntaxe 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_table 
WHERE condition; 
Le langage SQL pour les B...
Les opérateurs logiques 
Opérateur Description 
= Egale 
 ou != Différent  Pas égale 
 Supérieur à 
 Inférieur à 
= Supéri...
La commande GROUP BY 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage d’interrogation 
de données (LID) 
La commande GROUP BY 
Site : http://www.alphorm.com 
Blog : http://www.alpho...
Objectifs 
 Utiliser les fonctions d’agrégats 
 Utiliser la commande GROUP BY dans un ordre SELECT sur une fonction 
d’agr...
Syntaxe 
SELECT champ1, FONCTION(champ2) [AS] alias1 
FROM nom_table 
GROUP BY champ1; 
Le langage SQL pour les Bases de d...
Les fonctions d’agrégats 
 AVG() pour calculer la moyenne d’un set de valeur. 
 COUNT() pour compter le nombre de lignes. ...
La clause HAVING 
 Permet de filtrer sur le résultat d’un GROUP BY 
SELECT champ1, FONCTION(champ2) [AS] alias1 
FROM nom_...
La commande ORDER BY 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage d’interrogation 
de données (LID) 
La commande ORDER BY 
Site : http://www.alphorm.com 
Blog : http://www.alpho...
Objectif 
 Utiliser la commande ORDER BY pour trier les données 
Le langage SQL pour les Bases de données relationnelles a...
Syntaxe 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_table 
ORDER BY champ1 [ASC|DESC] [,...]; 
Le lang...
Les fonctions SQL 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage d’interrogation 
de données (LID) 
Les fonctions SQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm....
Objectifs 
 Connaître et savoir utiliser les fonctions SQL 
 Les fonctions d’agrégation 
 Les fonctions chaîne de caractèr...
Fonctions d’agrégation 
 AVG() pour calculer la moyenne d’un set de valeur. 
 COUNT() pour compter le nombre de lignes. 
 ...
Fonctions chaîne de caractères 
 LEN(champ) retourne le nombre de caractères. 
 LOWER(champ) change la casse en minuscule....
Fonctions de conversion de type 
 CAST(expression AS type_données) permet de convertir une valeur dans le type 
spécifié. ...
Fonctions date 
 GETDATE() date et heure système. 
 DATEPART(format,expd) renvoie la valeur de la partie date selon le for...
Fonctions mathématiques 
 SQRT(expn) racine carrée de expn. 
 POWER(expn, n) expn à la puissance n. 
 SQUARE(expn) calcul ...
Fonctions trigonométriques 
 PI() valeur du nombre PI. 
 SIN(expn) , TAN(expn) , COS(expn) , COT (expn) 
 ... 
Le langage ...
Fonctions logarithmiques 
 EXP(expn) exponentielle de expn. 
 LOG(expn) logarithme népérien de expn. 
 ... 
Le langage SQL...
Expression CASE 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage d’interrogation 
de données (LID) 
Expression CASE 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.co...
Objectifs 
 Connaître la syntaxe de l’instruction CASE 
 Mettre en place une condition d’instruction conditionnel avec 
l’...
Syntaxe: CASE sur expression 
CASE expression 
WHEN valeur1 THEN resultat1 
[WHEN valeur2 THEN resultat2, ...] 
[ELSE resu...
Syntaxe: CASE généralisé 
CASE 
WHEN condition1 THEN resultat1 
[WHEN condition2 THEN resultat2, ...] 
[ELSE resultat] 
EN...
Récapitulatif sur l’ordre SELECT 
monotable et exercices 
Le langage SQL pour les Bases de données relationnelles alphorm....
Le langage d’interrogation 
de données (LID) 
Récapitulatif sur l’ordre 
Site : http://www.alphorm.com 
Blog : http://www....
Objectifs 
 Syntaxe générale de l’ordre SELECT monotable 
 Exercices pratiques 
Le langage SQL pour les Bases de données r...
Ordre SELECT: syntaxe générale 
SELECT [DISTINCT ou ALL] * ou liste de colonnes 
FROM nom_de_table 
[WHERE prédicats] 
[GR...
Ordre SELECT: Exercice 1 (sol_exercice1.txt) 
 La projection totale et partielle 
 Listez tous les employés de la société....
Ordre SELECT: Exercice 2 (sol_exercice2.txt) 
 La restriction (WHERE) 
 Listez tous les clients dont le pays est l’espagne...
Ordre SELECT: Exercice 3 (sol_exercice3.txt) 
 Les opérateurs 
 Affichez le nom, prénom, fonction et salaire des employés ...
Ordre SELECT: Exercice 4 (sol_exercice4.txt) 
 Divers 
 Affichez le nombre de clients par pays. 
 Affichez la masse salari...
Ordre SELECT: Exercice 5 (sol_exercice5.txt) 
 Expression CASE 
 Simulez une augmentation du salaire en fonction de la fon...
Requêtes multi-tables 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Requêtes multi-tables 
(LID) 
La notion de jointure 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Fo...
Objectifs 
 Comprendre la notion de jointure 
 Comprendre en quoi consiste une relation entre deux tables 
Le langage SQL ...
La jointure (relation) 
Clé étrangère 
FORMATEURS FORMATIONS 
Clé primaire 
FORMATEURS.formateur_num=FORMATIONS.formateur_...
Le produit cartésien 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Requêtes multi-tables 
(LID) 
Le produit cartésien 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
For...
Objectifs 
 Comprendre la syntaxe de référencement de plusieurs tables dans la 
clause FROM 
 Comprendre la notion de join...
Syntaxe 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_table1 [AS] alias1 [, nom_table2 [AS] alias2 ] 
[,...
La jointure sans condition 
Clé étrangère 
FORMATEURS FORMATIONS 
X 
Clé primaire 
Résultat de la requête 
Le langage SQL ...
La jointure avec condition 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Requêtes multi-tables 
(LID) 
La jointure avec condition 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blo...
Objectifs 
 Ecrire des requêtes multi-tables 
 Ecrire des requêtes multi-tables en utilisant des alias 
 Ecrire des requêt...
Rappel: la jointure (relation) 
Clé étrangère 
FORMATEURS FORMATIONS 
Clé primaire 
FORMATEURS.formateur_num=FORMATIONS.fo...
Syntaxe: non normalisée 
SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]} 
FROM nom_table1 [AS] alias1, nom_tabl...
Syntaxe: normalisée 
SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]} 
FROM nom_table1 [AS] alias1 [ JOIN nom_ta...
La jointure EXTERNE 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Requêtes multi-tables 
(LID) 
La jointure EXTERNE 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Foru...
Objectifs 
 Comprendre ce qu’est une jointure EXTERNE 
 Ecrire des requêtes multi-tables en utilisant la jointure EXTERNE ...
Qu’est-ce qu’une jointure EXTERNE ? 
 Permet d’afficher les lignes d’une table qui ne répondent pas à la 
condition de joi...
Syntaxe: normalisée 
SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]} 
FROM nom_table1 [AS] alias1 [ {LEFT | RIG...
Autojointure 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Requêtes multi-tables 
(LID) 
Autojointure 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : htt...
Objectifs 
 Comprendre ce qu’est une autojointure 
 Ecrire des requêtes en utilisant l’autojointure 
Le langage SQL pour l...
Qu’est-ce qu’une autojointure ? 
 Permet de réaliser une jointure d’une table sur elle même. 
 Nécessite l’utilisation des...
Récapitulatif sur les requêtes multi-tables 
et exercies 
tables Le langage SQL pour les Bases de données relationnelles a...
Requêtes multi-tables 
(LID) 
Récapitulatif sur les 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Fo...
Objectifs 
 Rappel des différents types de jointures 
 Exercices pratiques 
Le langage SQL pour les Bases de données relat...
Les types de jointures 
 Jointure d’égalité (équijointure) 
 JOIN ON 
 Jointure EXTERNE 
 LEFT | RIGHT | FULL OUTER JOIN 
...
Equijointure: Exercice 1 (sol_exercice21.txt) 
 Affichez le nom des clients (SOCIETE) avec leurs différentes commandes (NO...
Jointures externes: Exercice 2 (sol_exercice22.txt) 
 Affichez le nom et les localités des clients ainsi que le cumul des ...
Autojointure: Exercice 3 (sol_exercice23.txt) 
 Affichez le nom, le prénom, la fonction des supérieurs hiérarchiques 
ains...
Les requêtes complexes 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Les requêtes complexes 
Les opérateurs 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://...
Objectif 
 Ecrire des requêtes en utilisant les opérateurs ensemblistes. 
Le langage SQL pour les Bases de données relatio...
Les opérateurs ensemblistes 
 UNION 
 Permet d’obtenir un ensemble de lignes provenant de plusieurs requêtes 
• requête1 U...
Les contraintes 
 Tous les ordres « SELECT » doivent avoir le même nombre de champs. 
 Les champs doivent êtres de types c...
Les sous-requêtes 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Les requêtes complexes 
Les sous-requêtes 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http...
Objectifs 
 Comprendre la syntaxe des sous-requêtes monolignes. 
 Ecrire des requêtes en utilisant les sous-requêtes monol...
Sous-requêtes monolignes 
 Permet d’imbriquer une requête SELECT dans une autre requête SELECT 
ou dans une instruction IN...
Syntaxe: sous-requête monoligne 
Requête principale 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_table ...
Les sous-requêtes multilignes 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Les requêtes complexes 
Les sous-requêtes 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http...
Objectif 
 Ecrire des requêtes en utilisant les sous-requêtes multilignes. 
Le langage SQL pour les Bases de données relat...
Sous-requêtes multilignes 
 Permet d’imbriquer une requête SELECT dans une autre requête SELECT 
ou dans une instruction I...
Syntaxe: sous-requête multilignes 
Requête principale 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_tabl...
Sous-requête dans la clause FROM 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Les requêtes complexes 
Sous-requêtes dans la 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ...
Objectif 
 Ecrire des requêtes en utilisant une sous-requête dans la clause FROM. 
Le langage SQL pour les Bases de donnée...
Sous-requêtes dans la clause FROM 
 Permet d’imbriquer une requête SELECT dans une clause FROM. 
Le langage SQL pour les B...
Syntaxe: sous-requête dans la clause FROM 
Requête principale 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM ...
Récapitulatif sur les sous-requêtes et 
exercices 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Les requêtes complexes 
Récapitulatif sur les sous- 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Fo...
Objectifs 
 Rappel des différents types de sous-requêtes 
 Exercices pratiques 
Le langage SQL pour les Bases de données r...
Les types de sous-requêtes 
 Sous-requêtes monolignes 
 Sous-requêtes multilignes 
 Sous-requête dans une clause FROM 
Le ...
Les sous-requêtes: Exercice 1 (sol_exercice31.txt) 
 Affichez les produits pour lesquels la quantité en stock est supérieu...
Le langage de manipulation de 
données (LMD) 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de manipulation 
de données (LMD) 
La commande INSERT 
Site : http://www.alphorm.com 
Blog : http://www.alphorm...
Objectifs 
 Comprendre la syntaxe de la commande INSERT 
 Effectuer des insertions dans des tables 
Le langage SQL pour le...
La commande INSERT 
 Deux syntaxes possibles 
 Insérer une ligne en indiquant les informations pour chaque colonne 
exista...
Syntaxe: INSERT d’une ligne 
INSERT INTO nom_table [ (champ1 [, ... ] ) ] VALUES ( 
VALEUR1 [ ,... ] ); 
Le langage SQL po...
Syntaxe: INSERT de plusieurs lignes 
INSERT INTO nom_table [ (champ1 [, ... ] ) ] requête_SQL 
Le langage SQL pour les Bas...
La commande UPDATE 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de manipulation 
de données (LMD) 
La commande UPDATE 
Site : http://www.alphorm.com 
Blog : http://www.alphorm...
Objectifs 
 Comprendre la syntaxe de la commande UPDATE 
 Effectuer des mises à jour 
Le langage SQL pour les Bases de don...
Syntaxe: commande UPDATE 
UPDATE nom_table 
SET champ1 = VALEUR1 [, ... ] | (requête_SQL) 
[ WHERE condition ]; 
Le langag...
La commande DELETE 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de manipulation 
de données (LMD) 
La commande DELETE 
Site : http://www.alphorm.com 
Blog : http://www.alphorm...
Objectifs 
 Comprendre la syntaxe de la commande DELETE 
 Effectuer des suppressions de données 
Le langage SQL pour les B...
Syntaxe: commande DELETE 
DELETE nom_table 
[ WHERE condition ]; 
Le langage SQL pour les Bases de données relationnelles ...
Récapitulatif des commandes de 
manipulation de données (LMD) et 
exercices 
Le langage SQL pour les Bases de données rela...
Le langage de manipulation 
de données (LMD) 
Récapitulatif des commandes 
de manipulation de données 
Site : http://www.a...
Objectifs 
 Rappel des différentes commandes LMD 
 Exercices pratiques 
Le langage SQL pour les Bases de données relationn...
Les commandes LMD 
 INSERT 
 UPDATE 
 DELETE 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le LMD: Exercice 1 (sol_exercice41.txt) 
 Créez une nouvelle catégories nommée « Champignon » en respectant les 
contraint...
Le langage de définition de données 
(LDD) 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de définition de 
données (LDD) 
Les types de données 
Site : http://www.alphorm.com 
Blog : http://www.alphorm...
Objectif 
 Connaître les types de données 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Caractères 
 CHAR (n): chaîne de caractères de longueur fixe ( n  16383) 
 VARCHAR (n) : chaîne de caractères de n caractè...
Numériques 
 NUMERIC(n,[d]) : Nombre de n chiffres [optionnellementd après la 
virgule] 
 INTEGER (ou INT): entier signé d...
Date 
 DATE : date du calendier grégorien ( AAAA-MM-JJ) 
 TIME: heure sous la forme 12:54:24.85 
 TIMESTAMP : date et Heur...
Les contraintes 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de définition de 
données (LDD) 
Les contraintes 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/...
Objectifs 
 Connaître les types de contraintes 
 Créer des contraintes 
Le langage SQL pour les Bases de données relationn...
Qu’est-ce qu’une contrainte ? 
 Une contrainte d'intégrité est une clause permettant de contraindre la 
modification de ta...
Les contraintes 
 NOT NULL 
 PRIMARY KEY 
 UNIQUE 
 REFERENCES 
 DEFAULT 
 CHECK 
 Possibilité de nommer une contrainte 
 ...
Exemple de mise en oeuvre 
Clé 
primaire 
Clé 
NOT 
NULL 
primaire 
Clé 
primaire 
Clé 
étrangère 
Compris entre 
18 et 70...
Commandes DDL de gestion des 
tables 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de définition de 
données (LDD) 
Commandes DDL de gestion 
Site : http://www.alphorm.com 
Blog : http://www.alp...
Objectifs 
 Connaître les commandes DDL de gestion des tables 
 Réaliser des opérations DDL sur des tables (création, modi...
Syntaxe: créer une table 
CREATE TABLE nom_table 
( 
nom_colonne1 TYPE [CONTRAINTE ] [ ,nom_colonne2 ...] 
); 
Le langage ...
Syntaxe: modifier une table 
 Ajout d’une colonne 
ALTER TABLE nom_table 
ADD nom_colonne TYPE 
 Modification d’une colonn...
Syntaxe: supprimer une table 
DROP TABLE nom_table 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Les vues 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de définition de 
données (LDD) 
Les vues 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
F...
Objectifs 
 Comprendre ce qu’est une vue 
 Créer une vue 
Le langage SQL pour les Bases de données relationnelles alphorm....
Qu'est-ce qu'une vue ? 
 Un objet logique auquel est rattaché une requête SQL (SELECT) 
 A chaque utilisation de la vue la...
Les avantages 
 La vue est une sélection des données à afficher (complexité de la 
requête non visible pour l’utilisateur ...
Syntaxe: création d’une vue 
CREATE VIEW nom_de_la_vue 
(colonnes) 
AS SELECT ... 
Le langage SQL pour les Bases de donnée...
Syntaxe: suppression d’une vue 
DROP VIEW nom_de_la_vue 
Le langage SQL pour les Bases de données relationnelles alphorm.c...
Les autres objets d’une base de 
données 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de définition de 
données (LDD) 
Les autres objets d’une base 
Site : http://www.alphorm.com 
Blog : http://www...
Objectifs 
 Connaître les autres objets de base de données 
 Créer et utiliser ces objets 
Le langage SQL pour les Bases d...
Les séquences 
 Permettent de générer des séries de numéros séquentiels unique 
 Indépendante des tables 
Le langage SQL p...
Syntaxe: créer une séquence 
CREATE SEQUENCE nom_sequence 
[ START WITH constant ] 
[ INCREMENT BY constant ] 
[ { MINVALU...
Syntaxe: modifier une séquence 
ALTER SEQUENCE nom_sequence 
[ START WITH constant ] 
[ INCREMENT BY constant ] 
[ { MINVA...
Syntaxe: suppression d’une séquence 
DROP SEQUENCE nom_sequence 
Le langage SQL pour les Bases de données relationnelles a...
Les synonymes 
 Un synonyme est un alias donné à un objet dans la base 
CREATE SYNONYM nom_synonym FOR nom_objet 
DROP SYN...
Les indexes 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Le langage de définition de 
données (LDD) 
Les indexes 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog...
Objectifs 
 Décrire le fonctionnement d’un index 
 Créer et supprimer des indexes 
Le langage SQL pour les Bases de donnée...
Qu’est-ce qu’un index ? 
 Objet physique appartenant à une base de données. 
 Un index est crée d’une manière explicite (C...
Fonctionnement d’un index 
Table CLIENTS 
CODE_CLIENT NOM PRENOM 
1001 Veloso David 
1002 Harabazan Hamid 
1003 Drissi Nor...
Quand utiliser un index ? 
 Sur des tables volumineuses 
 Sur des colonnes utilisées dans la clause WHERE 
Trop d’index c’...
Syntaxe: création d’un index 
CREATE [UNIQUE] INDEX nom_index 
ON nom_table(nom_champ [ASC/DESC], ...) 
Le langage SQL pou...
Syntaxe: suppression d’un index 
DROP INDEX nom_index 
Le langage SQL pour les Bases de données relationnelles alphorm.com...
Récapitulatif sur le langage de 
définition de données (LDD) et 
exercices 
Le langage SQL pour les Bases de données relat...
Le langage de définition de 
données (LDD) 
Récapitulatif sur le langage 
Site : http://www.alphorm.com 
Blog : http://www...
Objectifs 
 Rappel des éléments du LDD 
 Exercices pratiques 
Le langage SQL pour les Bases de données relationnelles alph...
Les éléments du LDD 
 Les types de données 
 Les contraintes 
 Les commandes DDL de gestion des tables 
 Les vues, séquenc...
Le LDD: Exercice 1 (sol_exercice51.txt) 
Clé 
primaire 
Clé 
NOT 
NULL 
primaire 
Clé 
primaire 
Clé 
étrangère 
Compris e...
Le LDD: Exercice 2 (sol_exercice52.txt) 
 Créez une vue nommée « gestloc » qui affiche le nom, prenom de chaque 
locataire...
Conclusion 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Conclusion 
Le mot de la fin 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Conclusion 
 Rappel des objectifs de la formation 
• Appréhender les fondements du langage SQL; 
• Maîtriser la structure ...
Conlusion 
 A venir: 
 Le langage PL/SQL 
 Le transact SQL 
 La modélisation au sens MERISE 
Le langage SQL pour les Bases...
Conclusion 
FIN 
Merci pour votre attention 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Prochain SlideShare
Chargement dans…5
×

Alphorm.com Formation le langage SQL

69 637 vues

Publié le

Vous trouverez la formation complète ici:
http://www.alphorm.com/tutoriel/formation-en-ligne-le-langage-sql

Cette formation vous apprendra à comprendre et à maîtriser le langage SQL en environnement SGBDR.

Durant cette formation vous apprendrez à extraire, insérer, modifier et supprimer des données. Construire et comprendre des requêtes simples et complexes.
Cette formation permettra également aux administrateurs et développeurs de bases de données d'exploiter les informations de l'entreprise et de créer des objets, quel que soit le SGBDR qui les héberge.

A la fin de cette formation, le langage SQL n'aura plus de secrets pour vous !

Publié dans : Technologie
0 commentaire
17 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
69 637
Sur SlideShare
0
Issues des intégrations
0
Intégrations
34 744
Actions
Partages
0
Téléchargements
1 179
Commentaires
0
J’aime
17
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Alphorm.com Formation le langage SQL

  1. 1. Présentation de la formation Le langage SQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  2. 2. Plan • Présentation du formateur • Mes formations sur alphorm • Qu’est ce que c’est le langage SQL • Le plan de formation • Publics concernés • Connaissances requises • Liens utiles Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  3. 3. Le formateur Noureddine DRISSI Expertise dans le domaine des bases de données 15 années d’expérience sur tous les SGBDR du marché (Langage SQL, Mysql, Oracle, SQL Server, Postgresql,DB2, MongoDB) Issue de l’environnement bancaire • contact@valneo-xi.fr • Mon profil sur alphorm.com : http://www.alphorm.com/auteur/noureddine-drissi Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  4. 4. Mes formations sur alphorm.com Formation MySQL, Administration (1Z0-883) Formation Oracle Database 11g DBA 1 (1Z0-052) Formation MongoDB, administration Formation Administration PostgreSQL Formation Administration SQL Server 2012 (70-462) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  5. 5. Qu’est ce que c’est le langage SQL SQL ( Structured Query Language) Un langage de définition de données(LDD ou DDL) Un langage d’interrogation de données(LID) Un langage de manipulation de données(LMD ou DML) Un langage de contrôle de données(LCD ou DCL) Le seul langage qui permet d’interagir avec le SGBDR Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  6. 6. Plan du cours Présentation de la formation Le langage d'interrogation de données (LID) Requêtes mult-tables (LID) Les requêtes complexes Le langage de manipulation de données (LMD) Le langage de définition de données (LDD) Conclusion Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  7. 7. Publics concernés Toute personne ayant un profil d’informaticien désirant se servir de SQL en environnement SGBDR(Oracle,SQL Server,MySQL,PostgreSQL) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  8. 8. Connaissances requises Aucune connaissance préalable Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  9. 9. Objectifs Appréhender les fondements du langage SQL; Maîtriser la structure du langage SQL; Créer des objets avec le langage de définition des données; Interroger efficacement une base de données SQL; Ecrire et lire des requêtes SQL simples et complexes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  10. 10. Liens utiles • Tutoriels : http://sql.developpez.com • Livres : Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  11. 11. GO Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  12. 12. Présentation de la formation Présentation de Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum l’environnement Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  13. 13. Objectifs Configurer l’environnement de travail Vérifier et configurer les pré-requis Installer le SGBDR SQL Server 2012 Express Edition Installer SQL Server Management Studio Se connecter au moteur de base de données SQL Server Créer la base de données fact Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  14. 14. Les pré-requis Matériel Mémoire • Minimum : - Éditions Express : 512 MO Processeur • Minimum : - Processeur x86 : 1,0 GHz, Processeur x64 : 1,4 GHz - Recommandé : 2,0 GHz ou plus Disque • Minimum : - 2,2 GO disponible Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  15. 15. Les pré-requis Logiciel • OS • Windows 8 ; Windows 7; Windows Server 2008 R2; Windows Server 2008 Service Pack 2; Windows Vista Service Pack 2 • .NET Framework 3.5 • SGBDR • http://www.microsoft.com/fr-fr/download - SQL Server 2012 Express Edition (SQLEXPR_x64_FRA.exe) - SQL Server Management Studio (SQLManagementStudio_x64_FRA.exe) • Script de création de la base de données fact (fact.sql) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  16. 16. Atelier Installation du .Net Framework 3.5 Installation de SQL Server 2012 Express Edition Installation de SQL Server Management Studio Connection au moteur de base de données Création de la base de données fact (script fact.sql) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  17. 17. Présentation des composants Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  18. 18. Présentation de la formation Présentation des Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum composants Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  19. 19. Objectifs Décrire les composants d’un SGBDR Qu’est-ce qu’une base de données relationnelle ? Les objets d’une base de données relationnelle Les tables et leurs caractéristiques La notion d’intégrité des données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  20. 20. Qu’est-ce qu’une base de données ? Permet de stocker la description des objets (ex: table) Permet de stocker les données dans un ou plusieurs fichiers Permet de gérer l’accès aux données Permet d’assurer l’intégrité des données SGBDR data fact Oracle, SQL Server, PostgreSQL, MySQL Client SQL SQL Tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  21. 21. Les objets d’une base de données relationnelle fact Tables Tables Tables Tables Tables Indexes Tables Tables Vues Tables Tables Synonymes Tables Tables Séquences Tables Tables Fonctions Tables Tables Procédures Tables Tables Triggers Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  22. 22. Les tables et leur caractéristiques Permet de stocker des données dans une base Contient un ensemble de colonnes (champ) Chaque colonne possède un nom et un type de données Colonne (champ) Table Enregistrement Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  23. 23. La notion d’intégrité des données Assurée par des contraintes sur les colonnes • NULL ou NOT NULL • Clés primaires • Contrainte UNIQUE • Clés étrangères • Contraintes de contrôle • Taille et le type de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  24. 24. Présentation du langage SQL Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  25. 25. Présentation de la formation Présentation du langage Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum SQL Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  26. 26. Objectifs Caractéristiques du langage SQL Les principaux types de langages Les limites du langage SQL Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  27. 27. Caractéristiques du langage SQL SQL pour Structured Query Language Permet de manipuler des données stockées dans des bases de données relationnelles Créé en 1974 par IBM et normalisé depuis 1986 (ANSI et ISO) Reconnu par la grande majorité des SGBDR du marché Oracle SQL Server PostgreSQL MySQL ... Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  28. 28. Les principaux types de langages LMD (Langage de manipulation de données) LID (langage d’interrogation de données) SELECT INSERT, UPDATE et DELETE LDD (Langage de définition de données) LCD (langage de contrôle de données) GRANT et REVOKE CREATE, ALTER, TRUNCATE, DROP et RENAME Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  29. 29. Les limites du langage SQL Non procédural PL/SQL (Oracle) T-SQL (SQL Server) PlpgSQL (PostgreSQL) Portabilité limité Fonctions spécifiques à chaque SGBDR Typage différent d’un SGBDR à un autre Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  30. 30. Présentation du modèle de données pour les ateliers Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  31. 31. Présentation de la formation Présentation du modèle Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum de données pour les ateliers Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  32. 32. Le modèle de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  33. 33. Le langage d’interrogation de données (LID) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  34. 34. Le langage d’interrogation de données (LID) Ordre SELECT Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  35. 35. Objectifs Connaître la synthaxe basique de l’ordre SELECT Réaliser des extractions de données monotable Traiter les colonnes contenant des valeurs NULL Utiliser les opérateurs arithmétiques et l’opérateur de concaténation Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  36. 36. Synthaxe: ordre SELECT SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  37. 37. Traitement de la valeur NULL Fonctions COALESCE(SQL Server, PostgreSQL et MySQL) NVL (Oracle) SELECT COALESCE (nom_champ, valeur) [AS] alias FROM nom_table; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  38. 38. Les opérateurs arithmétiques Liste des opérateurs Addition: + Soustraction: - Multiplication: * Division: / Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  39. 39. Opérateur de concaténation SQL Server: CONCAT( ), + MySQL: CONCAT( ) Oracle, PostgreSQL: CONCAT( ), || Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  40. 40. La clause WHERE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  41. 41. Le langage d’interrogation de données (LID) Clause WHERE Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  42. 42. Objectifs Utiliser la clause WHERE dans un ordre SELECT Utiliser les différents opérateurs logiques Réaliser des filtres sur le résultat d’un ordre SELECT en utilisant plusieurs opérateurs logiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  43. 43. Syntaxe SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table WHERE condition; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  44. 44. Les opérateurs logiques Opérateur Description = Egale ou != Différent Pas égale Supérieur à Inférieur à = Supérieur ou égale à = Inférieur ou égale à [NOT] IN Liste de plusieurs valeurs possibles [NOT] BETWEEN Valeur comprise dans un intervalle donnée [NOT] LIKE Recherche en spécifiant le début, milieu ou fin d’un mot IS NULL La valeur est nulle IS NOT NULL La valeur n’est pas nulle AND et OR Combine plusieurs expressions de type logique Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  45. 45. La commande GROUP BY Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  46. 46. Le langage d’interrogation de données (LID) La commande GROUP BY Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  47. 47. Objectifs Utiliser les fonctions d’agrégats Utiliser la commande GROUP BY dans un ordre SELECT sur une fonction d’agrégat Filtrer sur le résultat d’un GROUP BY avec la clause HAVING Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  48. 48. Syntaxe SELECT champ1, FONCTION(champ2) [AS] alias1 FROM nom_table GROUP BY champ1; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  49. 49. Les fonctions d’agrégats AVG() pour calculer la moyenne d’un set de valeur. COUNT() pour compter le nombre de lignes. MAX() pour récuperer la plus grande valeur. MIN() pour récuperer la plus petite valeur. SUM() pour calculer la somme de plusieurs lignes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  50. 50. La clause HAVING Permet de filtrer sur le résultat d’un GROUP BY SELECT champ1, FONCTION(champ2) [AS] alias1 FROM nom_table GROUP BY champ1 HAVING condition; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  51. 51. La commande ORDER BY Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  52. 52. Le langage d’interrogation de données (LID) La commande ORDER BY Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  53. 53. Objectif Utiliser la commande ORDER BY pour trier les données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  54. 54. Syntaxe SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table ORDER BY champ1 [ASC|DESC] [,...]; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  55. 55. Les fonctions SQL Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  56. 56. Le langage d’interrogation de données (LID) Les fonctions SQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  57. 57. Objectifs Connaître et savoir utiliser les fonctions SQL Les fonctions d’agrégation Les fonctions chaîne de caractères Les fonctions de conversion de type Fonctions date Fonctions mathématiques Fonctions trigonométriques Fonctions logarithmiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  58. 58. Fonctions d’agrégation AVG() pour calculer la moyenne d’un set de valeur. COUNT() pour compter le nombre de lignes. MAX() pour récuperer la plus grande valeur. MIN() pour récuperer la plus petite valeur. SUM() pour calculer la somme de plusieurs lignes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  59. 59. Fonctions chaîne de caractères LEN(champ) retourne le nombre de caractères. LOWER(champ) change la casse en minuscule. UPPER(champ) change la casse en majuscule. SUBSTRING(champ,dp,lg) renvoie lg caractères de champ à partir de dp. LTRIM(champ) et RTRIM(champ) supprime les espaces non significatifs. RIGHT(champ,n) renvoie les n caractères plus à droite. LEFT(champ,n) renvoie les n caractères plus à gauche. REPLACE(champ,vs,vc) permet de remplacer dans champ toutes les occurences de vs par vc. ... Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  60. 60. Fonctions de conversion de type CAST(expression AS type_données) permet de convertir une valeur dans le type spécifié. CONVERT(type_données, exp [,style]) conversion de l’expression dans le type spécifié. Un style peut être utilisé dans les conversions date ou heure. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  61. 61. Fonctions date GETDATE() date et heure système. DATEPART(format,expd) renvoie la valeur de la partie date selon le format. DATEDIFF(format,expd1, expd2) différence selon le format entre les deux dates. DATEADD(format, n, expd) ajoute n format à la date expd. DAY(expd) retourne le numéro du jour dans le mois. MONTH(expd) retourne le numéro du mois. YEAR(expd) retourne l’année. ... Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  62. 62. Fonctions mathématiques SQRT(expn) racine carrée de expn. POWER(expn, n) expn à la puissance n. SQUARE(expn) calcul du carré de expn. ABS(expn) valeur absolue de expn. SIGN(expn) renvoie 1 si expn est positif, -1 si négatif et 0 si égale à zéro. ... Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  63. 63. Fonctions trigonométriques PI() valeur du nombre PI. SIN(expn) , TAN(expn) , COS(expn) , COT (expn) ... Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  64. 64. Fonctions logarithmiques EXP(expn) exponentielle de expn. LOG(expn) logarithme népérien de expn. ... Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  65. 65. Expression CASE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  66. 66. Le langage d’interrogation de données (LID) Expression CASE Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  67. 67. Objectifs Connaître la syntaxe de l’instruction CASE Mettre en place une condition d’instruction conditionnel avec l’instruction CASE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  68. 68. Syntaxe: CASE sur expression CASE expression WHEN valeur1 THEN resultat1 [WHEN valeur2 THEN resultat2, ...] [ELSE resultat] END; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  69. 69. Syntaxe: CASE généralisé CASE WHEN condition1 THEN resultat1 [WHEN condition2 THEN resultat2, ...] [ELSE resultat] END; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  70. 70. Récapitulatif sur l’ordre SELECT monotable et exercices Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  71. 71. Le langage d’interrogation de données (LID) Récapitulatif sur l’ordre Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum SELECT monotable et exercices Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  72. 72. Objectifs Syntaxe générale de l’ordre SELECT monotable Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  73. 73. Ordre SELECT: syntaxe générale SELECT [DISTINCT ou ALL] * ou liste de colonnes FROM nom_de_table [WHERE prédicats] [GROUP BY ordre des groupes] [HAVING condition] [ORDER BY ] liste de colonnes; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  74. 74. Ordre SELECT: Exercice 1 (sol_exercice1.txt) La projection totale et partielle Listez tous les employés de la société. Listez toutes les catégories de produits. Affichez le nom, prenom et date de naissance de tous les employés. Affichez la liste des fonctions des employés, chaque fonction doit être affichée une seule fois. Affichez la liste des villes des clients, chaque ville doit être affichée une seule fois. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  75. 75. Ordre SELECT: Exercice 2 (sol_exercice2.txt) La restriction (WHERE) Listez tous les clients dont le pays est l’espagne. Listez toutes les employés qui ne sont pas des représentants. Affichez le nom de la societé, la ville, le pays et le fax de tous les clients qui ont un numéro de fax renseigné. Affichez la liste de tous les employés embauchés en 1993. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  76. 76. Ordre SELECT: Exercice 3 (sol_exercice3.txt) Les opérateurs Affichez le nom, prénom, fonction et salaire des employés qui ont un salaire compris entre 2500 et 3500. Affichez le nom de la société, l’adresse, le téléphone et la ville des clients qui habitent à Toulouse, à Strasbourg, à Nantes ou à Marseille. Affichez le nom, prénom, fonction et le salaire des représentants qui sont en activité depuis le « 10/10/1993 ». Affichez le nom, prénom, fonction et le salaire des employés qui sont âgés de plus de 45 ans ou qui ont une ancienneté de plus de 10 ans. Affichez le nom, prénom, fonction et le salaire des employés dont le nom commence par la lettre « D ». Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  77. 77. Ordre SELECT: Exercice 4 (sol_exercice4.txt) Divers Affichez le nombre de clients par pays. Affichez la masse salariale (SOMME des salaires) pour chaque fonction des employés. Affichez les employés par ordre alphabétique de leur nom et du plus grand salaire au plus petit. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  78. 78. Ordre SELECT: Exercice 5 (sol_exercice5.txt) Expression CASE Simulez une augmentation du salaire en fonction de la fonction des employés en affichant le nom, prénom, fonction et salaire: Si « Vice-président » augmentation de 10% Si « Chef des ventes » augmentation de 20% Si « Représentant(e) » augmentation de 10% + commission Sinon augmentation de 10% Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  79. 79. Requêtes multi-tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  80. 80. Requêtes multi-tables (LID) La notion de jointure Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum (relation) Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  81. 81. Objectifs Comprendre la notion de jointure Comprendre en quoi consiste une relation entre deux tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  82. 82. La jointure (relation) Clé étrangère FORMATEURS FORMATIONS Clé primaire FORMATEURS.formateur_num=FORMATIONS.formateur_num Résultat de la requête Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  83. 83. Le produit cartésien Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  84. 84. Requêtes multi-tables (LID) Le produit cartésien Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  85. 85. Objectifs Comprendre la syntaxe de référencement de plusieurs tables dans la clause FROM Comprendre la notion de jointure sans condition (produit cartésien) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  86. 86. Syntaxe SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table1 [AS] alias1 [, nom_table2 [AS] alias2 ] [, ...] ; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  87. 87. La jointure sans condition Clé étrangère FORMATEURS FORMATIONS X Clé primaire Résultat de la requête Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  88. 88. La jointure avec condition Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  89. 89. Requêtes multi-tables (LID) La jointure avec condition Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  90. 90. Objectifs Ecrire des requêtes multi-tables Ecrire des requêtes multi-tables en utilisant des alias Ecrire des requêtes multi-tables en utilisant plusieurs syntaxes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  91. 91. Rappel: la jointure (relation) Clé étrangère FORMATEURS FORMATIONS Clé primaire FORMATEURS.formateur_num=FORMATIONS.formateur_num Résultat de la requête Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  92. 92. Syntaxe: non normalisée SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]} FROM nom_table1 [AS] alias1, nom_table2 [AS] alias2 [ WHERE nom_table1.nom_colonne=nom_table2.nom_colonne]; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  93. 93. Syntaxe: normalisée SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]} FROM nom_table1 [AS] alias1 [ JOIN nom_table2 [AS] alias2 ON (nom_table1.nom_colonne= nom_table1.nom_colonne) ]; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  94. 94. La jointure EXTERNE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  95. 95. Requêtes multi-tables (LID) La jointure EXTERNE Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  96. 96. Objectifs Comprendre ce qu’est une jointure EXTERNE Ecrire des requêtes multi-tables en utilisant la jointure EXTERNE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  97. 97. Qu’est-ce qu’une jointure EXTERNE ? Permet d’afficher les lignes d’une table qui ne répondent pas à la condition de jointure. TABLE1 (code_client) 10 11 12 TABLE2 (code_client) 10 10 11 = 13 11 TABLE1.code_client=TABLE2.code_client Lignes non affichées Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  98. 98. Syntaxe: normalisée SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]} FROM nom_table1 [AS] alias1 [ {LEFT | RIGHT | FULL} OUTER JOIN nom_table2 [AS] alias2 ON (nom_table1.nom_colonne= nom_table1.nom_colonne) ]; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  99. 99. Autojointure Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  100. 100. Requêtes multi-tables (LID) Autojointure Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  101. 101. Objectifs Comprendre ce qu’est une autojointure Ecrire des requêtes en utilisant l’autojointure Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  102. 102. Qu’est-ce qu’une autojointure ? Permet de réaliser une jointure d’une table sur elle même. Nécessite l’utilisation des alias. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  103. 103. Récapitulatif sur les requêtes multi-tables et exercies tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  104. 104. Requêtes multi-tables (LID) Récapitulatif sur les Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum requêtes multi-tables et exercices Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  105. 105. Objectifs Rappel des différents types de jointures Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  106. 106. Les types de jointures Jointure d’égalité (équijointure) JOIN ON Jointure EXTERNE LEFT | RIGHT | FULL OUTER JOIN Autojointure JOIN ON • Nécessite des alias Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  107. 107. Equijointure: Exercice 1 (sol_exercice21.txt) Affichez le nom des clients (SOCIETE) avec leurs différentes commandes (NO_COMMANDE et DATE_COMMANDE). Affichez la liste des produits (NOM_PRODUIT, UNITES_STOCK) ainsi que le nom de la catégorie de chaque produit uniquement pour les produits des catégories 1, 4 et 7. Affichez le nom, le prénom et la société cliente (SOCIETE) pour les employés qui ont effectué une vente pour les clients de « Paris » trié sur le nom de la societé. Affichez les sociétés clientes qui ont commandé le produit « Gorgonzola Telino » trié sur le nom de la societé. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  108. 108. Jointures externes: Exercice 2 (sol_exercice22.txt) Affichez le nom et les localités des clients ainsi que le cumul des quantités vendues (SUM(quantite)) par localité. Affichez les enregistrements par ordre décroissant de cumul des commandes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  109. 109. Autojointure: Exercice 3 (sol_exercice23.txt) Affichez le nom, le prénom, la fonction des supérieurs hiérarchiques ainsi le nom et prénom des employés gérés par eux. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  110. 110. Les requêtes complexes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  111. 111. Les requêtes complexes Les opérateurs Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum ensemblistes Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  112. 112. Objectif Ecrire des requêtes en utilisant les opérateurs ensemblistes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  113. 113. Les opérateurs ensemblistes UNION Permet d’obtenir un ensemble de lignes provenant de plusieurs requêtes • requête1 UNION [ALL] requête2 INTERSECT Permet d’obtenir les lignes communes de plusieurs requêtes • requête1 INTERSECT [ALL] requête2 EXCEPT (SQL Server, PostgreSQL, MySQL) / MINUS (Oracle, MySQL) Permet d’obtenir les lignes qui sont présentes dans un jeu de résultats et qui ne le sont pas dans un autre • requête1 EXCEPT [ALL] requête2 Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  114. 114. Les contraintes Tous les ordres « SELECT » doivent avoir le même nombre de champs. Les champs doivent êtres de types compatibles. Exclusion des champs de type « LONG », « BLOB », « CLOB » et « BFILE ». Elimination automatiques des doublons (DISTINCT implicite). Les noms des colonnes et alias sont ceux du premier ordre « SELECT ». La largeur de chaque champ est donnée par la plus grande de tous ordres « SELECT » confondus. Si une clause « ORDER BY » est utilisée, il faut spécifiée le numéro du champ et non son nom. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  115. 115. Les sous-requêtes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  116. 116. Les requêtes complexes Les sous-requêtes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum monolignes Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  117. 117. Objectifs Comprendre la syntaxe des sous-requêtes monolignes. Ecrire des requêtes en utilisant les sous-requêtes monolignes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  118. 118. Sous-requêtes monolignes Permet d’imbriquer une requête SELECT dans une autre requête SELECT ou dans une instruction INSERT, UPDATE ou DELETE. Une requête monoligne utilise les opérateurs =, , !=, =, , = Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  119. 119. Syntaxe: sous-requête monoligne Requête principale SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table WHERE champ OPERATEUR (sous-requête) Sous-requête renvoyant une seule valeur Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  120. 120. Les sous-requêtes multilignes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  121. 121. Les requêtes complexes Les sous-requêtes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum multilignes Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  122. 122. Objectif Ecrire des requêtes en utilisant les sous-requêtes multilignes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  123. 123. Sous-requêtes multilignes Permet d’imbriquer une requête SELECT dans une autre requête SELECT ou dans une instruction INSERT, UPDATE ou DELETE. Une sous-requête multiligne utilise l’opérateur [NOT] IN. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  124. 124. Syntaxe: sous-requête multilignes Requête principale SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table WHERE champ [NOT] IN (sous-requête) Sous-requête renvoyant plusieurs valeurs Opérateur Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  125. 125. Sous-requête dans la clause FROM Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  126. 126. Les requêtes complexes Sous-requêtes dans la Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum clause FROM Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  127. 127. Objectif Ecrire des requêtes en utilisant une sous-requête dans la clause FROM. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  128. 128. Sous-requêtes dans la clause FROM Permet d’imbriquer une requête SELECT dans une clause FROM. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  129. 129. Syntaxe: sous-requête dans la clause FROM Requête principale SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM (sous-requête) Sous-requête Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  130. 130. Récapitulatif sur les sous-requêtes et exercices Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  131. 131. Les requêtes complexes Récapitulatif sur les sous- Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum sous-requêtes et exercices Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  132. 132. Objectifs Rappel des différents types de sous-requêtes Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  133. 133. Les types de sous-requêtes Sous-requêtes monolignes Sous-requêtes multilignes Sous-requête dans une clause FROM Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  134. 134. Les sous-requêtes: Exercice 1 (sol_exercice31.txt) Affichez les produits pour lesquels la quantité en stock est supérieur à la moyenne. Affichez les clients et leurs commandes pour tous les produits livrés par un fournisseur qui habite London. Affichez les employes dont le salaire + commission est supérieur à la moyenne des salaires. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  135. 135. Le langage de manipulation de données (LMD) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  136. 136. Le langage de manipulation de données (LMD) La commande INSERT Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  137. 137. Objectifs Comprendre la syntaxe de la commande INSERT Effectuer des insertions dans des tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  138. 138. La commande INSERT Deux syntaxes possibles Insérer une ligne en indiquant les informations pour chaque colonne existante (en respectant l’ordre) Insérer une ligne en spécifiant les colonnes que vous souhaiter compléter Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  139. 139. Syntaxe: INSERT d’une ligne INSERT INTO nom_table [ (champ1 [, ... ] ) ] VALUES ( VALEUR1 [ ,... ] ); Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  140. 140. Syntaxe: INSERT de plusieurs lignes INSERT INTO nom_table [ (champ1 [, ... ] ) ] requête_SQL Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  141. 141. La commande UPDATE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  142. 142. Le langage de manipulation de données (LMD) La commande UPDATE Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  143. 143. Objectifs Comprendre la syntaxe de la commande UPDATE Effectuer des mises à jour Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  144. 144. Syntaxe: commande UPDATE UPDATE nom_table SET champ1 = VALEUR1 [, ... ] | (requête_SQL) [ WHERE condition ]; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  145. 145. La commande DELETE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  146. 146. Le langage de manipulation de données (LMD) La commande DELETE Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  147. 147. Objectifs Comprendre la syntaxe de la commande DELETE Effectuer des suppressions de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  148. 148. Syntaxe: commande DELETE DELETE nom_table [ WHERE condition ]; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  149. 149. Récapitulatif des commandes de manipulation de données (LMD) et exercices Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  150. 150. Le langage de manipulation de données (LMD) Récapitulatif des commandes de manipulation de données Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum (LMD) et exercices Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  151. 151. Objectifs Rappel des différentes commandes LMD Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  152. 152. Les commandes LMD INSERT UPDATE DELETE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  153. 153. Le LMD: Exercice 1 (sol_exercice41.txt) Créez une nouvelle catégories nommée « Champignon » en respectant les contraintes d’intégrités (clé primaire, champ non null) Augmentez le salaire de l’employé « Fuller » de 20% et attribuez lui une commission de 2000 Supprimez la catégorie nommée « champignon » Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  154. 154. Le langage de définition de données (LDD) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  155. 155. Le langage de définition de données (LDD) Les types de données Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  156. 156. Objectif Connaître les types de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  157. 157. Caractères CHAR (n): chaîne de caractères de longueur fixe ( n 16383) VARCHAR (n) : chaîne de caractères de n caractères maximum (n16383) NCHAR (n): valeur alpha de longueur fixe NVARCHAR (n): valeur alpha de longueur maximale fixée sur le jeu de caractère du pays Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  158. 158. Numériques NUMERIC(n,[d]) : Nombre de n chiffres [optionnellementd après la virgule] INTEGER (ou INT): entier signé de 32 bits (-2E31 à 2E31-1) SMALLINT : entier court signé de 16 bits (-32768 à 32757) FLOAT : réel à virgule flottante à échelle et précision obligatoire REAL : réel à virgule flottante de faible précision DOUBLE PRECISION : réel à virgule flottante de grande précision BIT : chaîne de bit de longueur fixe BIT VARYING : chaîne de bit de longueur maximale Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  159. 159. Date DATE : date du calendier grégorien ( AAAA-MM-JJ) TIME: heure sous la forme 12:54:24.85 TIMESTAMP : date et Heure Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  160. 160. Les contraintes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  161. 161. Le langage de définition de données (LDD) Les contraintes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  162. 162. Objectifs Connaître les types de contraintes Créer des contraintes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  163. 163. Qu’est-ce qu’une contrainte ? Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables Permet d’assurer la cohérence des données dans la base Spécifiées dès la création de la table ou après (ALTER TABLE) CREATE TABLE nom_table (nom_champ CONTRAINTE [ , ... ] ALTER TABLE ADD CONSTRAINT nom_contrainte TYPE CONTRAINTE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  164. 164. Les contraintes NOT NULL PRIMARY KEY UNIQUE REFERENCES DEFAULT CHECK Possibilité de nommer une contrainte CONSTRAINT Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  165. 165. Exemple de mise en oeuvre Clé primaire Clé NOT NULL primaire Clé primaire Clé étrangère Compris entre 18 et 70 Date du jour par defaut Compris Compris entre 01 et 95 UNIQUE entre 1 et 7 Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  166. 166. Commandes DDL de gestion des tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  167. 167. Le langage de définition de données (LDD) Commandes DDL de gestion Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum des tables Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  168. 168. Objectifs Connaître les commandes DDL de gestion des tables Réaliser des opérations DDL sur des tables (création, modification et suppression) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  169. 169. Syntaxe: créer une table CREATE TABLE nom_table ( nom_colonne1 TYPE [CONTRAINTE ] [ ,nom_colonne2 ...] ); Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  170. 170. Syntaxe: modifier une table Ajout d’une colonne ALTER TABLE nom_table ADD nom_colonne TYPE Modification d’une colonne ALTER TABLE nom_table { ALTER | MODIFY } COLUMN nom_colonne TYPE Suppression d’une colonne ALTER TABLE nom_table DROP COLUMN nom_colonne Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  171. 171. Syntaxe: supprimer une table DROP TABLE nom_table Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  172. 172. Les vues Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  173. 173. Le langage de définition de données (LDD) Les vues Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  174. 174. Objectifs Comprendre ce qu’est une vue Créer une vue Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  175. 175. Qu'est-ce qu'une vue ? Un objet logique auquel est rattaché une requête SQL (SELECT) A chaque utilisation de la vue la requête associée est exécutée Aucun stockage physique des données de la vue Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  176. 176. Les avantages La vue est une sélection des données à afficher (complexité de la requête non visible pour l’utilisateur final) La description de la vue est sauvegardéé dans la base de données Une restriction d'accès à la table pour l'utilisateur Un regroupement d'informations au sein d'une entité Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  177. 177. Syntaxe: création d’une vue CREATE VIEW nom_de_la_vue (colonnes) AS SELECT ... Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  178. 178. Syntaxe: suppression d’une vue DROP VIEW nom_de_la_vue Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  179. 179. Les autres objets d’une base de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  180. 180. Le langage de définition de données (LDD) Les autres objets d’une base Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum de données Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  181. 181. Objectifs Connaître les autres objets de base de données Créer et utiliser ces objets Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  182. 182. Les séquences Permettent de générer des séries de numéros séquentiels unique Indépendante des tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  183. 183. Syntaxe: créer une séquence CREATE SEQUENCE nom_sequence [ START WITH constant ] [ INCREMENT BY constant ] [ { MINVALUE [ constant ] } | { NO MINVALUE } ] [ { MAXVALUE [ constant ] } | { NO MAXVALUE } ] [ CYCLE | { NO CYCLE } ] [ { CACHE [ constant ] } | { NO CACHE } ] [ ; ] Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  184. 184. Syntaxe: modifier une séquence ALTER SEQUENCE nom_sequence [ START WITH constant ] [ INCREMENT BY constant ] [ { MINVALUE [ constant ] } | { NO MINVALUE } ] [ { MAXVALUE [ constant ] } | { NO MAXVALUE } ] [ CYCLE | { NO CYCLE } ] [ { CACHE [ constant ] } | { NO CACHE } ] [ ; ] Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  185. 185. Syntaxe: suppression d’une séquence DROP SEQUENCE nom_sequence Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  186. 186. Les synonymes Un synonyme est un alias donné à un objet dans la base CREATE SYNONYM nom_synonym FOR nom_objet DROP SYNONYM nom_synonym Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  187. 187. Les indexes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  188. 188. Le langage de définition de données (LDD) Les indexes Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  189. 189. Objectifs Décrire le fonctionnement d’un index Créer et supprimer des indexes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  190. 190. Qu’est-ce qu’un index ? Objet physique appartenant à une base de données. Un index est crée d’une manière explicite (CREATE INDEX) ou lors de la définition d’un champ comme PRIMARY KEY. Un index peut-être positionné sur une ou plusieurs colonnes. Permet un accès plus rapide aux données lors des opérations de SELECT, INSERT, UPDATE, DELETE. Réduit le temps d’accès à la localisation d’une ligne. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  191. 191. Fonctionnement d’un index Table CLIENTS CODE_CLIENT NOM PRENOM 1001 Veloso David 1002 Harabazan Hamid 1003 Drissi Nordine 1004 Zetor Hervé Index sur le champ NOM VALEUR NOM ROWID Drissi 0FX12 Harabazan 0CF12 Veloso 0CF14 Zetor 50D70 Données triées ... ... SELECT nom,prenom FROM clients WHERE nom=‘Harabazan’ ... ... Bloc de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  192. 192. Quand utiliser un index ? Sur des tables volumineuses Sur des colonnes utilisées dans la clause WHERE Trop d’index c’est pas bon Toujours vérifier qu’un index est bien utilisé Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  193. 193. Syntaxe: création d’un index CREATE [UNIQUE] INDEX nom_index ON nom_table(nom_champ [ASC/DESC], ...) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  194. 194. Syntaxe: suppression d’un index DROP INDEX nom_index Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  195. 195. Récapitulatif sur le langage de définition de données (LDD) et exercices Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  196. 196. Le langage de définition de données (LDD) Récapitulatif sur le langage Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum de définition de données (LDD) et exercices Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  197. 197. Objectifs Rappel des éléments du LDD Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  198. 198. Les éléments du LDD Les types de données Les contraintes Les commandes DDL de gestion des tables Les vues, séquences et synonymes Les indexes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  199. 199. Le LDD: Exercice 1 (sol_exercice51.txt) Clé primaire Clé NOT NULL primaire Clé primaire Clé étrangère Compris entre 18 et 70 Date du jour par defaut Compris entre Compris entre 01 et 95 UNIQUE 30 et 150 Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  200. 200. Le LDD: Exercice 2 (sol_exercice52.txt) Créez une vue nommée « gestloc » qui affiche le nom, prenom de chaque locataire ainsi que toutes les informations des maisons louées par ces derniers. Créez un synonym nommé « loc » pour la table LOCATAIRES et un synonym nommé « ms » pour la table MAISONS Créez un index composé nommé « idx_nom_prenom » sur le champ NOM et PRENOM de la table LOCATAIRES. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  201. 201. Conclusion Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  202. 202. Conclusion Le mot de la fin Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  203. 203. Conclusion Rappel des objectifs de la formation • Appréhender les fondements du langage SQL; • Maîtriser la structure du langage SQL; • Créer des objets avec le langage de définition des données; • Interroger efficacement une base de données SQL; • Ecrire et lire des requêtes SQL simples et complexes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  204. 204. Conlusion A venir: Le langage PL/SQL Le transact SQL La modélisation au sens MERISE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  205. 205. Conclusion FIN Merci pour votre attention Le langage SQL pour les Bases de données relationnelles alphorm.com™©

×