0% ont trouvé ce document utile (0 vote)
72 vues6 pages

Cours 5 BD

Le document décrit le langage SQL, en particulier son rôle de langage de définition et de manipulation des données. Il présente les principaux types de données et comment exprimer des contraintes d'intégrité telles que la clé primaire ou la clé étrangère.

Transféré par

Chady Lahbib
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
72 vues6 pages

Cours 5 BD

Le document décrit le langage SQL, en particulier son rôle de langage de définition et de manipulation des données. Il présente les principaux types de données et comment exprimer des contraintes d'intégrité telles que la clé primaire ou la clé étrangère.

Transféré par

Chady Lahbib
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

06/11/2019

ENSIT
Introduction
• Le terme SQL « Structured Query Language » signifie Langage
d’interrogation structuré.

Chapitre V • En fait SQL est un langage complet de gestion de bases de données


relationnelles (SGBDR).

Le langage SQL: • Il a été conçu par IBM dans les années 70. Il est devenu le langage
Langage de Définition des Données et Langage standard des SGBDR.
de Manipulation des Données • C’est à la fois:

- Un Langage de Définition des Données (LDD)


- Un Langage de Manipulation des Données (LMD)
- Un Langage d’Interrogation des Données (LID)
- Un Langage de Contrôle des Données (LCD)
2

Langage de Définition des Données Langage de Définition des Données


A- Les principaux types de données (utilisés par Oracle)
1. La commande « CREATE TABLE»
Type Definition
• L'ordre CREATE TABLE permet de créer une table en définissant le
CHAR (n) Chaîne de n caractères de taille fixe jusqu’à 2000 caractères
nom et le type de chacune des colonnes de la table.
VARCHAR2(n) Chaîne de n caractères de longueur variable jusqu’à 4000 caractères
• La syntaxe simplifiée de cette commande est:
LONG (taille) Chaîne de caractères de longueur variable jusqu’à 2 gigaoctets.
CREATE TABLE nom-table (nom-colonne1 type1, nom-colonne2 type2,…); DATE Date dont le format standard est JJ-MM-AA
TIMESTAMP Date et Heure (jour, mois, année, heure, minutes et secondes).
Exemple1
NUMBER (n) Nombre entier de taille n

CREATE TABLE article (ref VARCHAR2(10), NUMBER (n, m) Nombre réel pouvant avoir n chiffres dont m chiffres après la virgule
nom VARCHAR2(30), Les types LOB (Large C’est un type permettant de stocker des informations de grande taille telles
prix NUMBER(9,2), OBject) que du texte (CLOB), des images ou de la vidéo (BLOB) et dont la capacité
datemaj DATE); maximum de stockage est de 4 gigaoctets (Oracle 8) et 8 téraoctets (Oracle
10g).
3 4

1
06/11/2019

Langage de Définition des Données Langage de Définition des Données


B-Expression des contraintes d’intégrités
• Les contraintes d’intégrité possibles sont:
• Lors de la création de la table, on peut spécifier des contraintes
a- Valeur nulle impossible (syntaxe NOT NULL)
d’intégrité portant sur une colonne ou sur plusieurs colonnes.
b- Contrainte d’unicité: interdit qu’une colonne (ou la concaténation
de plusieurs colonnes) contienne deux valeurs identiques.
• Il existe des contraintes :
sur une colonne : la contrainte porte sur une seule colonne. Elle suit la
Pour une contrainte sur table:
définition de la colonne dans un ordre CREATE TABLE. UNIQUE (colonne1, colonne2,…)
Pour une contrainte sur une colonne
sur une table : la contrainte porte sur une ou plusieurs colonnes. Elle UNIQUE
se place au même niveau que les définitions des colonnes dans un
ordre CREATE TABLE. c- Contrainte de clé primaire

• Chaque contrainte peut être nommée comme suit: Pour une contrainte sur table:
PRIMARY KEY (colonne1, colonne2,…)
CONSTRAINT nom-contrainte définition-contrainte Pour une contrainte sur une colonne
5 PRIMARY KEY 6

Langage de Définition des Données Langage de Définition des Données


d- Contrainte de clé étrangère Exemple
Nemp Nome Prene Sal Poste Ndept
Pour une contrainte sur une table :
FOREIGN KEY (colonne1, colonne2,...) 100 Bjaoui Leila 450 Secrétaire 1
REFERENCES tableref [(col1, col2,...)] 101 Malki Ali 600 Technicien 1
[ON DELETE CASCADE] 103 Bjaoui Mohamed 850 Ingénieur 2
Pour une contrainte sur une colonne :
104 Gharbi Salwa 500 Secrétaire 2
[FOREIGN KEY (colonne1)]
REFERENCES tableref [(col1 )] La relation Emp
[ON DELETE CASCADE]
Ndept Nomd
• L'option ON DELETE CASCADE indique que la suppression d'une
1 Finance
ligne de tableref va entraîner automatiquement la suppression des
2 Marketing
lignes qui la référencent dans la table.
La relation Dept

7
8

2
06/11/2019

Langage de Définition des Données Langage de Définition des Données

• Supprimer le département N°2 suppression des • Si cette option n'est pas indiquée, il est impossible de
employés travaillant dans le département N°2. supprimer des lignes de tableref qui sont référencées
par des lignes de la table.
Ndept Nomd
1 Finance • on ne spécifie pas on delete cascade lors de la
La relation Dept création de la table emp.
Supprimer le département N°2.

Nemp Nome Prene Sal Poste Ndept


Affichage d’une erreur
100 Bjaoui Leila 450 Secrétaire 1
ORA-02292: integrity constraint violated-child record
101 Malki Ali 600 Technicien 1
found .
La relation Emp

9 10

Langage de Définition des Données Langage de Définition des Données


• e- Contrainte « CHECK » Exemple 2

CHECK(condition) CREATE TABLE Produit (


ID NUMBER CONSTRAINT PRODUIT_PK PRIMARY KEY,
• Cette contrainte spécifie une condition que les colonnes de chaque NOM VARCHAR2 (10),
ligne devront vérifier. STOCK NUMBER CONSTRAINT STOCK_POSTIF CHECK (STOCK>= 5));
Exemple 1

CREATE TABLE EMP( Exemple 3


NEMP NUMBER(5) CONSTRAINT KEMP PRIMARY KEY,
NOME VARCHAR2(10) CONSTRAINT NOM_UNIQUE UNIQUE
CONSTRAINT MAJ CHECK (NOME = UPPER(NOME)), CREATE TABLE PARTICIPATION(
SAL NUMBER(8,3), MATR NUMBER(5) CONSTRAINT R_EMP REFERENCES EMP (NEMP),
NDEPT NUMBER(2) CONSTRAINT R_DEPT REFERENCES CODEP VARCHAR2(5) CONSTRAINT R_PROJET REFERENCES PROJET,
DEPT(NDEPT) CONSTRAINT PKPART PRIMARY KEY(MATR, CODEP));
CONSTRAINT DEPART CHECK (NDEPT IN (10, 20, 30, 35, 40)));

12
11

3
06/11/2019

Langage de Définition des Données Langage de Définition des Données


2-La commande « DROP TABLE» Exemple
• Elle permet de supprimer une table.
• Les lignes et la définition elle-même de la table sont détruites. La suppression de la table Dept
DROP TABLE nom-table [cascade constraints];

Si la clé primaire est référencée dans d’autres tables par des Nemp Nome Prene Sal Poste Ndept
contraintes d’intégrité référentielles (REFERENCES), la 100 Bjaoui Leila 450 Secrétaire 1
clause CASCADE CONSTRAINTS permet de les supprimer 101 Malki Ali 600 Technicien 1
dans ces tables. 103 Bjaoui Mohamed 850 Ingénieur 2
Emp(Nemp, nomE, prenE, sal, poste, #Ndept); 104 Gharbi Salwa 500 Secrétaire 2
Dept (Ndept, nomd); La relation Emp
Drop table Dept cascade constraints; permet de supprimer la
table dept et la contrainte de clé étrangère associée à Ndept L’attribut Ndept devient un attribut
dans Emp de la table emp et il n’est plus une
13 clé étrangère
14

Langage de Définition des Données Langage de Définition des Données


3- La commande « ALTER TABLE»
• Elle permet de: Exemple
- ajouter une nouvelle colonne; ALTER TABLE personne
- modifier une colonne existante ; MODIFY (nom varchar2 (35))
- supprimer une colonne existante.
A- Ajout d’une colonne C-Suppression d’une colonne

ALTER TABLE nom-table


ALTER TABLE nom-table
ADD (col1 type1, col2 type2,…)
DROP (liste des colonnes);
Exemple
ALTER TABLE personne Exemple
ADD (email_valide char(1) ALTER TABLE personne
CONSTRAINT personne_email_valide CHECK DROP (nom, prenom);
(email_valide in ('o', 'n')));
B- Modification d’une colonne La colonne supprimée ne doit pas être référencée par une clé
étrangère.
ALTER TABLE nom-table
MODIFY (col1 type1, col2 type2, ...); 15 16

4
06/11/2019

Langage de Définition des Données Langage de Manipulation des Données


D-Ajouter, modifier, supprimer ou renommer une contrainte 1. Insertion des données

• Les contraintes d'intégrité peuvent être ajoutées ou supprimées par INSERT INTO table (col1,..., coln ) VALUES (val1,...,valn )
la commande ALTER TABLE. On peut aussi modifier l'état de la
Exemple1
contrainte par MODIFY CONSTRAINT.

Exemple DEPT( Ndept, nomd, lieu)


ALTER TABLE EMP INSERT INTO DEPT VALUES (20, 'RECHERCHE‘, ‘GRENOBLE'')
DROP CONSTRAINT NOM_UNIQUE
ADD CONSTRAINT SAL_MIN CHECK (SAL > 200)
Exemple2
RENAME CONSTRAINT NOM1 TO NOM2
MODIFY CONSTRAINT SAL_MIN DISABLE
INSERT INTO DEPT (Ndept, Nomd) VALUES (20, 'RECHERCHE‘)

Insérer des valeurs uniquement


17 pour Ndept et Nomd 18

Langage de Manipulation des Données Exercices


2. Modification des données
Exercice 1
UPDATE table On considère le Schéma relationnel de la base de données « Société »:
SET col1 = exp1, col2 = exp2, ... U(NU, NomU, VilleU)
WHERE prédicat; P (NP, NomP, Couleur, Poids)
F (NF, NomF, Statut, VilleF)
Exemple PUF (#NP, #NU, # NF, Quantité)
UPDATE EMP
SET NDEPT = 10 Exprimer les requêtes suivantes en SQL
WHERE NOME = ‘GHARBI‘; 1. Créer ces relations en respectant les contraintes suivantes :
- NomU, NomP et NomF ne doivent pas être nulles
3. Suppression des données - La ville de l’usine est Tunis, Sfax ou Gabès
- Le poids d’un produit est supérieur à 100g
2. Ajouter un nouveau fournisseur :100, Bejaoui, sous-traitant, Tunis
DELETE FROM table
3. Ajouter un nouveau produit sans spécifier la couleur et le poids
WHERE prédicat;
4. Supprimer les livraisons de quantité supérieure à 60.
5. Changer la ville du fournisseur N°1 : il a déménagé à Bizerte.
Exemple
DELETE FROM EMP
19 20
WHERE sal>600;

5
06/11/2019

Exercices
Exercice 2
On considère le Schéma relationnel de la base de données « Société »:

CLIENT (idclient, Nom, prenom, ville)


COMPTE (idcompte, type, #idproprietaire)
OPERATION (idop, montant, information, #idcompte)

1. Créer les relations présentées ci-dessus avec nom et prénom du client


sont non nulles
2. Insérer trois tuples de votre choix dans les tables associées
3. Ajouter la contrainte suivante : le montant doit être différent de 0
4. Supprimer la contrainte le nom est non nulle de la table client
5. Supprimer la table compte

21

Vous aimerez peut-être aussi