Vous êtes sur la page 1sur 18

Le langage SQL (partie 1) Informatique4

Le langage SQL. (Partie 1)

1/ Définition :
SQL (sigle de Structured Query Language, en français langage de requête
structurée) est un langage informatique normalisé servant à exploiter des bases
de données relationnelles.
- un ensemble d’instruction SQL se nomme une requête.
- une requête SQL se termine par le caractère « ; ».

2/ Opérations relationnelles avec SQL :


Les opérations de l’algèbre relationnelles : projection, sélection, agrégats,
produits cartésiens et jointures, sont présentées en SQL comme suite :

*On considère la base de données ‘casse‘ suivante :


Voiture
Num voit Marque Type Couleur
1 Peugeot 404 Rouge
2 Citroën SM Noire
3 Opel GT Blanche
4 Peugeot 403 Blanche
5 Renault Alpine A310 Rose
6 Renault Floride Bleue

Personne
Num Ach Nom Age Ville
1 Amine 96 Oran
2 Mohammed 20 Alger
3 Ali 45 Oran
4 Reda 34 Mostaganem
5 Salim 50 Relizane

1
Le langage SQL (partie 1) Informatique4

Vente
Date vente prix Num voit Num Ach
2001-12-03 10 000 1 1
2006-05-30 70 000 2 4
2010-06-14 30 000 4 1
2018-04-02 45 000 5 2

2.1 / Projection SELECT


2.1.1- Projection sur les colonnes ‘Nom’ et ‘ville’ de la table ‘Personne’

SELECT Nom, Ville


FROM Personne ;

Résultat :
Nom Ville
Amine Oran
Mohammed Alger
Ali Oran
Reda Mostaganem
Salim Relizane

2.1.2-Projection sur tous les champs de la table ‘Personne’

SELECT *
FROM Personne ;

Résultat :

Num Ach Nom Age Ville


1 Amine 96 Oran
2 Mohammed 20 Alger
3 Ali 45 Oran
4 Reda 34 Mostaganem
5 Salim 50 Relizane

2
Le langage SQL (partie 1) Informatique4

2.1.3-La colonne de la table ‘Personne’ peut être renommée par le mot clé AS

SELECT Ville AS City


FROM Personne;

Résultat :

City
Oran
Alger
Oran
Mostaganem
Relizane

2.1.4- afin d’éliminer les doublons d’une colonne de la table ‘Personne’,


on fait précéder le nom de la colonne par le mot clé DISTINCT.

SELECT DISTINCT Ville


FROM Personne ;

Résultat :
Ville
Oran
Alger
Mostaganem
Relizane

2.1.5- operateurs d’expressions de SQL

+ Addition
- Soustraction
* Multiplication
/ Division
% Modulo

3
Le langage SQL (partie 1) Informatique4

2.1.6- création d’une colonne ‘prix-DA’ dans la table ‘Vente’ contenant le


prix de vente en DA.

SELECT Prix, Date Vente, (Prix/6.5596) AS Prix-DA


FROM Vente ;

Résultat :

prix Date vente Prix-DA


10 000 2001-12-03 1 524.483
70 000 2006-05-30 10 671.382
30 000 2010-06-14 4 573.449
45 000 2018-04-02 6 860.174

2.1.7-transformation d’une colonne ‘Nom’ de la table ‘Personne’ en


majuscule.

SELECT UPPER (Nom) AS Nom Majuscule


FROM Personne;

Résultat :

Nom Majuscule
AMINE
MOHAMMED
ALI
REDA
SALIM

4
Le langage SQL (partie 1) Informatique4

2.1.8- Extraction du mois de la colonne ‘Date Vente’ de la table ‘vente’.

SELECT MONTH (Date vente) AS Mois


FROM Vente;

Résultat:
Mois
12
05
06
04

2.1.9- opérateurs statistiques de SQL:

COUNT Comptage du nombre d’éléments (lignes) de la


table.
MAX Maximum des éléments d’une colonne.
MIN Minimum des éléments d’une colonne.
AVG Moyenne des éléments d’une colonne.
SUM Somme des éléments d’une colonne.

2.1.10- calcul de la moyenne des prix de vente pour la table ‘vente’.

SELECT AVG (prix) AS prix-moyen


FROM Vente ;

Résultat :

Prix-moyen

38 750.000 0

5
Le langage SQL (partie 1) Informatique4

2.1.11- calcul du nombre de personnes de la table ‘personne’, c-a-d le


calcul de nombre de lignes.

SELECT COUNT (*) AS nombre-personne


FROM personne ;

Résultat :

nombre-personne
5

Remarque :
Dans le cas de la fonction COUNT, on ne spécifie pas la colonne sur
laquelle s’applique la fonction puisqu’il s’agit de la table entière.

3/ sélection ou restriction WHERE :

3.1- opérateurs de comparaison SQL :

= égal
<> différent
< inférieur
> supérieur
<= Inférieur ou égal
>= Supérieur ou égal

3.2- extraction des enregistrements de la table ‘vente’ dont le prix est


supérieur à 50 000.
SELECT *
FROM Vente
WHERE prix > 50 000 ;

Résultat :
Date vente prix Num voit Num Ach
2006-05-30 70 000 2 4

6
Le langage SQL (partie 1) Informatique4

4/ operateurs de comparaison spécifiques à SQL permettant de


constituer des expressions :

BETWEEN < valeur> AND <valeur> Appartient à un intervalle

IN <liste de valeurs> Appartient à un ensemble de


valeurs
IS NULL Test si la colonne n’est pas
renseignée
LIKE Compare des chaines de
caractères.

4.1- Extraction des voitures blanches ou rouge, de la table ‘Voiture’.

SELECT *
FROM voiture
WHERE couleur IN (‘’Blanc’’, ‘’Rouge’’);

Résultat :

Num voit Marque Type Couleur


1 peugeot 404 Rouge

4.2- Extraction des personnes dont l’âge est compris entre 40 et 60, de
la table ‘Personne’.

SELECT *
FROM Personne
WHERE Age BETWEEN 40 AND 60 ;

Résultat :

Num Ach Nom Age Ville


3 Ali 45 Oran
5 Salim 50 Relizane

7
Le langage SQL (partie 1) Informatique4

5/ operateurs et connecteurs logique de SQL permettant de constituer


des expressions :

AND Et : les deux conditions sont vraies simultanément


OR Ou : l’une des deux conditions est vraie.
NOT Inversion de la condition

5.1- Extraction des voitures de couleur « Blanche » ou de marque


« peugeot », de la table ‘Voiture’.

SELECT *
FROM Voiture
WHERE Couleur = ‘’Blanche ‘’ OR Marque = ‘’Peugeot’’ ;

Résultat :

Num Voit Marque Type Couleur


1 peugeot 404 Rouge
3 opel GT Blanche
4 peugeot 403 Blanche

5.2- Extraction des personnes n’habitant pas à Oran, de la table


‘Personne’.

SELECT *
FROM Personne
WHERE NOT (ville = ‘Oran’) ;

Résultat :

Num Ach Nom Age Ville


2 Mohammed 20 Alger
4 reda 34 Mostaganem
5 salim 50 Relizane

8
Le langage SQL (partie 1) Informatique4

6/ Agrégats ou groupage (GROUPE BY) :

Les opérations d’agrégation ou de groupage, regroupent les lignes d’une


table par valeurs contenues dans une colonne.

6.1- affichage des différentes marques de voitures de la table ‘voiture’.

SELECT Marque
FROM voiture
GROUP BY Marque ;

Résultats :

Marque
Citroen
Opel
Peugeot
Renault

6.2- calcul du nombre de voitures des différentes marques de la table


‘voiture’.
SELECT Marque, COUNT (*) AS Compte
FROM voiture
GROUP BY Marque ;

Résultat :
Marque Compte
Citroen 1
Opel 1
Peugeot 2
Renault 2

9
Le langage SQL (partie 1) Informatique4

6.3- calcul du nombre de voitures par marque de la table ‘voiture’ dont le


nombre est superieur à 1.

SELECT Marque, COUNT (*) AS Compte


FROM voiture
GROUP BY Marque
HAVING Compte >1;

Résultat :

Marque compte
Peugeot 2
Renault 2

Remarque :
- Le mot clé HAVING permet d’effectuer une sélection sur le résultat de
l’opération de groupage.
- Le mot clé WHERE opère une sélection sur les éléments lignes de la table
avant l’opération de groupage.

6.4- calcul du nombre de voiture par marque de la table ‘voiture’ dont la


couleur n’est pas rouge.

SELECT Marque, COUNT (*) AS Compte


FROM voiture
WHERE NOT (couleur =’ Rouge’)
GROUP BY Marque;

Résultat
Marque Compte
Citroen 1
Opel 1
Peugeot 1
Renault 2

10
Le langage SQL (partie 2) Informatique 4

Le langage SQL. (Partie 2)

*Remarque : on travaille avec les trois tables Voiture, Personne, Vente.


(Voire le cours SQL partie 1)

7/ Requête sur plusieurs tables:

7.1- Qualification des attributs par leur table d’appartenance.

SELECT Voiture.Marque, Voiture.couleur


FROM Voiture ;

Résultat

Marque Couleur
Peugeot Rouge
Citroen Noir
Opel Blanche
Peugeot Blanche
Renault Rose
Renault Bleu

Remarque :
- Cette notation peut devenir difficile si le nombre de table est élevé et si
leurs noms sont longs, dans ce cas on désigne la table par un alias plus
commode qui peut être réduit a une simple lettre , plutôt que par son
nom complet.

- L’alias est indiqué à la suite du nom de la table ou à l’aide du mot clé AS.

1
Le langage SQL (partie 2) Informatique 4

7.2- qualification simplifiée des attributs par leur table d’appartenance.

SELECT Vo.Marque, Vo.Couleur


FROM Voiture AS Vo ;
Résultat :

Marque Couleur
Peugeot Rouge
Citroen Noir
Opel Blanche
Peugeot Blanche
Renault Rose
Renault Bleu

7.3- produit cartésien


Le produit cartésien est la combinaison de toutes les lignes d’une table
avec toutes les lignes d’une autre table.

SELECT *
FROM Personne, Voiture ;

Résultat

2
Le langage SQL (partie 2) Informatique 4

Résultat

Num Nom Age Ville Num Marque Type Couleur


Ach voit
1 Amine 96 Oran 1 Peugeot 404 Rouge
2 Mohammed 20 Alger 1 Peugeot 404 Rouge
3 Ali 45 Oran 1 Peugeot 404 Rouge
4 Reda 34 Mostaganem 1 Peugeot 404 Rouge
5 Salim 50 Relizane 1 Peugeot 404 Rouge
1 Amine 96 Oran 2 Citroën SM Noire
2 Mohammed 20 Alger 2 Citroën SM Noire
3 Ali 45 Oran 2 Citroën SM Noire
4 Reda 34 Mostaganem 2 Citroën SM Noire
5 Salim 50 Relizane 2 Citroën SM Noire
1 Amine 96 Oran 3 Opel GT Blanche
2 Mohammed 20 Alger 3 Opel GT Blanche
3 Ali 45 Oran 3 Opel GT Blanche
4 Reda 34 Mostaganem 3 Opel GT Blanche
5 Salim 50 Relizane 3 Opel GT Blanche
1 Amine 96 Oran 4 Peugeot 403 Blanche

2 Mohammed 20 Alger 4 Peugeot 403 Blanche

3 Ali 45 Oran 4 Peugeot 403 Blanche

4 Reda 34 Mostaganem 4 Peugeot 403 Blanche

5 Salim 50 Relizane 4 Peugeot 403 Blanche

1 Amine 96 Oran 5 Renault Alpine Rose


A310
2 Mohammed 20 Alger 5 Renault Alpine Rose
A310
3 Ali 45 Oran 5 Renault Alpine Rose
A310
4 Reda 34 Mostaganem 5 Renault Alpine Rose
A310
5 Salim 50 Relizane 5 Renault Alpine Rose
A310

3
Le langage SQL (partie 2) Informatique 4

1 Amine 96 Oran 6 Renault Floride Bleue


2 Mohammed 20 Alger 6 Renault Floride Bleue
3 Ali 45 Oran 6 Renault Floride Bleue
4 Reda 34 Mostaganem 6 Renault Floride Bleue
5 Salim 50 Relizane 6 Renault Floride Bleue

8/Tri du résultat d’une requête :

8.1- tri par marque de la table ‘voiture’

SELECT Marque, Type


FROM Voiture
ORDER BY Marque ;

Résultat

Marque Type
Citroen SM
Opel GT
Peugeot 404
Peugeot 403
Renault Alpine A310
Renault Floride

8.2- tri par prix de la table ‘vente’ en ordre décroissant

SELECT prix, date vente


FROM vente
ORDER BY prix DESC ;
Résultat

prix Date vente


70 000 2006-05-30
45 000 2018-04-02
30 000 2010-06-14
10 000 2001-12-03

4
Le langage SQL (partie 2) Informatique 4

Remarque :
Le mot clé ASC exprime l’ordre croissant.

9 / gestion de tables et de vues


9.1- création

CREATE TABLE <nom de la table > (liste des colonnes avec leur types
séparé par,) ;

Remarque :
- Le nom de la table ou d’une colonne ne doit pas dépasser 128
caractères, il commence toujours par une lettre.

- Le type de données est choisi en fonction des opérations qui sont


effectué sur la colonne.

9.2- type de données numériques de SQL

INT Entier standard (32 bits)


SMALLINT Entier « petit » (16 bits)
REAL Réel (taille spécifique au SGBD)
FLOAT (n) Réel (représenté sur « n » bits)

9.3-types de données chaines de caractères de SQL

CHAR (n) Chaine de caractères de longueur


« n » (codage ASCII 1octet)
VARCHAR (n) Chaine de caractères de longueur
maximal « n »
(codage ASCII 1octet)
NCHAR (b) Chaine de caractères de
longueur « n »
(codage unicode sur 2 octet)
Chaine de caractères de
NVARCHAR (b) longueur maximal « n »
(codage unicode sur 2 octet)

5
Le langage SQL (partie 2) Informatique 4

9.4- type de données date de SQL

BOOLEAN booléen
Binary Large Object : permet de
BLOB stocker tout type binaire (photo,
fichier, traitementde texte,…..)

9.5- type de données binaires de SQL

DATE date
Heure, n (optionnel) est le nombre
TIME [(n)] de décimales représentant la
fraction de secondes.

10- exemple de création de table :

CREATE TABLE voiture ( Num voit INT, Marque CHAR (40) , Type CHAR
(30), Couleur CHAR (20) ) ;

11- Suppression
La commande DROP TABLE permet de supprimer une table.
Exemple :
DROP TABLE voiture ;

12- Modification
La commande ALTER TABLE permet de modifier la structure de la table,
d’ajouter, de supprimer ou modifier des colonnes.

12.1- Ajout d’une colonne de nom ‘en plus’ de type ‘INT’ à la table
‘voiture’ a l’aide de la commande ADD COLUMN.

ALTER TABLE voiture


ADD COLUMN enplus INT
SELECT * FROM Voiture ;

6
Le langage SQL (partie 2) Informatique 4

Résultat

Num voit Marque Type Couleur enplus


1 Peugeot 404 Rouge NULL
2 Citroën SM Noire NULL
3 Opel GT Blanche NULL
4 Peugeot 403 Blanche NULL
5 Renault Alpine A310 Rose NULL
6 Renault Floride Bleue NULL

Remarque :
L’affichage de la table ‘voiture’ modifiée se fait grâce à la commande
SELECT * FROM voiture ;

12.2 -Suppression de la colonne de nom ‘couleur’ de la table ‘voiture’ a


l’aide de la commande DROP COLUMN.

ALTER TABLE voiture


DROP COLUMN couleur
SELECT * FROM Voiture ;

Résultat
Num voit Marque Type enplus
1 Peugeot 404 NULL
2 Citroën SM NULL
3 Opel GT NULL
4 Peugeot 403 NULL
5 Renault Alpine A310 NULL
6 Renault Floride NULL

13- Suppression DELET FROM


Permet de supprimer un ensemble d’enregistrement d’une ligne, ou de
plusieurs lignes.

DELETE FROM Voiture


WHERE Couleur = ‘Rouge’
SELECT * FROM voiture;
7
Le langage SQL (partie 2) Informatique 4

Résultat
Num voit Marque Type Couleur
2 Citroën SM Noire
3 Opel GT Blanche
4 Peugeot 403 Blanche
5 Renault Alpine A310 Rose
6 Renault Floride Bleue

14- Modification UPDATE


Pour cette opération il faut préciser :
1- La (les) colonne (s) concernée (s).
2- La (les) nouvelle (s) valeur (s).
3- Les enregistrements pour lesquels on modifiera ces valeurs.

14.1- Modification du nom d’une ville dans la table ‘personne’ et


affichage de la table modifié.

UPDATE Personne
SET ville =’Oran-centre’
WHERE ville = ‘Oran’
SELECT * FROM Personne ;

Résultat

Num Ach Nom Age Ville


1 amine 96 Oran-centre
2 Mohammed 20 Alger
3 ali 45 Oran-centre
4 reda 34 Mostaganem
5 salim 50 Relizane

Vous aimerez peut-être aussi