Vous êtes sur la page 1sur 41

Plan du Chapitre SQL

EXERCICES

Langages de dénition et
manipulation des données

Ferdinand KAHENGA
ESIS

Janvier 2022

1 / 39
Plan du Chapitre DML
EXERCICES

Plan du Chapitre
Data Denition Language
Base de données : création, modication et
suppression
Tables : création, modication et suppression
Contraintes :création, modication et suppression
Data Manipulation Language
Insertion des données
Modication des données
Suppression des données
Importation et exportation des données

2 / 39
Plan du Chapitre DML
EXERCICES

Création de la base des données


La création d'une base est relativement simple
en SQL, encore que la plupart des SGBD
n'implémentent pas cette commande, et
imposent d'utiliser l'interface graphique ou une
syntaxe propriétaire.
Toutefois, le minimum d'informations qu'il est
possible de dénir lors de cette création se
retrouve dans la syntaxe SQL :

3 / 39
Plan du Chapitre DML
EXERCICES

Création de la base des données


CREATE SCHEMA nomDuschema
[AUTHORIZATION utilisateur]
[DEFAULT CHARACTER SET jeuDeCaractères]
[liste des objets du schema]
Le mot-clé SCHEMA est parfois remplacé par
DATABASE.
La base des données a son propriétaire
(Créateur).

4 / 39
Plan du Chapitre DML
EXERCICES

Création avec SQL Server


CREATE DATABASE nomBaseDeDonnées
[
[ON PRIMARY] [ <spécicationFichier> [,n]]
[LOG ON < spécicationFichier > [,n]]
]

5 / 39
Plan du Chapitre DML
EXERCICES

Création avec SQL Server


Avec pour spécicationFichier les éléments de
syntaxe suivants :
(NAME = nomLogique,
FILENAME = 'cheminEtNomFichier'
[,SIZE = taille [KB|MB|GB|TB]]
[,MAXSIZE=tailleMaximum[KB|MB|GB|TB]|UNLIMITED]
[,FILEGROWTH = pasIncrement [KB|MB|GB|TB|)

6 / 39
Plan du Chapitre DML
EXERCICES

Création avec SQL Server


Chaque base des données dispose de 3 types de
chiers :
1 Fichier primaire de données (.mdf)
2 Fichiers secondaire de données (.ndf)
3 Fichiers journaux (.ldf)
Chaque chier a un nom logique et un nom
physique
1 Le nom logique est celui qui est utilisé pour faire
référence au chier physique dans toutes les
instructions -TSQL
2 Le nom physique est le nom du chier physique,
chemin d'accès au répertoire compris

7 / 39
Plan du Chapitre DML
EXERCICES

Création avec SQL Server


Chaque base des données dispose de 3 types de
chiers :
1 Fichier primaire de données (.mdf)
2 Fichiers secondaire de données (.ndf)
3 Fichiers journaux (.ldf)
Chaque chier a un nom logique et un nom
physique
1 Le nom logique est celui qui est utilisé pour faire
référence au chier physique dans toutes les
instructions -TSQL
2 Le nom physique est le nom du chier physique,
chemin d'accès au répertoire compris.

8 / 39
Plan du Chapitre DML
EXERCICES

Création avec SQL Server

9 / 39
Plan du Chapitre DML
EXERCICES

Création des tables


La commande de création de table la plus simple
ne comportera que le nom et le type de chaque
colonne de la table
La commande CREATE TABLE est utilisée pour
créer une table
Pour créer une table il faut connaître :
1 le nom de la table
2 le nom de chaque attribut et son type
3 les contraintes

10 / 39
Plan du Chapitre DML
EXERCICES

Création des tables


La syntaxe est :
CREATE TABLE nomTable
( nomCol1 TYPE1 contrainte1,
nomCol2 TYPE2 contrainte2,
nomCol3 TYPE3 contrainte3,
denition1 CONTRAINTE table,
denition2 CONTRAINTE table,... )

11 / 39
Plan du Chapitre DML
EXERCICES

Création des tables : types des données


On trouve couramment les types suivants :
Numérique
1 TINYINT : un entier avec une plage de valeur très
restreinte (par exemple 0 à 255)
2 SMALLINT : Entier court
3 INT : Entier simple
4 BIGINT : un entier avec une plage de valeur très
étendue
5 FLOAT : Réel simple precision
6 NUMERIC[(longueur,[précision]) :Ce type de données
permet de stocker des données numériques à la fois
entières et réelles.
Caractères
1 CHAR(n)
2 VARCHAR(n)

Date
12 / 39
Plan du Chapitre DML
EXERCICES

Création des tables : Contraintes


Il existe 2 types de contraintes :
Contrainte de colonne
1 Contrainte déclarée juste après le nom de la
colonne
2 Exemple : MATRICULE int Primary key
Contrainte de table
1 déclarées généralement à la n
2 commençant toujours par le mot clé
CONSTRAINT suivi du nom
3 Ex : Constraint PK primary key(MATRICULE)

13 / 39
Plan du Chapitre DML
EXERCICES

Création des tables : Liste des Contraintes


NOT NULL : La colonne ne peut pas contenir
de valeurs NULL.
Unique : Chaque ligne de la table doit avoir une
valeur diérente ou NULL pour cette (ou ces)
colonne.
Primary key : Chaque ligne de la table doit avoir
une valeur diérente pour cette (ou ces)
colonne. Les valeurs NULL sont rejetées.
Foreign key : Cette colonne fait référence à une
colonne clé d'une autre table.
Check : Permet de spécier les valeurs
acceptables pour une colonne.
Default : Permet de spécier les valeurs par
14 / 39
Plan du Chapitre DML
EXERCICES

Création des tables : Exemple

15 / 39
Plan du Chapitre DML
EXERCICES

Modication de la structure d'une table


L'ordre permettant de modier une table (ou un
autre objet) est ALTER
Cet ordre permet de :
1 supprimer un attribut
2 supprimer une contrainte
3 ajouter un attribut
4 ajouter une contrainte

16 / 39
Plan du Chapitre DML
EXERCICES

Modication d'une table : syntaxe


ALTER TABLE nomTable
ADD denition attribut
| ALTER nomAttribut SET DEFAULT valeur | DROP
DEFAULT
| DROP nomAttribut [CASCADE | RESTRICT]|
ADD denition de la contrainte
| DROP CONSTRAINT nom de la contrainte
[CASCADE | RESTRICT]

17 / 39
Plan du Chapitre DML
EXERCICES

Modication d'une table : Exemple

18 / 39
Plan du Chapitre DML
EXERCICES

Suppression
L'ordre permettant de supprimer un objet (table,
domaine, assertion, vue) est DROP.
DROP TABLE | DOMAIN | ASSERTION |
VIEW nomObjet
Exemples : DROP TABLE Etudiant

19 / 39
Plan du Chapitre DML
EXERCICES

DML ?
Data Manipulation Language
Le langage permettant de modier les
informations contenues dans une base de
données.
L'unité manipulée est la ligne.
Il existe trois commandes sql permettant
d'eectuer les trois types de modications des
données

20 / 39
Plan du Chapitre DML
EXERCICES

Ordre SQL
Insert
Update
Delete
Attention
Ces 3 ordres ne modient pas la structure de la table.

21 / 39
Plan du Chapitre DML
EXERCICES

Insertion des données

Ordre insert : syntaxe


insert into nomTable(col1,col2,col3,...)
values(valeur1,valeur2,valeur3,...)

Exemple insertion
insert into service(codeService,nomService)
values("mtn","maintenace")

22 / 39
Plan du Chapitre DML
EXERCICES

Ordre Update
permet de modier les valeurs d'une ou plusieurs
colonnes, dans une ou plusieurs lignes existantes
d'une table.
Ordre Update : syntaxe
update nomTable set col1 = expression1 | ( select ...)
, col2 = expression2 | ( select ...) where predicat

Exemple mises à jour


update service set nomService="nettoyage" where
codeService="mtn"
23 / 39
Plan du Chapitre DML
EXERCICES

Mises à jour des données

Que font ces requêtes ?


update employe set salaire = salaire * 1.1 where
fonction='dg'
update employe set salaire = salaire * 1.1
Attention
En l'absence d'une clause WHERE, toutes les lignes
sans exception sont mises à jour.

24 / 39
Plan du Chapitre DML
EXERCICES

Suppression des données

Ordre Delete
permet de supprimer des lignes d'une table.
Ordre Delete : syntaxe
DELETE FROM nomtable WHERE prédicat
Exemple de suppression
delete from service where codeService="mtn"
delete from etudiant where adressEtu IS NULL

25 / 39
Plan du Chapitre DML
EXERCICES

L'ordre Select
Ordre Select
permet d'extraire des informations stockées dans
une base de données.
Il s'agit d'un langage déclaratif dont la syntaxe
est très simple.
Syntaxe

26 / 39
Plan du Chapitre DML
EXERCICES

L'ordre Select
Description
distinct :renvoie toutes les lignes sélectionnées
en enlevant les doublons.
all : renvoie toutes les lignes sélectionnées sans
enlever les doublons. C'est la valeur par défaut.
* : renvoie toutes les colonnes de toutes les
tables ou vues précisés dans le FROM.
table.* : sélectionne toutes les colonnes de la
table
expression : sélectionne une expression
habituellement calculée sur les valeurs des
colonnes appartenant à l'une des tables ou vues, 27 / 39
Plan du Chapitre DML
EXERCICES

L'ordre SELECT est composé de 6 clauses


1 select : spécie les attributs que l'on désire voir
apparaître dans le résultat de la requête.
2 from : spécie les tables sur lesquelles porte la
requête
3 where : ltre les lignes en imposant une
condition
4 group by : permet de dénir des groupes
5 having : spécie un ltre, une condition de
regroupement des lignes
6 order by : permet de trier les lignes du résultat.
28 / 39
Plan du Chapitre DML
EXERCICES

Acher tous les agents


select * from agent

Acher seulement les matricules et noms des agents


select matricule,nom from agent

Acher tous les noms des agents sans doublons


select distinct nom from agent

Acher tous les noms des agents triés par ordre


croissant
select nom from agent order by ASC
28 / 39
Plan du Chapitre DML
EXERCICES

Acher les noms des agents de genre masculin


select nom from agent where genre="M"

Acher les noms des agents de genre féminin


habitant la katuba
select nom from agent where genre like 'F' and
adresse like 'katuba'

Acher le nombre d'agents


select count(matricule) from agent
29 / 39
Plan du Chapitre DML
EXERCICES

La clasuse where
Un prédicat simple est le résultat de la
comparaison de deux expressions au moyen d'un
opérateur de comparaison qui peut être :
1 = égal
2 != diérent
3 < inférieur
4 > supérieur
5 >= ; <= supérieur ou égal ; inférieur ou égal
Les trois types d'expressions peuvent être
comparés au moyen de ces opérateurs :
1 Pour les types date, la relation d'ordre est l'ordre
chronologique.
2 Pour les types caractère, la relation d'ordre est
l'ordre alphabétique.
29 / 39
Plan du Chapitre DML
EXERCICES

La clasuse where
Il faut ajouter à ces opérateurs arithmétiques
classiques les opérateurs suivants :
1 between, in, like

expr1 BETWEEN expr2 AND expr3 : vrai si


expr1 est compris entre expr2 et expr3, bornes
incluses
expr1 IN (expr2, expr3, ...) : vrai si expr1 est
égale à l'une des expressions de la liste entre
parenthèses

30 / 39
Plan du Chapitre DML
EXERCICES

La clasuse where
expr LIKE chaine : où chaine est une chaîne de
caractères pouvant contenir l'un des caractères
jokers :
1 _ remplace exactement 1 caractère
2 % remplace une chaîne de caractères de longueur
quelconque, y compris de longueur nulle

31 / 39
Plan du Chapitre DML
EXERCICES

Exemple clause where

32 / 39
Plan du Chapitre DML
EXERCICES

Fonctions statistiques
Les principales fonctions statistiques sont :
1 COUNT (*) : compte le nombre de lignes.
2 COUNT (attribut) : compte le nombre de
valeurs non nulles.
3 SUM (attribut) : somme des valeurs non nulles.
4 AVG (attribut) : moyenne des valeurs non nulles.
5 MAX (attribut) : valeur maximum (non nulle).
6 MIN (attribut) : valeur minimum (non nulle).

33 / 39
Plan du Chapitre DML
EXERCICES

La jointure
La jointure est une opération permettant de
combiner des informations venant de plusieurs
tables.
On peut joindre jusqu'à 256 tables.
Une jointure se formule simplement en spéciant
plusieurs tables derrière la clause FROM de la
façon suivante :
SELECT ... FROM table gauche, table droite
WHERE <condition de jointure> ;

34 / 39
Plan du Chapitre DML
EXERCICES

La jointure : syntaxe générale


SELECT ... FROM <table gauche>
[INNER]JOIN <table droite> ON <condition de
jointure>

35 / 39
Plan du Chapitre
EXERCICES

Exercices
1 Insérer 9 lignes dans la table Departement
2 Insérer 20 lignes dans la table Agent
3 Acher tous les agents de la katuba
4 Modier l'adresse de tous les agents de
katuba(nouvelle adresse Kenya)
5 Combien d'agents de kenya il y a t-il ?

36 / 39
Plan du Chapitre
EXERCICES

Exercices
1 Créer une table temporaire AgentKenya dans
laquelle vous allez insérer tous les agents de la
kenya. On rappelle que la création de la table
temporaire se fait à l'aide de CREATE
diesenomTable(attributs)
2 créer une vue sur la table agent, elle ne doit
contenir que les infos des colonnes matricule et
nom. On rappelle que la vue se crée à l'aide de
CREATE VIEW as SELECT......

37 / 39
Plan du Chapitre
EXERCICES

Jointure : En considérant le modèle ecoledb


1 Acher tous les cours vus en G1.
2 Combien de cours sont vus en G1 ?
3 Acher pour chaque étudiant,sa promotion.
4 Acher une liste qui reprend le nombre des
cours par promotion.
5 Acher pour chaque cours, le prof titulaire et la
promotion où il est dispensé.
6 Acher les noms de tous les étudiants de G1
dont l'âge est soit 17,20 ou 25.

38 / 39
Plan du Chapitre
EXERCICES

Jointure : En considérant le modèle ecoledb


1 Acher le nombre des étudiants parrains.
2 Acher les noms de tous les étudiants parrains.
3 Acher pour chaque étudiant parrain le nombre
d'étudiants parrainés.

39 / 39

Vous aimerez peut-être aussi