0% found this document useful (0 votes)
61 views40 pages

SQL - LMD

This document provides an introduction to SQL language for manipulating database data. It describes the basic SQL commands such as SELECT, FROM, WHERE, GROUP BY, HAVING, and ORDER BY. It provides examples of using these commands to query data from tables, filter results, group and summarize data, and sort results. It also covers SQL functions, subqueries, and logical operators that can be used in SQL statements. The overall purpose is to explain the core components of the SQL language.

Uploaded by

Ahlam Mejdoul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views40 pages

SQL - LMD

This document provides an introduction to SQL language for manipulating database data. It describes the basic SQL commands such as SELECT, FROM, WHERE, GROUP BY, HAVING, and ORDER BY. It provides examples of using these commands to query data from tables, filter results, group and summarize data, and sort results. It also covers SQL functions, subqueries, and logical operators that can be used in SQL statements. The overall purpose is to explain the core components of the SQL language.

Uploaded by

Ahlam Mejdoul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

BASES DE DONNEES

140 H
OBJECTIF

• Ce module de compétence particulière s'inscrit dans la


deuxième année du programme d'étude.
• Il constitue un préalable pour l'enseignement des modules : «
Développement web côté serveur », «Développement
d’applications Client/Serveur» et « projet de fin d’études ».
• Il permet au stagiaire, d’abord de concevoir et modéliser un
système d'information, et par la suite de créer et manipuler une
base de données et d’adapter et manipuler les données en
utilisant le langage SQL,
LANGAGE DE
MANIPULATION DE DONNÉE
INTRODUCTION

• LMD est le sous ensemble du langage SQL utilisé


pour manipuler des données au sein d’un Système de
Gestion de Bases de Données Relationnel.
• S.Q.L. signifie Structured Query Language.
• Il n’existe pas de S.G.B.D. Relationnel sans S.Q.L.
• S.Q.L. est un langage relationnel qui permet
d’effectuer les tâches suivantes ::
Définition et modification de la structure de la
base de données
Interrogation et modification de la base de données
Contrôle de sécurité et d’intégrité de la base
OPÉRATION DE SÉLECTION

• L’instruction SELECT permet d’extraire des données et de les


présenter triées et/ou regroupées suivant certains critères.
• Les enregistrements doivent vérifier certains critères exprimés
dans des expression conditionnelles.
• Syntaxe de l’instruction SELECT

SELECT liste des attributs à afficher ou *


[DISTINCT] mot clé facultatif (élimination des doublons)
FROM liste des noms de tables
[WHERE] condition sur les attributs
[GROUP BY] nom de l’attribut de regroupement
[HAVING] condition de regroupement
[ORDER BY] critère de tri
[DESC] Ordre de tri descendant
TRAITEMENT D'UNE REQUÊTE LOGIQUE

• L'ordre dans lequel une requête est écrite n'est pas l'ordre dans
lequel elle est évaluée par SQL Server

5: SELECT <select list>

1: FROM <table source>

2: WHERE <search condition>

3: GROUP BY <group by list>

4: HAVING <search condition>

6: ORDER BY <order by list>


EXEMPLE VOLAVION
OPÉRATION DE SÉLECTION

• Requêtes sur une seule table:


SELECT *
FROM Vol
WHERE HeureDepart > 16
• Nous n’avons pas besoin de tous les, attributs, et il s’agit d’un
vol au départ de Toulouse et à destination de Grenoble, Nous
allons donc restreindre les attributs retenus dans l’opération
SELECT au moyen d’une Projection et compléter la clause
Where:

SELECT vol#,heuredepart,heurearrivee
FROM vol
WHERE heuredepart > 16
AND villedepart LIKE Toulou%'
AND villearrivee = 'Grenoble'
• Utilisation du mot clé DISTINCT
• Le résultat d’un SELECT étant un ensemble, il peut y avoir
des doublons. Le mot clé DISTINCT permet de préciser que
l’on ne veut qu’un seul exemplaire des lignes retenues dans la
sélection.
SELECT DISTINCT Marque, TypeAvion, Capacite
FROM AVION
WHERE Capacite > 250
ORDER BY Capacite DESC
FONCTIONS DE GROUPE

• Nous pouvons travailler sur des données consolidées au travers


de requêtes qui, à partir d’un ensemble de lignes sélectionnées,
réalisent des opérations de synthèse sur ces données.
• Nous pouvons combiner ainsi des fonctions récapitulatives à la
liste des attributs sélectionnés :
 SUM somme des valeurs de l’attribut
 MIN minimum des valeurs de l’attribut
 MAX maximum des valeurs de l’attribut
 AVG moyenne des valeurs
 COUNT nombre d’enregistrements sélectionnés
• Nous avons à notre disposition des clauses spécifiques à la
construction de requêtes récapitulatives. Nous avons ainsi les
clauses :
GROUP BY permet d’exprimer sur quels attributs sont
agrégés les données.
HAVING permet de définir une condition sur des valeurs
de regroupement.
Exemples :
• Nombre d’avions dans la table AVION :
SELECT COUNT(AV#)
FROM AVION
• Mécanisme des alias : NomColonne AS NomAlias
SELECT COUNT(AV#) as "Nombre Avions""
FROM AVION
GROUPEMENT

• Je peux aussi vouloir comptabiliser le nombre d’avions par


marque. La clause GROUP BY me permet alors de définir les
conditions de regroupement des calculs récapitulatifs :
 SELECT COUNT(AV#) as "Nombre Avions"
FROM AVION
GROUP BY Marque
 SELECT Marque,COUNT(AV#) as "Nombre Avions"
FROM AVION
GROUP BY Marque
ORDER BY "Nombre Avions" DESC
(ORDER BY COUNT(AV#) DESC )
HAVING
• On veux aussi ne pas vouloir conserver dans mon résultat les marques dont le nombre d’ avions est
inférieur à 3.J’introduis alors dans ma requête une clause HAVING qui exprime une condition sur
une opération de regroupement.
SELECT Marque, COUNT(AV#) as "Nombre Avions"
FROM AVION
GROUP BY Marque
HAVING COUNT(AV#) >= 3
oon ne peut pas utiliser "Nombre Avions""
ORDER BY COUNT(AV#) DESC
Capacités minimum et maximum des Boeing.
SELECT MIN(Capacite) as "Capacite Mini Boeing",
MAX(Capacite) as "Capacite Maxi Boeing"
FROM AVION
WHERE Marque = 'BOEING'
OPÉRATION SUR LA SÉLECTION

On peut utilisé dans la sélection les opérateur suivant:


• Opérateurs arithmétiques
• Opérateurs de comparaison
• Opérateurs logiques
• Opérateur(fonctions) de traitement de chaînes
• Opérateur(fonctions) de traitement de de date
EXEMPLES

• Liste des vols au départ de Toulouse et a destination de Paris entre 12 et 15 heures.


 SELECT vol#, villedepart, villearrivee, heuredepart, , heurearrivee FROM
Vol
WHERE Heuredepart BETWEEN 12 AND 15 AND villedepart LIKE
'TOULO%‘ AND villearrivee LIKE 'PAR%‘
• Liste des Pilotes dont le nom contient la chaîne el
 SELECT nom
FROM Pilote
Where nom LIKE '%el%‘
• Liste des Pilotes dont le 3ème caractère du nom est un r
 SELECT nom
FROM Pilote
Where nom LIKE '__r%'
• Liste des Pilotes dont le nom comporte les caractères u,c,ou l,
 SELECT nom
FROM Pilote
Where nom LIKE '%[lcu]%‘
• Liste des Pilotes dont le nom commence par le caractère m ou l
 SELECT nom
FROM Pilote
Where nom LIKE '[ml]%‘
• /*Liste des Pilotes dont le nom commence par le caractère m ou l et se termine
par l */
 SELECT nom
FROM Pilote
Where nom LIKE '[ml]%l‘
LES FONCTIONS INTÉGRÉES

Fonctions de conversion
• Certaines conversions ne peuvent être automatiquement
réalisées par le système. Nous devons alors réaliser ces
conversions
Syntaxe:

CAST(expression AS data_type[(length)])

CONVERT(data_type [(length)], expression [,style]).


• Exemple
SELECT CONVERT(DATETIME,'10-14-2011',110) AS
"Date au Format USA"
SELECT CONVERT(varchar,GetDate(),105) AS "Date au
Format Italien"
SELECT CONVERT(Decimal(10,3),sum(prix)) AS "TOTAL
CA Net" FROM affectevol
SELECT Cast(Getdate() as varchar) as “Date Texte”
Fonctions de traitement de chaînes
• Quelques exemples dans ce tableau car elles sont nombreuses
• Exemple :
Liste des noms des pilotes formatés. Le premier caractère de
gauche est mis en majuscules, Les autres caractères en
minuscules
• SELECT Upper(Substring(Nom,1,1)) +
Lower(Substring(Nom,2,Len(Nom)-1)) FROM PILOTE
• Fonctions de manipulation de dates :
Exemple :
Nombre de jours entre la date de naissance et la date du
jour.
SELECT NOM,DATEDIFF(DAY,DateNaissance,GETDATE())
as "Nombre jours depuis Naissance " FROM Pilote
Extrait de portions de la date de naissance avec DatePart
et DateName
SELECT DATEPART(MONTH,DateNaissance),
DATENAME(MONTH,DateNaissance) FROM PILOTE
SQL SOUS-REQUÊTE

• Dans le langage SQL une sous-requête (aussi appelé


« requête imbriquée » ou « requête en cascade »)
consiste à exécuter une requête à l’intérieur d’une
autre requête. Une requête imbriquée est souvent
utilisée au sein d’une clause WHERE
• Il y a plusieurs façons d’utiliser les sous-requêtes. 
REQUÊTE IMBRIQUÉE QUI RETOURNE UN SEUL RÉSULTAT

• L’exemple ci-dessous est une exemple typique d’une sous-


requête qui retourne un seul résultat à la requête principale.

Syntaxe :

• SELECT * FROM `table` WHERE `nom_colonne` =


( SELECT `valeur` FROM `table2` LIMIT 1 )

A noter : il est possible d’utiliser n’importe quel opérateur


d’égalité tel que =, >, <, >=, <= ou <>.
REQUÊTE IMBRIQUÉE QUI RETOURNE UNE COLONNE

• Une requête imbriquée peut également retournée une colonne


entière. Dès lors, la requête externe peut utiliser la commande
IN pour filtrer les lignes qui possèdent une des valeurs
retournées par la requête interne.

• SELECT * FROM `table` WHERE `nom_colonne`


IN ( SELECT `colonne` FROM `table2`
WHERE `cle_etrangere` = 36 )
SQL ALL

• La commande ALL permet de comparer une valeur dans


l’ensemble de valeurs d’une sous-requête
• cette commande permet de s’assurer qu’une condition est
« égale », « différente », « supérieure », « inférieure »,
« supérieure ou égale » ou « inférieure ou égale »
pour tous les résultats retourné par une sous-requête.
• Syntaxe :
• SELECT * FROM table1 WHERE condition > ALL (  
SELECT *   FROM table2   WHERE condition2 )
SQL ANY / SOME

• la commande ANY (ou SOME) permet de comparer une


valeur avec le résultat d’une sous-requête. Il est ainsi possible
de vérifier si une valeur est « égale », « différente »,
« supérieur », « supérieur ou égale », « inférieur » ou
« inférieur ou égale » pour au moins une des valeurs de la
sous-requête.
• Syntaxe :
• SELECT * FROM table1
WHERE condition > ANY
( SELECT * FROM table2 WHERE condition2 )
SQL EXISTS

• la commande EXISTS s’utilise dans une clause conditionnelle


pour savoir s’il y a une présence ou non de lignes lors de
l’utilisation d’une sous-requête.
• La requête externe s’exécutera uniquement si la requête
interne retourne au moins un résultat.
Syntaxe:
SELECT nom_colonne1 FROM `table1`
WHERE EXISTS
(SELECT nom_colonne2  FROM `table2`     WHERE
nom_colonne3 = 10   )
SQL UNION
Syntaxe :
La syntaxe pour unir les résultats de 2 tableaux sans afficher les
doublons est la suivante:

SELECT * FROM table1


UNION
SELECT * FROM table2
SQL UNION ALL

Syntaxe :
La syntaxe pour unir les résultats de 2 tableaux et afficher les
doublons est la suivante:

SELECT * FROM table1


UNION ALL
SELECT * FROM table2
JOINTURE SQL

• Les jointures en SQL permettent d’associer plusieurs tables


dans une même requête. Cela permet d’exploiter la puissance
des bases de données relationnelles pour obtenir des résultats
qui combinent les données de plusieurs tables de manière
efficace.
SQL INNER JOIN

• Cette commande retourne les enregistrements lorsqu’il y a au


moins une ligne dans chaque colonne qui correspond à la
condition.
Syntaxe :

SELECT * FROM table1


INNER JOIN table2
ON table1.id = table2.fk_id
SQL CROSS JOIN

• Permet de retourner le produit cartésien. cela permet de


retourner chaque ligne d’une table avec chaque ligne d’une
autre table.
Syntaxe :

SELECT * FROM table1


CROSS JOIN table2
Ou
SELECT * FROM table1, table2
SQL LEFT JOIN

• la commande LEFT JOIN (aussi appelée LEFT OUTER JOIN)


est un type de jointure entre 2 tables. Cela permet de lister tous
les résultats de la table de gauche même s’il n’y a pas de
correspondance dans la deuxième tables.
• Syntaxe :

SELECT * FROM table1


LEFT JOIN table2
ON table1.id = table2.fk_id
SQL RIGHT JOIN

• Permet de retourner tous les enregistrements de la table de


droite même s’il n’y a pas de correspondance avec la table de
gauche.
Syntaxe :

SELECT * FROM table1


RIGHT JOIN table2
ON table1.id = table2.fk_id
SQL FULL JOIN

• Permet de faire une jointure entre 2 tables. L’utilisation de


cette commande permet de combiner les résultats des 2 tables,
les associer entre eux grâce à une condition et remplir avec des
valeurs NULL si la condition n’est pas respectée.
Syntaxe :

SELECT * FROM table1


FULL JOIN table2
ON table1.id = table2.fk_id

You might also like