Vous êtes sur la page 1sur 7

ISET Nabeul ATELIER BASE DE DONNEES

TP 2 :
SQL : LANGAGE DE DEFINITION DE DONNEES LDD

OBJECTIFS :
 Création des tables avec le langage SQL
 Création et manipulation des contraintes avec le langage SQL
 Modification de la structure tables avec le langage SQL

Rappel du Cours:
1. Présentation de SQL
SQL signifie Structured Query Language est le langage des bases de données relationnelles
répandant à la fois aux problématiques de
- création des objets de base de données (LDD),
- de manipulation des données (LMD),
- d’interrogation de données (LID)
- de gestion de la sécurité (droits d’accès).

Il est utilisé par les principaux SGBDR du marché : Oracle, SQL Server, MySQL, Access…

2. Création des tables


Syntaxe : Pour créer une table, on fait recours à l instruction suivante :
CREATE TABLE nom_table (
Attribut1 type1,
Attribut2 type2,
...,
Contrainte1,
Contrainte2,

);
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 (entre ‘ ‘) dont les espaces enfin
de la chaîne seront éliminés (longueur variable).
- CHAR(N) : Chaîne de N caractères (longueur fixe).
Contraintes d’intégrité
Définition : Dans la définition d’une table, on peut indiquer des contraintes d’intégrité portant sur
une ou plusieurs colonnes.
Les contraintes possibles sont : UNIQUE, PRIMARY KEY, FOREIGN KEY   REFERENCES
et
CHECK.
Chaque contrainte doit être nommée pour pouvoir la mettre à jour ultérieurement.
1
This study source was downloaded by 100000863133058 from CourseHero.com on 03-01-2023 12:59:19 GMT -06:00

https://www.coursehero.com/file/60738095/TP2-BDpdf/
ISET Nabeul ATELIER BASE DE DONNEES

Création :
- CONSTRAINT nom_contrainte UNIQUE (colonne1, colonne2, …) : interdit qu’une
colonne, ou la concaténation de plusieurs colonnes, contiennent deux valeurs identiques.
- CONSTRAINT nom_contrainte PRIMARY KEY (attribut1, attribut2, …) : l’ensemble
des attributs attribut1, attribut2, … qui forment la clé primaire de la relation.
- CONSTRAINT nom_contrainte FOREIGN KEY (attribut_clé_étrangère)
REFERENCES
nom_table (attribut_référence) : l’attribut de la relation en cours représente la clé étrangère qui
fait référence à la clé primaire de la table indiquée.
- CONSTRAINT nom_contrainte CHECK (condition) : contrainte là où on doit
obligatoirement satisfaire la condition telle qu’elle est énoncée.

Exemple :
CREATE TABLE CLASSE (
NUMCLASSE NUMBER(5),
NOMCLASSE VARCHAR2(10)
);

CREATE TABLE ETUDIANT (


NCE NUMBER(5),
NOM VARCHAR2(10),
PRENOM VARCHAR2(10),
NUMCLASSE VARCHAR2(10),
CONSTRAINT PK_ETUDIANT PRIMARY KEY(NCE),
CONSTRAINT U_NOM UNIQUE(NOM),
CONSTRAINT CK_NOM CHECK(NOM = UPPER(NOM)),
CONSTRAINT FK_ETUDIANT_CLASSE FOREIGN KEY(NUMCLASSE)
REFERENCES CLASSE(NUMCLASSE)
);
3. Renommage des tables
Syntaxe : Pour changer le nom d’une table, on fait recours à l’instruction suivante :

RENAME Ancien_Nom
TO Nouveau_Nom ;

Exemple : Etant donné l entité ETUDIANT, si on souhaite la renommer par STUDENT, on


écrit :

RENAME ETUDIANT
TO STUDENT ;

4. Destruction des tables


Syntaxe : Pour supprimer le contenu d’une table ainsi que son schéma, on utilise l’instruction
suivante :

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 :

2
This study source was downloaded by 100000863133058 from CourseHero.com on 03-01-2023 12:59:19 GMT -06:00

https://www.coursehero.com/file/60738095/TP2-BDpdf/
ISET Nabeul ATELIER BASE DE DONNEES

DROP TABLE ETUDIANT ;

5. Modification des tables


Il existe plusieurs modifications que l’on peut effectuer sur une table donnée.

5.1.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 : Etant donné la table Commande, l’ajout du champ Montant à cette table revient à
écrire :

ALTER TABLE COMMANDE


ADD (MONTANT NUMBER(10,3)) ;

5.2.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 Montant de la table Commande nécessite le


recours à l’instruction :

ALTER TABLE COMMANDE


MODIFY (MONTANT NUMBER(12,3)) ;

5.3.Ajout de contraintes :
Après avoir créé la base de données, on peut ajouter une nouvelle contrainte  ’intégrité grâce à
l’instruction suivante :

ALTER TABLE nom_table


ADD CONSTRAINT nom_contrainte definition_contrainte ;

Exemple : Ajouter une contrainte à la table Commande qui permet d’obliger des insertions de
montants
Positifs

ALTER TABLE COMMANDE


ADD CONSTRAINT CK_MONTANT CHECK(MONTANT >= 0) ;

5.4.Suppression de contraintes :
Pour supprimer une contrainte, on procède comme indique la syntaxe de cette instruction :

ALTER TABLE nom_table


DROP CONSTRAINT nom_contrainte ;

Exemple : Supprimer la contrainte ck_montant de la table Commande


3
This study source was downloaded by 100000863133058 from CourseHero.com on 03-01-2023 12:59:19 GMT -06:00

https://www.coursehero.com/file/60738095/TP2-BDpdf/
ISET Nabeul ATELIER BASE DE DONNEES

ALTER TABLE COMMANDE


DROP CONSTRAINT CK_MONTANT ;

Activité:
La base de données à étudier permet de gérer les commandes des clients d’une entreprise. Cette
base de données est composée de cinq tables :
 Table CLIENT : Chaque ligne décrit un client ;
CLIENT (N_CLI, NOM_CLI, PRENOM_CLI, ADRESSE_CLI, LOC_CLI, CAT_CLI,
COMPTE)
N_CLI : Numéro du client de type varchar(5), clé primaire
NOM_CLI : nom du client de type varchar(30),
PRENOM_CLI : prénom du client de type varchar(30),
ADRESSE_CLI : adresse du client de type varchar (60),
CAT_CLI : catégorie du client de type varchar(2) facultative,
COMPTE : état du compte de type number (9,3).

 Table PRODUIT : Chaque ligne décrit un Produit ;


PRODUIT (N_PRO, LIBELLE, PRIX, QSTOCK)
N_PRO : Numéro du produit de type entier, clé primaire
LIBELLE : le libellé du produit de type varchar(60),
QSTCK : quantité restante en stock du produit de type entier,
PRIX : prix unitaire du produit de type number (9,3).

 Table COMMANDE : Chaque ligne décrit une commande ;


COMMANDE (N_COM, N_CLI, DATE_COM)
N_COM : Numéro de la commande de type entier, clé primaire
N_CLI: le numéro du client, clé étrangère vers la table CLIENT,
Date_COM : la date de la commande

 Table DETAIL : Chaque ligne décrit un détail d’une commande ;


DETAIL (N_COM, N_PRO, Q_COM)
N_COM : Numéro de la commande à laquelle le détail appartient, c’est une clé étrangère qui
fait référence à la table COMMANDE.
4
This study source was downloaded by 100000863133058 from CourseHero.com on 03-01-2023 12:59:19 GMT -06:00

https://www.coursehero.com/file/60738095/TP2-BDpdf/
ISET Nabeul ATELIER BASE DE DONNEES

N_PRO: le numéro du produit commandé, clé étrangère vers la table produit


Q_COM : la quantité commandée de type entier.
L’identifiant primaire est constitué de N_COM et N_PRO.
Travail demandé

1. Ouvrir SQL Plus et se connecter à la base oracle comme suit :


a. Nom de l’utilisateur : votre_login
b. Mot de passe : votre mot de passe
2. Ecrire en SQL les instructions nécessaires pour créer les tables « CLEINT », « PRODUIT »,
« COMMANDE » et« DETAIL »
3. supprimer la colonne PRENOM_CLI de la table CLIENT.
4. Changer le type du champ «N_CLI» d’un entier à une chaîne de caractères.
4. Changer le type du champ «N_PRO» d’un entier à une chaîne de caractères.
5. Remplir les 5 tables par les enregistrements ci-dessous.

5
This study source was downloaded by 100000863133058 from CourseHero.com on 03-01-2023 12:59:19 GMT -06:00

https://www.coursehero.com/file/60738095/TP2-BDpdf/
ISET Nabeul ATELIER BASE DE DONNEES

6. Vérifier que l’ensemble des données est bien enregistré au niveau de la base de données en
donnant la liste de tous les clients, produits, commandes et détails.
7. Exiger lors de la définition de données que la quantité commandée soit compris entre 1et
1000.
8. Exiger lors de la définition de données que le nom d’un produit soit unique.

6
This study source was downloaded by 100000863133058 from CourseHero.com on 03-01-2023 12:59:19 GMT -06:00

https://www.coursehero.com/file/60738095/TP2-BDpdf/
ISET Nabeul ATELIER BASE DE DONNEES

7
This study source was downloaded by 100000863133058 from CourseHero.com on 03-01-2023 12:59:19 GMT -06:00

https://www.coursehero.com/file/60738095/TP2-BDpdf/
Powered by TCPDF (www.tcpdf.org)

Vous aimerez peut-être aussi