Vous êtes sur la page 1sur 7

TP Ingénierie des BD ISSATM 2023/2024

TP1 : Création et alimentation des tables


Objectifs :
✓ Utilisation d’Oracle
✓ Création des tables
✓ Définition des contraintes d’intégrités
✓ Insertion des données : remplissage des tables
Rappel :
Oracle est un SGBD Relationnel muni de nombreuses fonctionnalités.
Oracle XE est une version gratuite que l’on peut télécharger et installer sur un ordinateur personnel.
Un logiciel Client appelé SQLplus est une interface interactive en mode caractère
permettant de lancer l’exécution d’expression SQL sur le serveur Oracle, et de récupérer
les résultats.

1. Création des tables :

a) Définition :

Une table est un ensemble de données relatives à une même entité, structurées sous forme d’un tableau.
de l’entité décrite par cette table

cette table

Chaque table possède une clé primaire qui est constituée d’une ou plusieurs colonnes (champs) permettant
d’identifier de façon unique chaque ligne (enregistrement) de la table.

b) Création simple :

On peut créer une table par la commande CREATE TABLE en spécifiant le nom et le type de chaque
colonne. A la création, la table sera vide mais un certain espace lui sera alloué. La syntaxe est la suivante :

CREATE TABLE nom_table(nom_col1


TYPE1,
nom_col2 TYPE2,
...) ;

Voici le script de la création de la table.

CREATE TABLE Departement Commentaire séparé par 2 tirets


( Il n’est pas pris en compte lors
Departement_id integer, -- identifiant du département de l’exécution
Nom_Departement varchar(25), --nom du departement
);

2ème SI Page 1
TP Ingénierie des BD ISSATM 2023/2024

c) Domaines de données :

Un attribut d'une relation est défini pour un certain domaine ou type. Les types de données
disponibles en SQL varient d'un SGBD à l'autre, on peut néanmoins citer un certain nombre de
types standards que l'on retrouve dans tous les SGBD.

• INTEGER ou INT, SMALLINT


• NUMERIC(X) DECIMAL(X,Y) ou NUMERIC(X,Y)
• FLOAT(X), REAL
• CHAR(X) VARCHAR(X)
• DATE (JJ/MM/AAAA)
NB : La définition des types n'est pas suffisante pour définir un schéma relationnel, il faut lui
adjoindre la définition de contraintes d'intégrité, qui permettent de poser les notions de clé,
d'intégrité référentielle, de restriction de domaines, etc.

d) Contraintes d’intégrités :

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.

Les contraintes d'intégrité sur une colonne sont :


• PRIMARY KEY : indique qu'une colonne, ou un groupe de colonnes, peut être
utilisée comme un identifiant unique de ligne pour cette table.
• UNIQUE : interdit que deux tuples de la relation aient la même valeur pour l'attribut.
CHECK () : contrôle la validité de la valeur de l'attribut spécifié dans la condition
dans le cadre d'une restriction de domaine. Par exemple : pour obliger les prix des
produits à être positifs : prix >0
• NOT NULL : Une contrainte NOT NULL indique simplement qu'une colonne ne
peut pas prendre la valeur NULL
• REFERENCES () : contrôle l'intégrité référentielle entre l'attribut et la table et ses
colonnes spécifiées
• FOREIGN KEY : stipule que les valeurs d'une colonne (ou d'un groupe de colonnes)
doivent correspondre aux valeurs qui apparaissent dans les lignes d'une autre table. On dit
que cela maintient l’intégrité référentielle entre les deux tables.

Une façon de déclarer les contraintes d'intégrité est la suivante lors de la création de la table :

CREATE TABLE
nom_table (
nom_col_1 type_1,
nom_col_2 type_2,
...
nom_col_n type_n
CONSTRAINT [nom_contrainte_1]
contrainte_1,CONSTRAINT
[nom_contrainte_2] contrainte_2,
...
CONSTRAINT [nom_contrainte_m] contrainte_m
);

2ème SI Page 2
TP Ingénierie des BD ISSATM 2023/2024

2. Connexion
Le signe SQL> est un prompt qui indique que SQLplus est prêt à recevoir des commandes.

Quelques Commandes SQLplus :

CONNECT : permet de réaliser une nouvelle connexion après le lancement de SQLplus.

DISC[ONNECT] : Permet à l’utilisateur de se déconnecter de la base de données.

EXIT ou QUIT : Permet à l’utilisateur de quitter l’outil SQLplus et de se déconnecter de la base de données.

SPOOL : Permet de générer un fichier texte qui contient toutes les commandes passées à l’ecran.

Pour lancer la sauvegarde des commandes passées :

SPOOL OFF : arrêter la sauvegarde

DESC nom table : affiche la description d’une table.

Manipulation1 : Création d’un utilisateur/DBA

SQL>create user etudiant identified by etudiant;

SQL>grant dba to etudiant identified by etudiant ;

SQL> disc

SQL>connect

Enter user-name: etudiant

Enter password:

Connected.

SQL> show user

USER is "ETUDIANT"

2ème SI Page 3
TP Ingénierie des BD ISSATM 2023/2024

Manipulation2 :

1) Redirigez les sorties vers un fichier sous le dossier qui porte votre nom
2) Reprenons le script de la création de notre première base de données.
• Créer la table département en respectant les consignes suivantes.
- Departement_id est de type integer
- Nom_Departement VARCHAR (25)
- le Nom du departement doit être non null et unique
- Departement_id est la clé primaire
CREATE TABLE Departement(
Departement_id integer, -- identifiant du département
Nom_Departement varchar(25) NOT NULL, --nom du departement

-- définir une contrainte d’unicité pour le nom du département


CONSTRAINT UN_Nom_Departement UNIQUE (nom_departement),
--définition de la clé primaire
CONSTRAINT PK_Departement PRIMARY KEY (Departement_ID)
);

• Créer la table Salle en utilisant ce script:

CREATE TABLE Salle


(
Batiment varchar (1),
Num_Salle varchar (10),
-- CHECK constraint contrôle la valeur de la colonne lors de l’insertion
Capacite integer CHECK (Capacite >1),
--la clé primaire se compose de deux attributs
CONSTRAINT PK_Salle PRIMARY KEY (Batiment, Num_Salle)
);

3. Remplissage des tables :

Quand une table est créée, elle ne contient aucune donnée. La première chose à faire, c'est d'y
insérer desdonnées. Sans quoi la base de données n'est pas d'une grande utilité.

Si on prend la table Département vue précédemment, elle contient les données suivantes :

Departement_id Nom_Departement
1 MIDO
2 LSO
3 MSO

Une commande d’insertion d’une ligne peut être la suivante :


INSERT INTO Departement VALUES (1,'MIDO');

Les données sont listées dans l'ordre des colonnes de la table, séparées par des virgules.

2ème SI Page 4
TP Ingénierie des BD ISSATM 2023/2024

Application 1 :
• Ajouter les autres données à la table département
• Ajouter les données à la table salle

Batiment Num_Salle Capacite


B 020 15
B 022 15
A 301 45
C Amphi 8 500
C Amphi 4 200

4. Mise à jour des données d’une table :

La modification de données présentes en base est appelée mise à jour ou actualisation (update en
anglais).Il est possible de mettre à jour une ligne spécifique, toutes les lignes ou un sous-
ensemble de lignes de la table. Chaque colonne peut être actualisée séparément.

Pour mettre à jour les lignes existantes, utilisez la commande UPDATE. Trois informations
sont nécessaires :
1. Le nom de la table et de la colonne à mettre à jour ;
2. La nouvelle valeur de la colonne ;
3. Les lignes à mettre à jour.

UPDATE <table-name>
SET col1 = val1, ...., coln = valn
WHERE condition;
5. Suppression des données d’une table :

On peut aussi supprimer un groupe de lignes qui remplissent une condition, ou même toutes les
lignes d'une table en une fois.
DELETE FROM <table-name> DELETE FROM <table-name>;

WHERE col1 = val1, .... , coln = valn;

6. Modification des tables (la structure) :

• Ajout d’une colonne

ALTER TABLE nom_table ADD


(nom_col1
TYPE1,nom_col2
TYPE2,
...) ;
• Suppression d’une colonne
ALTER TABLE nom_table DROP column (nom_col1) ;
• Ajout d’une contrainte

ALTER TABLE nom_table ADD (définition de la contrainte) ;


2ème SI Page 5
TP Ingénierie des BD ISSATM 2023/2024

7. Suppression de tables:

DROP TABLE <table-name>;

Application 2:

1. Créer la table Etudiant avec la structure suivante :


- Etudiant_ID integer,
- Nom varchar(25),
- Prenom varchar(25),
- Date_Naissance date,
- Ville varchar(25),
- Code_Postal varchar(9)
- Le nom et le prénom doivent etre non null
- Etudiant_ID est la clé primaire

2. Remplir la table Etudiant avec les données suivantes :

Eudiant_ID Nom Prenom Date_Naiss Ville Code Postal


1 Gamotte Albert 18/02/1979 Paris 75021
2 Odent Jamal 12/05/1978 Paris 40000
3 Debeche Gill 15/07/1979 Paris 75022
4 Debeche Aude 15/08/1979 Paris 75022

3. Changer la ville de l’étudiant 1 de PARIS à MARSEILLE.


4. Supprimer le ou les étudiants dont le code postal est 75021

Application 3:
1) Redirigez les sorties vers un fichier qui porte le nom application3.txt
2) Créer la table Client qui est caractérisé par un identifiant numérique, un nom complet, une ville
résidentielle et un numéro de téléphone.
3) Afficher la description de la table Client
4) Ajouter la clé primaire.
5) Créer la table chargé clientèle qui est caractérisé par un identifiant un nom et un prénom.
6) Créer la table compte qui est représenté par un numéro unique, un solde, une date d'ouverture et
un état (ouvert ou fermé). Spécifier la clé primaire et les clés étrangères.
7) Insérer les informations suivantes à la table client :
INSERT INTO client (idcl, nom, prenom, ville, numtelcl) VALUES (0811553,'Rébecca', 'Armand', 'Saint-
Didier-des-Bois', 24303072) ;
INSERT INTO client (idcl, nom, prenom, ville, numtelcl) VALUES (0855336,'Aimée', 'Hebert', 'Marigny-
le-Châtel', 36985725) ;

INSERT INTO client (idcl, nom, prenom, ville, numtelcl) VALUES (08554423,'Marielle', 'Ribeiro',
'Maillères', 27910516) ;
INSERT INTO client (idcl, nom, prenom, ville, numtelcl) VALUES (08775512,'Hilaire', 'Savary', 'Conie-
Molitard', 58095443);
8) Arrêter la sauvegarde
9) Déconnexion

2ème SI Page 6
TP Ingénierie des BD ISSATM 2023/2024

Application 4 :

1) Redirigez les sorties vers un fichier qui porte le nom application4.txt


2) Créer les tables suivantes. Spécifier les clés primaires et les clés étrangères.
CLIENT2 ( NCIN, Nom, Prenom, Adresse, Tel)
FACTURE( NumFact, DateFact, TAP, #NCIN)
PRODUIT (CodeProd, Designation, PU)

3) Remplir votre base par les enregistrements suivants :


CLIENT2
NCIN Nom Prénom Adresse Tel
02212349 Mohamed Ouni Tunis 71345678
00215679 Ali Fraj Sfax 74820183
09876542 Kamel Kraim Kef 78261300
03287556 Saleh Ben Ahmed Gabes 75555000

FACTURE
NumFact DateFact TAP NCIN
01 06/04/2013 9780 02212349
02 06/04/2013 278 09876542
03 11/04/2013 1245 00215679
04 16/04/2013 5438 03287556

PRODUIT
CodeProd Désignation PU
P01 Clavier 15,200
P02 Ecran 198,355
P03 Imprimante 90
P04 Scanner 75,980

2ème SI Page 7

Vous aimerez peut-être aussi