BD SQL
BD SQL
Données et Web
Systèmes d’Information et Bases de Données
-----------------------
▪ Exemple:
Application 1 Application 2
Fichier 1 Fichier 2
Introduction aux Bases de Données
Exemple :
➢ Pour gérer les étudiants dans une université (plusieurs établissements) voici un exemple :
➢ Pour gérer l’ensemble des données d’une entreprise, chaque service définit ses fichiers
en fonction de ses besoins.
❑ Fichier Client
❑ Fichier Commande
❑ Fichier Détail commande
❑ Fichier Produit
Introduction aux Bases de Données
Inconvénients:
❑ Redondance de données => Risque d’incohérence de données lors de la m.à.j des
fichiers.
❑ Difficulté des traitements (consultation et m.à.j).
❑ Pas d’intégrité:
➢ On peut passer une commande d’un client qui n’existe pas dans le fichier
Client.
➢ Total commande donnée calculée…
❑ Tout contrôle sur les valeurs des données doit être traité par les programmes.
❑ Manque de confidentialité…
Introduction aux Bases de Données
"Je gère ma base de données sur Excel…"
Le tableur est un logiciel qui permet de traiter efficacement des données numériques et de
présenter les résultats sous forme de graphiques. Lorsqu’il est relié à une base de données, il
permet d'effectuer des bilans et des simulations qui serviront de bases aux décideurs.
Désavantages :
▪ pas de sémantique des données,
▪ travail sur 1 seul fichier à la fois,
▪ données répétées,
▪ problème des mises à jour des informations,
▪ Pas d’accès multiutilisateurs
Introduction aux Bases de Données: Tableur Vs
SGBD
▪ LES LIMITES DU TABLEUR EXCEL :
Introduction aux Bases de Données
❑ Approche base de données :
➢ Date de création 1963
➢ Représentation fidèle du monde réel.
➢ Intégration des données dans un seul fichier (la Base de Données).
➢ Indépendance données/programmes.
➢ Gestion d’une quantité importante de données.
➢ Organisation et gestion de la BD réalisées par un logiciel spécifique.
Introduction aux Bases de Données
Le SGBD gère correctement tous les désavantages du tableur
Désavantages :
▪ nécessite de bien définir les besoins et d’être méticuleux lors de la réalisation de la
base de données
▪ nécessite un réel apprentissage
Application 1 Application 2
BD
Introduction aux Bases de Données
▪ Pour les Bases de données:
Liaison
Introduction aux Bases de Données: Tableur Vs
SGBD
Actions Tableur Base de Données
Interrogation des données Réalisée par des procédures Langage "universel" : SQL
spécifiques
Introduction aux Bases de Données
❑ Définition :
➢ Une base de données (BD) est un ensemble structuré de données peu
redondantes que possible enregistrés (stockées) sur des supports accessibles
par l’ordinateur de façon à être indépendantes des programmes qui les
utilisent.
➢ Par exemple, dans une entreprise constituée de plusieurs services (service
commercial, service d’approvisionnement, etc.), la BD sera partagée et
utilisée par différents services qui n’ont pas les mêmes besoins.
Introduction aux Bases de Données : Cycle de vie
• Recherche d’informations
Utilisation • Mise a jour de la BD
Introduction aux Bases de Données : SGBD
❑ Définition :
➢ Le SGBD est un logiciel (ensemble de programmes) permettant à un
utilisateur d’interagir avec une base de données. Le SGBD assure la création
et l’exploitation des BD.
➢ A titre d’exemple, il permet aux utilisateurs de créer une BD, extraire,
modifier ou supprimer des données…
➢ Contrairement aux programmes utilisés avec les fichiers classiques, on ne
connaît pas l’implantation physique des données.
➢ Exemple de SGBD : Oracle, SQL Server, MySQL, PostgreSQL, …
Introduction aux Bases de Données : SGBD
❑ MySQL:
➢ Système de Gestion de Base de Données Relationnel
➢ Open Source et téléchargeable à volonté (ou presque)
➢ Arrivé au même niveau de maturité que les grands SGBD
➢ Fonctionnalités riches et grande performance
➢ Ouvert à tous les principaux langages du marché
➢ Fonctionnement sur les OS les plus courants
➢ Facilité d’utilisation pour les applications Web
➢ Depuis 2009 racheté par Oracle
Introduction aux Bases de Données : SGBD
❑ MariaDB:
➢ Système de Gestion de Base de Données Relationnel
➢ Open Source et téléchargeable à volonté
➢ Fondé par le créateur de MySQL après son rachat par Oracle
➢ Basé sur la version open source de MySQL
Introduction aux Bases de Données : SGBD
❑ MySQL:
➢ Aller sur le lien https://dev.mysql.com/downloads/mysql/ et choisir la
version a télécharger selon le système d’exploitation
❑ MariaDB :
➢ Aller sur le lien https://mariadb.org/download/ et choisir la version a
télécharger selon le système d’exploitation
Introduction aux Bases de Données
❑ Plusieurs types de modèles:
➢ Modèle hiérarchique
➢ Modèle reseau
➢ Modèle relationnel (SQL)
➢ Modèle orientée objet
➢ Modèle objet relationnel
➢ Modèle NoSQL
on s’intéresse au modèle relationnel
Introduction aux Bases de Données : modèle
relationnel
❑ base sur un concept connu en mathématiques : algèbre relationnel
❑ en BD, une relation correspond à une table
❑ le concept relation a été repris par la suite dans plusieurs autres disciplines
telles que :
➢ la théorie des graphes
➢ l’intelligence artificielle
❑ Tous les SGBDR utilisent le langage SQL pour interroger les bases de
données
Chapitre II
Le Langage SQL
Le Langage SQL: Introduction
Interrogation des
SELECT données (LID)
COMMIT – ROLLBACK –
Contrôle des données
SAVEPOINT - SET
(LCD)
TRANSACTION…
Le Langage SQL: Base de donnée
❑ Une base de données est composée de plusieurs tables
❑ Une table comporte plusieurs colonnes
❑ Chaque ligne d’une table est appelée tuple (n-uplet)
❑ Chaque table doit posséder une clé
❑ S’il existe plusieurs clés pour une table, on en choisit une et elle sera
appelée clé primaire (elle peut être composé)
❑ Une clé primaire est un ensemble de colonne minimale qui identifie les
tuples
❑ Une colonne d’une table est dite clé étrangère si elle est clé primaire dans
une autre table
Le Langage SQL: Base de donnée
❑ Les propriétés A.C.I.D
❑ Atomicité : une transaction se fait au complet ou pas du tout.
❑ Cohérence : chaque transaction amènera la base d’un état valide a un autre
état valide.
❑ Isolation : Toute transaction doit s’exécuter comme si elle était la seule sur
le système. Ses modifications ne sont accessibles que lorsque la transaction
a été validée.
❑ Durabilité : Une fois la transaction validée, elle demeure enregistrée même a
la suite d’une panne ou autre.
Le Langage SQL: Base de donnée
❑ Dans le cadre de ce cours nous utiliserons le SGBDR MySQL qui est basé sur
l’architecture client-serveur;
❑ Au sein d’un serveur on peut créer autant de BD que l’on veut, chaque BD doit
avoir son propre nom;
❑ Dans une BD on peut trouvés plusieurs tables, une table appartienne à une
seule BD,
❑ Remarque: Chaque requête SQL doit se terminer par un point virgule « ;
».
Le Langage SQL: Base de donnée
❑ Pour créer une base de données qui sera appelé « mydb » il suffit d’utiliser
la requête suivante:
❑ Création:
CREATE DATABASE bd_Name;
❑ Suppression :
DROP DATABASE [IF EXISTS] bd_Name;
❑ IF EXISTS : pour éviter le message d’erreur si la BD n’existe pas.
❑ Pour utiliser la base de données
USE bd_Name;
❑ Pour afficher toutes les bases de données
SHOW DATABASES;
Le Langage SQL: Les commentaires
❑ Pour créer une table exécuter une requête contenant la commande CREATE
TABLE :
❑ Exemple :
Le Langage SQL: Les Types De Base
❑ Pour décrire les colonnes d’une table, MySQL fournit les types prédéfinis
suivants:
❑ Alphanumériques: CHAR, VARCHAR, TINYTEXT, TEXT,
MEDIUMTEXT, LONGTEXT;
❑ Numériques: TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER,
BIGINT, FLOAT, DOUBLE, REAL, DECIMAL, NUMERIC;
❑ Date/Heure: DATE, DATETIME, TIME, YEAR, TIMESTAMP;
❑ Données binaires: BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB;
❑ Énumérations: ENUM, SET.
Le Langage SQL: Les Types De Base (Alphanumériques)
❑ Pour les chaînes fixe les valeurs sont stockées en ajoutant des blancs si sa
taille est inférieure à n. Ces blancs ne seront pas considérés après extraction
à partir de la table;
❑ Pour les chaînes variable les valeurs sont stockées sans l’ajout de blancs, on
stocke la chaîne plus la longueur de la chaîne stockées.
Le Langage SQL: Les Types De Base (Numérique:Entier)
❑ Dans toute instruction SQL, écrivez la virgule avec un point (7/2 retourne 3.5).
Le Langage SQL: Les Types De Base (Date & heure)
Le Langage SQL: Les Types De Base (Données Binaires)
❑ Les types BLOB (Binary Large OBject) permettent de stocker des données non
structurées comme le multimédia (images, sons, vidéo, etc.). Ces types sont traités
comme des flots d’octets sans jeu de caractère associé
Le Langage SQL: Les Types De Base (Énumération)
❑ Les Contraintes d’intégrités sont les règles que l’on peut demander au
SGBD de garantir (vérification automatique par le SGBD); Les contraintes
sur une colonne sont :
➢ NOT NULL;
➢ DEFAULT ;
➢ UNIQUE ;
➢ CHEK(Condition) ;
➢ PRIMARY KEY ;
➢ FOREIGN KEY.
Le Langage SQL: Contraintes d’Intégrités (NOT NULL)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (Default)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (Unique)
❑ La contrainte UNIQUE est une contrainte d’intégrité imposant que toute les
valeurs de la colonne soient distinctes (impossibles de trouvé deux lignes ou
plus ayant les mêmes valeurs pour cette colonne);
❑ Pour appliquer cette contrainte utiliser le mot clé UNIQUE pendant la
définition des colonnes de la table;
Le Langage SQL: Contraintes d’Intégrités (Unique)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (CHECK)
❑ La norme SQL2 comprend une contrainte d’intégrité CHECK (condition) imposant
qu'une colonne d’une table doit comporter des valeurs vérifiant la condition;
❑ Pour appliquer cette contrainte utiliser le mot clé CHECK puis exprimer la condition
entre parenthèse pendant la définition des colonnes de la table, ou créer une contrainte
avec le mot clé CONSTRAINT et exprimer la condition avec CHECK;
❑ Pour MySQL Cette contrainte est prise en charge au niveau de la déclaration mais n’est
pas encore opérationnelle
Le Langage SQL: Contraintes d’Intégrités (CHECK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (PK)
❑ La contrainte PRIMARY KEY déclare la clé primaire de la table, les colonnes clés
primaires ne peuvent être ni nulles ni identiques;
❑ Pour appliquer cette contrainte utiliser le mot clé PRIMARY KEY pendant la définition
des colonnes de la table, ou créer une contrainte avec le mot clé CONSTRAINT puis
exprimer la clé primaire avec PRIMARY KEY
Le Langage SQL: Contraintes d’Intégrités (PK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (PK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (PK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (FK)
❑ La contrainte FOREIGN KEY déclare la clé étrangère qui permet de mettre en place
une contrainte de référence entre une ou plusieurs colonnes d'une table et les colonnes
composantes les clés primaires des autres tables;
❑ Pour appliquer cette contrainte utiliser les mots clés FOREIGN KEY et
REFERENCES ou créer une contrainte avec le mot clé CONSTRAINT puis exprimer
la clé étrangère avec FOREIGN KEY;
❑ Remarque: la table référencée(clé primaire) doit être créée avant la table qui la
référence(clé étrangère)
Le Langage SQL: Contraintes d’Intégrités (FK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (FK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (FK)
❑ Que se passe-t-il quand la violation d’une contrainte d’intégrité référentielle est détectée
par le SGBD? par exemple supprimer (ou modifier) le NumInscEt d’un étudiant qui a
des notes (référencé comme clé étrangère);
❑ Par défaut, le SGBD empêche l’exécution de cette requête en affichant un message
d’erreur; Il est possible de demander la répercussion de cette mise à jour de manière à ce
que la contrainte soit respectée;
❑ Les événements que l’on peut répercuter sont la modification ou la suppression de la
ligne référencée, On les désignes par ON UPDATE et ON DELETE respectivement.
Le Langage SQL: Contraintes d’Intégrités (FK)
Les répercussions que l’on peut demandées à MySQL sont:
❑ RESTRICT: opération par défaut, MySQL empêche l’exécution de la requête ;
❑ NO ACTION: même opération que RESTRICT;
❑ SET NULL: met NULL les valeurs des lignes de table qui référence (met NULL les clés
étrangères qui référence la valeur concernée);
❑ CASCADE: appliquer la même opération aux valeurs des lignes de table qui référence
(modification ou suppression des clés étrangères qui référence la valeur concernée)
Le Langage SQL: Contraintes d’Intégrités (FK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (FK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités (FK)
❑ Exemple :
Le Langage SQL: Contraintes d’Intégrités(AUTO_INCREMENT)
❑ Exemple :
Le Langage SQL: Describe
Describe Nom_Table;
Le Langage SQL: Show
❑ Pour afficher la liste des tables de la base de donnée on utilise la directive SHOW
TABLES
SHOW Tables;
Le Langage SQL: Modification des structures des tables
Modification des structures des tables
❑ Ajouter une colonne
❑ Modifier une colonne
❑ Supprimer une colonne
❑ Renommer une colonne
❑ Ajouter une contrainte
❑ Vider, renommer ou supprimer une table
Le Langage SQL: Modification des structures des tables
❑ La définition de la structure d’une table n’est qu’une première étape dans la vie d’une
base de données;
❑ On est toujours amené par la suite à créer de nouvelles tables, à ajouter des colonnes ou à
en modifier leurs définition;
❑ La forme générale de la requête permettant de modifier la structure d’une table est :
❑ Pour ajouter une colonne exécuter une requête contenant la commande ALTER
conjointement avec l’action ADD.
Le Langage SQL: Modification des colonnes
❑ Pour modifier une colonne exécuter une requête contenant la commande ALTER
conjointement avec l’action MODIFY;
❑ Exemple :
Le Langage SQL: Suppression des colonnes
❑ Pour supprimer une colonne exécuter une requête contenant la commande ALTER
conjointement avec l’action DROP
Le Langage SQL: Renommer des colonnes
❑ Pour renommer une colonne exécuter une requête contenant la commande ALTER
conjointement avec l’action CHANGE
Le Langage SQL: Ajouter une Contrainte
❑ Pour ajouter une contrainte exécuter une requête contenant la commande ALTER
conjointement avec l’action ADD CONSTRAINT
Le Langage SQL: Ajouter une Contrainte
❑ Pour ajouter (ou modifier) une contrainte valeur par défaut exécuter une requête
contenant la commande ALTER conjointement avec l’action SET DEFAULT;
Le Langage SQL: Vider, Renommer, Ou supprimer une table
❑ Pour Vider une table exécuter une requête contenant la commande TRUNCATE;
❑ Pour renommer une table exécuter une requête contenant la commande ALTER
conjointement avec l’action RENAME TO;
❑ Pour supprimer une table exécuter une requête contenant la commande DROP;
Le Langage SQL: Moteur de stockage
❑ Un moteur de stockage, aussi appelé moteur de table, est un ensemble d’algorithme qui
permettent de stocker et d’accéder aux données dans un Système de Gestion de Base de
Données (SGBD). En règle général, les SGBD utilisent chacun qu’un seul moteur de
stockage qui est optimisé au mieux pour la lecture, l’écriture et la suppression de
données.
❑ MySQL se démarque des autres SGBD car il propose libre choix à ses utilisateurs
d’utiliser un moteur de table parmi plusieurs moteurs différents.
❑ Chaque moteur offre des avantages mais aussi des inconvénients
Le Langage SQL: Moteur de stockage
❑ Les éléments ci-dessous présente une liste non-exhaustive des principaux moteurs de
stockage :
➢ MyISAM
➢ InnoDB
➢ BDB (ou BerkeleyDB)
➢ Archive
➢ Aria
➢ BLACKHOLE
❑ Les moteurs les plus utilisés sont : MyISAM et InnoDB
Le Langage SQL: Moteur de stockage
❑ MyISAM est le moteur par défaut dans les versions de MySQL inférieures à 5.5 et ce,
depuis la version 3.23. MyISAM est un moteur non-transactionnel ce qui explique qu’il
est rapide (surtout en lecture). Il faut noter qu’il ne gère ni les relations, ni les
transactions. C’est un moteur qui perd énormément en intégrité à cause des points
précédents, en revanche il gagne de la vitesse.
❑ Les avantages :
➢ Très rapide pour les requêtes de type SELECT ou INSERT
❑ Les inconvénients :
➢ Il ne supporte pas les transactions
➢ Il ne supporte pas les clés étrangères
Le Langage SQL: Moteur de stockage
❑ InnoDB est apparu par la suite ; la plus importante différence avec MyISAM est qu’InnoDB est un
moteur relationnel : il permet de créer des contraintes d’intégrité, tout comme d’autres SGBD comme
PostgreSQL, SQL Server ou Oracle. Ainsi, l’utilisateur est certain que les relations entre les tables
sont cohérentes et que les changements effectués sur les données contenues dans ces tables seront
transmis aux tables qui y sont liées.
❑ Les avantages :
➢ Il gère les transactions (instructions sql BEGIN, COMMIT, ROLLBACK…)
➢ Il supporte les clés étrangères et les intégrités référentielles
❑ Les inconvénients :
➢ Le moteur de stockage est parfois plus lent que d’autres et gourmand en ressources mémoires
➢ InnoDB prend de 1,5 à 2 fois la place qu’occupe une table MyISAM, ce qui n’est pas
négligeable dans certains cas
Le Langage SQL: Moteur de stockage
❑ Exemple :
❑ Introduction
❑ La commande INSERT
❑ La commande UPDATE
❑ La commande DELETE
Le Langage SQL (LMD): Insertion
❑ Pour insérer des données dans une table utiliser la commande INSERT, cette commande
permet d’insérer plusieurs lignes dans une table;
❑ La liste des colonnes entre crochets [ ] est optionnelle (n’est pas obligatoire), par défaut
toutes les colonnes sont classées dans l’ordre donné lors de la création de la table;
❑ Si la commande comporte une liste de colonnes, les colonnes qui ne sont pas
mentionnées dans la liste auront la valeur par défaut ou la valeur NULL
Le Langage SQL (LMD): Insertion
Le Langage SQL (LMD): Insertion
Le Langage SQL (LMD): Insertion
Le Langage SQL (LMD): Insertion
Le Langage SQL (LMD): Mise à jour
❑ Pour modifier des données dans une table utiliser la commande UPDATE, cette
commande permet de modifier plusieurs lignes dans une table;
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
Opérateur Description
* Multiplication
/ Division
% Modulo (reste de la division
+ Addition
- Soustraction
Le Langage SQL (LID): Opérateurs arithmétiques
❑ Pour afficher le prix TTC d’un produit on peut utiliser la requête suivante:
❑ Pour afficher le prix d’un produit après réduction de 20%, on utilise la requête :
❑ On peut même utiliser Mysql uniquement pour des calcules (sans utilisé de table) :
❑ Soit l’extension de la
table Etudiant:
❑ Ces opérateurs peuvent être combinés à l’infini et mélangés. L’exemple ci-dessous filtre les
résultats de la table “nom_table” si condition1 ET condition2 OU condition3 est vrai :
❑ Attention : il faut penser à utiliser des parenthèses lorsque c’est nécessaire. Cela permet
d’éviter les erreurs car et ça améliore la lecture d’une requête par un humain.
Le Langage SQL (LID): WHERE (AND/OR)
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
SELECT nom_colonne
FROM table
WHERE nom_colonne IN ( valeur1, valeur2, valeur3, ... )
Le Langage SQL (LID): WHERE (IN)
❑ Soit l’extension de la
table Etudiant:
SELECT *
FROM `table` WHERE nom_colonne IS NULL
SELECT *
FROM `table` WHERE nom_colonne IS NOT NULL
Le Langage SQL (LID): WHERE (IS NULL/IS NOT
NULL)
❑ Soit l’extension de la
table Note:
❑ Soit l’extension de la
table Note:
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
❑ Soit l’extension de la
table Etudiant:
Soit la table Etudiant (CNE, nom, prenom, age, ville). Ecrire les requêtes
SQL qui permet de :
❑ Afficher les villes des étudiants sans doublon.
❑ Afficher les étudiants des villes qui ne commence pas par « T »
❑ Afficher les étudiants qui ont un prénom soit « Ahmed » soit « Said » soit
« karim »
❑ Afficher les étudiants qui ont des villes inconnu
❑ Afficher la liste des étudiant avec l’âge supérieur a 18 ans et qui habitent a
Oujda.
Le Langage SQL (LID): Jointure
❑ La jointure est l'opération primordiale (la plus courante) dans le langage SQL car elle
permet d’exprimer des requêtes qui établissent des liens entre plusieurs tables ;
❑ Les principaux types de jointures sont:
➢ Jointure Naturelle;
➢ θ-Jointure;
➢ Equijointure;
➢ Jointure externe;
➢ Auto-Jointure
Le Langage SQL (LID): Jointure Naturelle
❑ Définition :
La jointure naturelle de deux tables R et S qui ont des colonnes communes, donne une
table R’ ayant pour structure les colonnes appartenant à R et S (les colonnes communes
n’apparaissent qu’une seule fois) formée de toutes les combinaisons des lignes de R et de
S ayant les mêmes valeurs pour les colonnes communes.
❑ Pour exprimer la jointure naturelle utiliser le mot clé NATURAL JOIN en respectant la
syntaxe suivante:
Le Langage SQL (LID): Jointure Naturelle
❑ La requête suivante:
❑ Définition :
La thêta jointure de deux tables R et S selon une qualification Q donne une table
R’ ayant pour structure les colonnes appartenant à R et S formée de toutes les
combinaisons des lignes de R et de S qui satisfont à la qualification Q.
❑ Pour exprimer la thêta jointure utiliser le mot clé JOIN en respectant la syntaxe suivante:
Le Langage SQL (LID): θ-Jointure
❑ La requête suivante:
❑ Définition :
Le produit cartésien de deux tables R et S donne une table R’ ayant pour structure
la concaténation des colonnes de R et de S, formée de toutes les combinaisons des
lignes de R avec toutes les lignes de S.
❑ La requête suivante:
❑ Définition :
❑ Définition :
La jointure externe droite: est une θ-jointure sur deux tables R et S en ajoutant à
la table résultante (de la θ-jointure) toutes les lignes de la deuxième table (S) qui ne
vérifient pas les critères de jointure combinées avec des valeurs NULL
❑ Pour exprimer la jointure externe droite utiliser le mot clé RIGHT OUTER JOIN en
respectant la syntaxe suivante:
Le Langage SQL (LID): La jointure externe droite
❑ La requête suivante:
❑ Définition :
La jointure externe gauche: est une θ-jointure sur deux tables R et S en ajoutant à
la table résultante (de la θ-jointure) toutes les lignes de la première table(R) qui ne
vérifient pas les critères de jointure combinées avec des valeurs NULL
❑ Pour exprimer la jointure externe gauche utiliser le mot clé LEFT OUTER JOIN en
respectant la syntaxe suivante:
Le Langage SQL (LID): La jointure externe gauche
❑ La requête suivante:
❑ La requête suivante:
❑ La requête suivante:
Le Langage SQL (LID): L'auto-jointure
❑ La requête suivante:
❑ La requête suivante:
❑ Les fonctions sont des expressions faisant partie de la requête SQL qui
permettent de calculer des valeurs à partir des arguments passés en
paramètres;
❑ Les fonctions sont principalement utilisées pour :
➢ Calculer des valeurs à partir de données;
➢ Convertir des données;
➢ Effectuer des calculs sur des groupes de lignes;
➢ Formater l’affichage des données dates et nombres
Le Langage SQL: Les Fonctions – Les Types
Le Langage SQL: Les Fonctions - Mono-Ligne
❑ Les fonctions mono-ligne agissent sur une seule ligne à la fois et retournent une seule
valeur par ligne;
❑ Un argument peut être: une constante, un nom d’une colonne ou une expression;
❑ Caractéristiques des fonctions mono-ligne :
➢ Agissent sur chaque ligne retournées dans la requête;
➢ Retournent un résultat par ligne;
➢ Peuvent retourner une donnée dont le type est différent du type de la donnée initiale;
➢ Peuvent ne pas avoir des arguments ou accepter un ou plusieurs arguments;
➢ Sont utilisées dans les clauses SELECT, WHERE et ORDER BY;
➢ Peuvent être imbriquées (appeler une fonction à l’intérieur d’une autre fonction).
Le Langage SQL: Les Fonctions - Mono-Ligne
❑ Le résultat est la somme des valeurs des lignes non nulles divisée par le nombre de
lignes dont les valeurs non nulles.
Le Langage SQL: Les Fonctions - Multi-Ligne (AVG)
❑ Les fonctions MAX et MIN s’appliquent pour les données de type numérique, caractères
et date
Le Langage SQL:Les Fonctions-Multi-Ligne(MIN/MAX)
❑ Pour connaitre le nombre de lignes non nulles pour une colonne utiliser la syntaxe
suivante
❑ Pour connaitre le nombre de lignes distinctes (sans compter les valeurs en double)
pour une colonne utiliser la syntaxe suivante:
Le Langage SQL: Les Fonctions - Multi-Ligne (Count)
❑ La clause HAVING est utilisée pour sélectionner des groupes alors que la clause
WHERE est utilisée pour sélectionner des lignes.
Le Langage SQL: Les Fonctions - Multi-Ligne(Having)
❑Introduction
❑Sous-requête retournant une seule ligne
❑Sous-requête retournant plusieurs lignes
Le Langage SQL: Les Sous-requêtes - Introduction
❑ Une sous-requête est une requête SQL imbriquée dans une clause d’une autre requête
(requête à l'intérieur d'une autre) qui consiste à utiliser une requête pour réaliser une
autre; La forme générale d’une sous-requête est la suivante:
❑ Une sous-requête doit être placée entre parenthèse à la suite des clauses SQL suivantes:
➢ FROM;
➢ WHERE;
➢ HAVING.
❑ Operateur : dépend du résultat de la requête imbriquée : une ligne ou bien plusieurs
lignes
Le Langage SQL: Les Sous-requêtes - Introduction
❑ Les requêtes sont exécutées en commençant par la requête la plus profonde en remontant
vers la requête la plus externe : de Requete_n vers la Requete_1;
❑ Si la sous-requête retourne une seule ligne on utilise les opérateurs suivants:
>, >=, <, <=, =, !=
❑ Si la sous-requête retourne plusieurs lignes on utilise les opérateurs suivants:
➢ IN;
➢ ANY;
➢ SOME;
➢ ALL;
➢ EXISTS.
❑ Une sous-requête peut être utilisée dans une requête de type SELECT, INSERT, UPDATE
ou DELETE.
Le Langage SQL: Les Sous-requêtes–Une seul ligne
❑ La requête suivante:
❑ La requête suivante:
❑ La requête suivante:
❑ Donne le résultat suivant: les médecins qui gagnent un salaire supérieur de tous les
médecin du service 1