Vous êtes sur la page 1sur 41

Chapitre 6 : Le langage SQL

Dr. Salim Kebir

Maître de conférences à l’ESTI Annaba


s.kebir@esti-annaba.dz

Année universitaire 2019-2020

1 / 28
2 / 28
Introduction

• SQL (Structured Query Language) est le langage de facto


pour exploiter des bases de données relationnelles.
• Est un langage spécifique (6= langages génériques)
• Est un langage déclaratif (6= langages impératifs)

3 / 28
Introduction - Suite

• Composé principalement de deux sous-langages :


• Langage de définition des données :
• Implémenter physiquement une base de données
• au sein d’un système de gestion de bases de données
• Langage de manipulation des données :
• Recherche
• Insertion
• Suppression
• Mise à jour des données

4 / 28
Exemple pour la suite du cours

country(Code, Name, Continent, SurfaceArea, Population, HeadOfState, #Capital)


• Capital référence city.ID
city(ID, Name, #CountryCode, Population)
• CountryCode référence country.Code
countrylanguage(#CountryCode, Language)
• CountryCode référence country.Code

5 / 28
SQL
Langage de définition de
données

6 / 28
SQL - Langage de définition de données

• Créer une table (CREATE TABLE)


• Supprimer une table (DROP TABLE)

7 / 28
Créer une table

Syntaxe de l’instruction CREATE TABLE :

CREATE TABLE [ Nom_De_La_table ] (

/* Definition des colonnes de la table */


[ Colonne ] [ Type ] [ Contraintes ] ,
[ Colonne ] [ Type ] [ Contraintes ] ,
[ Colonne ] [ Type ] [ Contraintes ] ,
[ Colonne ] [ Type ] [ Contraintes ] ,
...
[ Colonne ] [ Type ] [ Contraintes ] ,

/* Contraintes multicolonnes ( si besoin ) */


[ Contraintes_multicolonnes ]
);

8 / 28
Types de données

Types Signification Exemples de valeurs


INTEGER Entiers relatif 1 -45 10 0
REAL Nombres réels 1.25 -5.58 0.4
TEXT Chaînes de caractère ’Leon’ ’Oran’ ’Messaoud’

9 / 28
Contraintes d’intégrités

• PRIMARY KEY : Déclare la colonne comme étant la clé


primaire de la table.

10 / 28
Contraintes d’intégrités

• PRIMARY KEY : Déclare la colonne comme étant la clé


primaire de la table.
− Peut être utilisée comme contrainte d’intégrité multicolonne

10 / 28
Contraintes d’intégrités

• PRIMARY KEY : Déclare la colonne comme étant la clé


primaire de la table.
− Peut être utilisée comme contrainte d’intégrité multicolonne
• NOT NULL : S’assure que la colonne ne contienne pas de
valeurs NULL.

10 / 28
Contraintes d’intégrités

• PRIMARY KEY : Déclare la colonne comme étant la clé


primaire de la table.
− Peut être utilisée comme contrainte d’intégrité multicolonne
• NOT NULL : S’assure que la colonne ne contienne pas de
valeurs NULL.
• CHECK(C) : S’assure que toutes les valeurs de la colonne
satisfont la condition C.

10 / 28
Contraintes d’intégrités

• PRIMARY KEY : Déclare la colonne comme étant la clé


primaire de la table.
− Peut être utilisée comme contrainte d’intégrité multicolonne
• NOT NULL : S’assure que la colonne ne contienne pas de
valeurs NULL.
• CHECK(C) : S’assure que toutes les valeurs de la colonne
satisfont la condition C.
− Peut être utilisée comme contrainte d’intégrité multicolonne

10 / 28
Contraintes d’intégrités

• PRIMARY KEY : Déclare la colonne comme étant la clé


primaire de la table.
− Peut être utilisée comme contrainte d’intégrité multicolonne
• NOT NULL : S’assure que la colonne ne contienne pas de
valeurs NULL.
• CHECK(C) : S’assure que toutes les valeurs de la colonne
satisfont la condition C.
− Peut être utilisée comme contrainte d’intégrité multicolonne
• REFERENCES Tab(Col) : Déclare la colonne comme clé
étrangère qui référence la colonne Col de la table Tab.

10 / 28
Exemple de création de la table country

country(Code, Name, Continent, SurfaceArea, Population, HeadOfState, #Capital)


• Capital référence city.ID

CREATE TABLE country (


Code TEXT PRIMARY KEY ,
Name TEXT NOT NULL ,
Continent TEXT NOT NULL ,
SurfaceArea REAL NOT NULL CHECK ( SurfaceArea > 0) ,
Population INTEGER NOT NULL CHECK ( Population > 0) ,
HeadOfState TEXT NOT NULL ,
Capital INTEGER NOT NULL REFERENCES city ( ID )
);

11 / 28
Exemple de création de la table city

city(ID, Name, #CountryCode, Population)


• CountryCode référence country.Code

CREATE TABLE city (


ID INTEGER PRIMARY KEY ,
Name TEXT NOT NULL ,
CountryCode TEXT NOT NULL REFERENCES country ( Code ) ,
Population INTEGER NOT NULL CHECK ( Population > 0)
);

12 / 28
Exemple de création de la table countrylanguage

countrylanguage(#CountryCode, Language)
• CountryCode référence country.Code

CREATE TABLE countrylanguage (


CountryCode TEXT NOT NULL REFERENCES country ( Code ) ,
Language TEXT NOT NULL ,
PRIMARY KEY ( CountryCode , Language )
);

13 / 28
Supprimer une table

Syntaxe de l’instruction DROP TABLE :


DROP TABLE [ Nom_de_la_table ];

Exemples :

DROP TABLE country ;


DROP TABLE city ;
DROP TABLE countrylanguage ;

14 / 28
SQL
Langage de manipulation
de données

15 / 28
SQL - Langage de définition de données

• Insérer un tuple dans une table (INSERT INTO)


• Supprimer un ou plusieurs tuples d’une table (DELETE FROM)
• Mettre à jour un ou plusieurs tuples dans une table (UPDATE)
• Rechercher des données dans une ou plusieurs tables (SELECT)

16 / 28
Insérer un tuple dans une table

Syntaxe de l’instruction INSERT INTO :


INSERT INTO [ Nom_de_la_table ]
VALUES ( v1 , v2 , ... );

Exemples :
INSERT INTO city
VALUES (35 , ’ Alger ’ , ’ DZA ’ , 2168000);

INSERT INTO countrylanguage


VALUES ( ’ DZA ’ , ’ Arabic ’ );

INSERT INTO countrylanguage


VALUES ( ’ DZA ’ , ’ Berberi ’ );

17 / 28
Supprimer un ou plusieurs tuples d’une table

Syntaxe de l’instruction DELETE FROM :


DELETE FROM [ Nom_de_la_table ]
WHERE [ Condition ];

Fonctionnement : DELETE FROM supprime tous les tuples de la


table qui vérifient la condition qui suit le mot clé WHERE.

Exemple : Supprimer tous les pays d’Afrique.


DELETE FROM country
WHERE Continent = ’ Africa ’;

18 / 28
Mettre à jour un ou plusieurs tuples dans une table

Syntaxe de l’instruction UPDATE :


UPDATE [ Nom_de_la_table ]
SET [ Colonne ] = [ Valeur ]
WHERE [ Condition ];

Fonctionnement : UPDATE effectue la modification qui suit le mot


clé SET sur tous les tuples de la table qui vérifient la condition qui
suit le mot clé WHERE.

Exemple : Donald Trump est le nouveau président des USA.


UPDATE country
SET HeadOfState = ’ Donald ␣ Trump ’
WHERE Code = ’ USA ’;

19 / 28
Rechercher des données

Syntaxe de l’instruction SELECT :


SELECT [ Colonne ] , [ Colonne ] , ...
FROM [ Table ] , [ Table ] , ...
WHERE [ Condition ];

Fonctionnement : SELECT retourne :


• la projection sur les colonnes qui suivent le mot-clé SELECT
− le symbole * peut être utilisée pour projeter sur toutes les colonnes
• du produit cartésien des tables qui suivent le mot-clé FROM
• et restreint le résultat aux tuples qui satisfont la condition qui
suit le mot-clé WHERE
− Les opérateurs logique AND et OR peuvent être utilisés pour
construire la condition

20 / 28
Exemples de recherche de données

Donner le nom de chaque pays et le nom de son chef d’état.

21 / 28
Exemples de recherche de données

Donner le nom de chaque pays et le nom de son chef d’état.


SELECT Name , HeadOfState
FROM country ;

21 / 28
Exemples de recherche de données

Donner le nom de chaque pays et le code de sa capitale.

22 / 28
Exemples de recherche de données

Donner le nom de chaque pays et le code de sa capitale.


SELECT Name , Capital
FROM country ;

22 / 28
Exemples de recherche de données

Donner le nom des pays dont la superficie dépasse


1000000m2 .

23 / 28
Exemples de recherche de données

Donner le nom des pays dont la superficie dépasse


1000000m2 .
SELECT Name
FROM country
WHERE SurfaceArea > 1000000;

23 / 28
Exemples de recherche de données

Donner le nom de tous les pays d’Europe.

24 / 28
Exemples de recherche de données

Donner le nom de tous les pays d’Europe.


SELECT Name
FROM country
WHERE Continent = ’ Europe ’;

24 / 28
Exemples de recherche de données

Donner le nom des pays africains dont la superficie est


inférieur à 500000m2 .

25 / 28
Exemples de recherche de données

Donner le nom des pays africains dont la superficie est


inférieur à 500000m2 .
SELECT Name
FROM country
WHERE Continent = ’ Africa ’
AND SurfaceArea < 500000;

25 / 28
Exemples de recherche de données

Qui est le chef d’état du Zimbabwe ?

26 / 28
Exemples de recherche de données

Qui est le chef d’état du Zimbabwe ?


SELECT HeadOfState
FROM country
WHERE Name = ’ Zimbabwe ’;

26 / 28
Exemples de recherche de données

Quelle est la superficie de l’Algérie ?

27 / 28
Exemples de recherche de données

Quelle est la superficie de l’Algérie ?


SELECT SurfaceArea
FROM country
WHERE Name = ’ Algeria ’;

27 / 28
Exemples de requêtes d’interrogations d’une seule table

Donner les langues parlées en Suisse sachant que ce pays


porte le code CHE.

28 / 28
Exemples de requêtes d’interrogations d’une seule table

Donner les langues parlées en Suisse sachant que ce pays


porte le code CHE.
SELECT Language
FROM countryLanguage
WHERE countryCode = ’ CHE ’;

28 / 28

Vous aimerez peut-être aussi