SlideShare uma empresa Scribd logo
1 de 205
Baixar para ler offline
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™©
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™©
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™©
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™©
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™©
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™©
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™©
Connaissances requises 
 Aucune connaissance préalable 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
Liens utiles 
• Tutoriels : 
 http://sql.developpez.com 
• Livres : 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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 : 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™©
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™©
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™©
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™©
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™©
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 : 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™©
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™©
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™©
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™©
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™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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 
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™©
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/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™©
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™©
Synthaxe: ordre SELECT 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_table; 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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™©
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/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™©
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™©
Syntaxe 
SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} 
FROM nom_table 
WHERE condition; 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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.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™©
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™©
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™©
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™©
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™©
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.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™©
Objectif 
 Utiliser la commande ORDER BY pour trier les données 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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.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™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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.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™©
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™©
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™©
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™©
Récapitulatif sur l’ordre SELECT 
monotable et exercices 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
Objectifs 
 Syntaxe générale de l’ordre SELECT monotable 
 Exercices pratiques 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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™©
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™©
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™©
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™©
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 
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™©
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™©
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™©
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 
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™©
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™©
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™©
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™©
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/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™©
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™©
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™©
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™©
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™©
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 
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™©
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™©
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™©
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™©
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 : 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™©
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™©
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™©
Récapitulatif sur les requêtes multi-tables 
et exercies 
tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
Objectifs 
 Rappel des différents types de jointures 
 Exercices pratiques 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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™©
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™©
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://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™©
Objectif 
 Ecrire des requêtes en utilisant les opérateurs ensemblistes. 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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://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™©
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™©
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™©
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™©
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://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™©
Objectif 
 Ecrire des requêtes en utilisant les sous-requêtes multilignes. 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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 : 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™©
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™©
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™©
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™©
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 
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™©
Objectifs 
 Rappel des différents types de sous-requêtes 
 Exercices pratiques 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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.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™©
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™©
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™©
Syntaxe: INSERT d’une ligne 
INSERT INTO nom_table [ (champ1 [, ... ] ) ] VALUES ( 
VALEUR1 [ ,... ] ); 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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.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™©
Objectifs 
 Comprendre la syntaxe de la commande UPDATE 
 Effectuer des mises à jour 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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.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™©
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™©
Syntaxe: commande DELETE 
DELETE nom_table 
[ WHERE condition ]; 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
Récapitulatif des commandes de 
manipulation de données (LMD) et 
exercices 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
Objectifs 
 Rappel des différentes commandes LMD 
 Exercices pratiques 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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 
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™©
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.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™©
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è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™©
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™©
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™©
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/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™©
Objectifs 
 Connaître les types de contraintes 
 Créer des contraintes 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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™©
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.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™©
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™©
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™©
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™©
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 
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™©
Objectifs 
 Comprendre ce qu’est une vue 
 Créer une vue 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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™©
Syntaxe: suppression d’une vue 
DROP VIEW nom_de_la_vue 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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.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™©
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™©
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™©
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™©
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™©
Syntaxe: suppression d’une séquence 
DROP SEQUENCE nom_sequence 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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™©
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 relationnelles alphorm.com™©
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™©
Objectifs 
 Rappel des éléments du LDD 
 Exercices pratiques 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
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™©
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.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de 
données 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©
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™©
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™©
Conclusion 
FIN 
Merci pour votre attention 
Le langage SQL pour les Bases de données relationnelles alphorm.com™©

Mais conteúdo relacionado

Mais procurados

alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+Alphorm
 
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)Alphorm
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes Ikram Benabdelouahab
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donneeswebreaker
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1infcom
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Database/ Bases de données
Database/ Bases de donnéesDatabase/ Bases de données
Database/ Bases de donnéeszied kallel
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Administration Base de données Oracle
Administration Base de données OracleAdministration Base de données Oracle
Administration Base de données OracleAndrianaivo Lovatiana
 

Mais procurados (20)

alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
 
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
introduction à MongoDB
introduction à MongoDBintroduction à MongoDB
introduction à MongoDB
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
Presentation sql
Presentation sqlPresentation sql
Presentation sql
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Database/ Bases de données
Database/ Bases de donnéesDatabase/ Bases de données
Database/ Bases de données
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
Administration Base de données Oracle
Administration Base de données OracleAdministration Base de données Oracle
Administration Base de données Oracle
 
Introduction aux SGBD
Introduction aux SGBDIntroduction aux SGBD
Introduction aux SGBD
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 

Destaque

Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm
 
alphorm.com - Formation UML
alphorm.com - Formation UMLalphorm.com - Formation UML
alphorm.com - Formation UMLAlphorm
 
Alphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveau
Alphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveauAlphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveau
Alphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveauAlphorm
 
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...Alphorm
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm
 
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm
 
Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationAlphorm
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultantAlphorm
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studiohoracio lassey
 
Petit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLIPetit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLICedric CARBONE
 
[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend[French] Matinale du Big Data Talend
[French] Matinale du Big Data TalendJean-Michel Franco
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réelSmile I.T is open
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etlhoracio lassey
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 

Destaque (20)

Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
 
alphorm.com - Formation UML
alphorm.com - Formation UMLalphorm.com - Formation UML
alphorm.com - Formation UML
 
Alphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveau
Alphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveauAlphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveau
Alphorm.com Formation Oracle 12c DBA2 : Installation et mise à niveau
 
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
alphorm.com - Formation Développez des applications Web avec ASP.NET MVC 4(70...
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScript
 
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
Alphorm.com Formation Windows Presentation Foundation avec Visual Studio 2013...
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
 
Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm.com formation-GNS3
Alphorm.com formation-GNS3
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administration
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
Talend
TalendTalend
Talend
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
 
Petit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLIPetit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLI
 
Certificate Talend
Certificate TalendCertificate Talend
Certificate Talend
 
[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
 
Guide talend
Guide talendGuide talend
Guide talend
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etl
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 

Semelhante a Alphorm.com Formation le langage SQL

11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .netHamza SAID
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3PGambette
 
Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementLudovic REUS
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm
 
Certification oracle base de données oracle 11 g
Certification oracle base de données   oracle 11 gCertification oracle base de données   oracle 11 g
Certification oracle base de données oracle 11 gEGILIA Learning
 
Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2Alphorm
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginnersyazidaguedal
 
Presentation of Oracle database products
Presentation of Oracle database productsPresentation of Oracle database products
Presentation of Oracle database productsAlgiers Tech Meetup
 
Presentation article rest : How-to
Presentation article rest : How-toPresentation article rest : How-to
Presentation article rest : How-toDamien Cavaillès
 
alphorm.com - Formation Exchange Server 2013 (70-341)
alphorm.com - Formation Exchange Server 2013 (70-341)alphorm.com - Formation Exchange Server 2013 (70-341)
alphorm.com - Formation Exchange Server 2013 (70-341)Alphorm
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)rchbeir
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...CERTyou Formation
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABESABES
 

Semelhante a Alphorm.com Formation le langage SQL (20)

Le langage sql
Le langage sqlLe langage sql
Le langage sql
 
11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3
 
Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développement
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
Certification oracle base de données oracle 11 g
Certification oracle base de données   oracle 11 gCertification oracle base de données   oracle 11 g
Certification oracle base de données oracle 11 g
 
Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2
 
Presentation of Oracle database products for Beginners
Presentation of Oracle database products for BeginnersPresentation of Oracle database products for Beginners
Presentation of Oracle database products for Beginners
 
Presentation of Oracle database products
Presentation of Oracle database productsPresentation of Oracle database products
Presentation of Oracle database products
 
Presentation article rest : How-to
Presentation article rest : How-toPresentation article rest : How-to
Presentation article rest : How-to
 
alphorm.com - Formation Exchange Server 2013 (70-341)
alphorm.com - Formation Exchange Server 2013 (70-341)alphorm.com - Formation Exchange Server 2013 (70-341)
alphorm.com - Formation Exchange Server 2013 (70-341)
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
Opendata
OpendataOpendata
Opendata
 
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
 

Mais de Alphorm

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm
 

Mais de Alphorm (20)

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion Commerciale
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POO
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
 

Alphorm.com Formation le langage SQL

  • 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. 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. 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. 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. 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. 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. 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. Connaissances requises Aucune connaissance préalable Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Liens utiles • Tutoriels : http://sql.developpez.com • Livres : Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 11. GO Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. Présentation des composants Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. 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. Présentation du langage SQL Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. Présentation du modèle de données pour les ateliers Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Le modèle de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 33. Le langage d’interrogation de données (LID) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. Synthaxe: ordre SELECT SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. La clause WHERE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. Syntaxe SELECT [DISTINCT ] { * , [champ1 [AS] alias1 [,...]} FROM nom_table WHERE condition; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. La commande GROUP BY Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. La commande ORDER BY Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Objectif Utiliser la commande ORDER BY pour trier les données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Les fonctions SQL Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Expression CASE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Récapitulatif sur l’ordre SELECT monotable et exercices Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. 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. Requêtes multi-tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. Le produit cartésien Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. La jointure avec condition Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. La jointure EXTERNE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Autojointure Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. Récapitulatif sur les requêtes multi-tables et exercies tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Objectifs Rappel des différents types de jointures Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Les requêtes complexes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Objectif Ecrire des requêtes en utilisant les opérateurs ensemblistes. Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. Les sous-requêtes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Les sous-requêtes multilignes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Sous-requête dans la clause FROM Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Récapitulatif sur les sous-requêtes et exercices Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Le langage de manipulation de données (LMD) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. La commande UPDATE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. La commande DELETE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. Syntaxe: commande DELETE DELETE nom_table [ WHERE condition ]; Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. Objectifs Rappel des différentes commandes LMD Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 152. Les commandes LMD INSERT UPDATE DELETE Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Le langage de définition de données (LDD) Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Objectif Connaître les types de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. Les contraintes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Objectifs Connaître les types de contraintes Créer des contraintes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. Commandes DDL de gestion des tables Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. Syntaxe: supprimer une table DROP TABLE nom_table Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 172. Les vues Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Objectifs Comprendre ce qu’est une vue Créer une vue Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. Syntaxe: suppression d’une vue DROP VIEW nom_de_la_vue Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 179. Les autres objets d’une base de données Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. Syntaxe: suppression d’une séquence DROP SEQUENCE nom_sequence Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. Les indexes Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. 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. 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. 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. Syntaxe: suppression d’un index DROP INDEX nom_index Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. Objectifs Rappel des éléments du LDD Exercices pratiques Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. Conclusion Le langage SQL pour les Bases de données relationnelles alphorm.com™©
  • 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. 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. 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. Conclusion FIN Merci pour votre attention Le langage SQL pour les Bases de données relationnelles alphorm.com™©