Ingénierie Des Bases de Données: Licence en Sciences Informatique
Ingénierie Des Bases de Données: Licence en Sciences Informatique
Ingénierie Des Bases de Données: Licence en Sciences Informatique
2
Présentation de SQL
3
Présentation de SQL
4
Présentation de SQL
5
Création des tables
6
Création des tables
Type des données
- NUMBER( N ) : Entier à N chiffres
- NUMBER( N , M ) : Réel à N chiffres au total, M après la
virgule.
- DATE : Date complète (date et/ou heure)
- VARCHAR( N ), VARCHAR2( N ) : chaîne de N caractères
(longueur variable).
- CHAR( N ) : Chaîne de N caractères (longueur fixe).
7
Contraintes d'intégrité
Une contrainte d'intégrité est une règle qui définit la
cohérence d'une donnée ou d'un ensemble de données
de la BD
8
Contraintes d'intégrité
Contrainte sur une table (contrainte-table)
UNIQUE (liste d'attributs): Interdit que deux tuples de la
relation aient les mêmes valeurs pour l'ensemble des attributs
de la liste.
PRIMARY KEY(liste d'attributs): Définit les attributs de la liste
comme la clé primaire
FOREIGN KEY (liste d'attibuts) REFERENCES nom-table
[(nomes-cols)]: Contrôle l'intégrité référentielle entre les
attributs de la liste et la table et ses colonnes spécifiées
9
Exemple de création de tables
Etudiant (NumEtud, NomEtud, PrenomEtud, #NumClass)
Classe (NumClass, NomClass)
CREATE TABLE CLASSE (
NUMCLASSE NUMBER(5),
NOMCLASSE VARCHAR2(10),
PRIMARY KEY(NUMCLASSE) ) ;
10
Suppression / Modification d’une table
Suppression des tables
Syntaxe
Pour supprimer le contenu d’une table ainsi que son schéma, on
utilise l’instruction qui suit :
DROP TABLE nom_table ;
Remarque : Attention, la suppression d’une table engendre la
perte des données qu’elle contient.
Exemple
Pour supprimer la table ETUDIANT ainsi que son contenu, on fait
recours à l’instruction :
DROP TABLE ETUDIANT ;
11
Suppression / Modification d’une table
Modification des tables
Il existe plusieurs modifications que l’on peut effectuer sur une table
donnée:
Ajout d’attributs
Après avoir créé la base de données, des tâches de maintenance
semblent être parfois nécessaires. D’où l’ajout d’un nouvel attribut:
ALTER TABLE nom_table
ADD (attribut type);
Exemple
Ajouter le champ Numéro téléphone à la table Etudiant revient à
écrire :
ALTER TABLE Etudiant
ADD (Num_tel varchar(10));
12
Suppression / Modification d’une table
Modification des attributs
Après avoir créé la base de données, on peut modifier le type
d’un attribut en utilisant l’instruction suivante :
ALTER TABLE nom_table
MODIFY (attribut type);
Exemple
Modifier le nombre de chiffres du champ Num_tel de la table
Etudiant nécessite le recours à l’instruction :
ALTER TABLE Etudiant
MODIFY (Num_tel varchar(8));
13
Manipulation de données
Ajout de données
Pour ajouter une ligne (tuple) dans une table, on procède
comme suit :
INSERT INTO nom_table
VALUES ( valeur_attribut1, valeur_attribut2, … ) ;
Exemple
Etant donné la table Etudiant (NumEtud, nom, prenom, ville). Si
on souhaite insérer les informations d’un nouvel étudiant
disposant des informations suivantes (1234, Ben Salah, Salah,
Djerba), on écrit :
INSERT INTO ETUDIANT
VALUES (1234, BEN SALAH, SALAH, DJERBA) ;
14
Manipulation de données
Modification de données
Pour modifier la valeur d’un attribut relatif à un ou plusieurs
tuples d’une table, on procède comme suit :
UPDATE nom_table
SET attribut1 = valeur1, attribut2 = valeur2
[WHERE condition];
Exemple
Modifier la ville de l’étudiant Salah Ben Salah qui habite
maintenant à Tunis, on écrit dans ce cas :
UPDATE ETUDIANT
SET VILLE=TUNIS
WHERE NumEtud=1234;
15
Manipulation de données
Suppression de données
Il s’agit de supprimer un ou plusieurs tuples d’une table.
Pour ce faire, on écrit :
DELETE FROM nom_table
[WHERE condition];
Exemple
Supprimer l’étudiant de NumEtd 1234 de la table
Etudiant, on écrit :
DELETE FROM ETUDIANT
WHERE NumEtd =1234 ;
16
Interrogation de données
Généralités
Il s’agit de chercher un ou plusieurs tuples de la base de données.
Syntaxe :
Ai un nom d’attribut (de colonne)
SELECT A1,…., A2 Rj un nom de relation (de table)
FROM définit à partir de quelles
FROM R1,……., Rm
tables le résultat est calculé
[WHERE [condition] WHERE définit les prédicats de
sélection du résultat
Group by <expression>; Group by regroupe les lignes pour les
valeurs égales dans les colonnes
Having <expression>; mentionnées
Having sélectionne les groupes de
Order by [ DESC/ASC];] lignes satisfaisant la condition
Order by précise si le tri se fait de
manière croissante (par défaut) ou
décroissante 17
Interrogation de données
Projection
Tous les attributs d’une table :
SELECT *
FROM nom_table;
Exemple
Afficher la liste de tous les étudiants
SELECT * FROM ETUDIANT;
Quelques attributs :
SELECT attribut1, attribut2,…
FROM nom_table;
Exemple
Afficher la liste des noms des étudiants
SELECT NOM
FROM ETUDIANT;
18
Interrogation de données
Restriction
Les restrictions se traduisent en SQL à l’aide du prédicat « WHERE »
comme suit :
SELECT attribut1, attribut2, FROM nom_table
WHERE conditions;
Une conditions simple est la comparaison entre deux
expressions ou plus au moyen d’un opérateur logique (=, !=, <,
<=, >, >=)
Exemple 1
Liste des étudiants qui s’appellent Ali
SELECT * FROM ETUDIANT
WHERE PRENOM = ‘ALI’;
19
Interrogation de données
Exemple 3
Liste des étudiants qui ne s’appellent pas Ali
SELECT * FROM ETUDIANT
WHERE PRENOM != ‘ALI’;
Exemple 4
Liste des étudiants ayant les NumEtd inférieurs à 100
SELECT * FROM ETUDIANT
WHERE NumEtd < 100;
Exemple 5
Liste des étudiants ayant les NumEtd compris entre 100 et 200
SELECT * FROM ETUDIANT
WHERE NumEtd BETWEEN 100 AND 200 ;
20
Interrogation de données
Jointures
La jointure permet de combiner deux ou plusieurs tables afin d’en
extraire des données.
La jointure est réalisé à l’aide d’une colonne commune aux tables
qui habituellement est la clé primaire
Lorsqu’une colonne projetée se retrouve dans les deux tables à
joindre, le nom de la colonne projetée doit être précédé du nom
de la table d’où les données seront extraites
Lorsqu’une colonne projetée se retrouve dans une seule parmi les
tables à joindre, il n’est pas nécessaire d’indiquer le nom de la
table
21
Interrogation de données
Exemple de requête de jointure simple:
TableA (idTableA,colonne1,colonne2)
TableB (idTableB, colonne1, colonne2, #idtableA)
23
Interrogation de données
Exemple de jointure entre deux tables :
25
Fonctions d’aggrégation
Une fonction d’aggregation calcule une valeur à partir d’une
liste de valeurs dans une colonne.
SQL permet AUSSI de grouper des tuples d’une relation selon
certains critères, comme la valeur d’une autre colonne.
Ces opérateurs sont appliqués dans une clause SELECT
26
Fonctions d’aggrégation
Exemple:
SELECT count(*)
FROM STUDENTS ;
27
Fonctions d’aggrégation
Exemple:
28