Vous êtes sur la page 1sur 3

Module BDD - L3 GTR Fév.

2024

TP1- Requêtes de création Tables /Index


Oracle : Système de Gestion de Bases de Données (SGBD) relationnel (SGBDR) édité par
Oracle Corporation (http://www.oracle.com/).

SQL - Structured Query Language : langage de définition, de manipulation et de contrôle


de bases de données relationnelles (standard ANSI depuis 1986) :

• "LDD (Langage de Définition de Données) : création, modification et suppression des


définitions des tables et index
• "LMD (Langage de Manipulation de Données) : ajout, suppression, modification et
interrogation des données
• "LCD (Langage de Contrôle de Données) : gestion des protections d’accès

Chaque instruction est terminée par (;). Pour insérer des Commentaires : /* … */.

Définition des données : SQL propose aux utilisateurs un ensemble d’instructions lui
permettant de créer des tables, des indexes, des vues et d’associer à une définition d’une
contrainte.
a. Création d’une table :
CREATE TABLE Nom-Table (Attribut1 TYPE, Attribut2 TYPE, …, contrainte_integrité1,
contrainte_integrité2, …);
Type des données :
• NUMBER(n) : Entier à n chiffres
• NUMBER(n, m) : Réel à n chiffres au total (virgule comprise), m après la virgule
• VARCHAR(n) : Chaîne de n caractères (entre ‘ ’) ; Char(n)
• DATE : Date au format ‘JJ-MM-AAAA’

b. Définitions des contraintes d’intégrité :


• Clé primaire : CONSTRAINT nom_contrainte PRIMARY KEY (attribut_clé [, attribut_clé2, …])
• Clé étrangère : CONSTRAINT nom_contrainte FOREIGN KEY (attribut_clé_ét)
REFERENCES table(attribut)

• Contrainte de domaine : CONSTRAINT nom_contrainte CHECK (condition)

c. Création d’index (accélération des accès)


CREATE [UNIQUE] INDEX nom_index ON nom_table (attribut [ASC|DESC], …);
CREATE INDEX ID1 ON Employé (NomE ASC);

Tel que : UNIQUE → pas de double


ASC/DESC → ordre croissant ou décroissant
d. Destructions :

• Pour supprimer une table : DROP TABLE nom_table;


• Pour supprimer un index : DROP INDEX nom_index;

Exemples de requêtes :
Contrainte d’intégrité : clé primaire / clé étrangère
SQL> Create table Departement(
2 NumDep number(4),
3 NomDep varchar (20),
4 Localisation varchar (15),
5 Constraint DepPK Primary Key (NumDep);

Contrainte clé étrangère:


SQL> Create table Employé(
2 NumEmp number(4),
3 NomEmp varchar (20) NOT NULL,
4 NumDep number(4),
5 Fonction varchar (10),
5 DateDéb Date,
6 Constraint EmpPK Primary Key (NumEmp),
7 Constraint DepFK Foreign Key (NumDep) References Department
(NumDep);

Description table créée : SQL> Desc Employé;

Contrainte NOT NULL: pour exprimer que l’attribut est obligatoire.

Contrainte Check : limiter les valeurs d’un attribut (seules certaines valeurs seront autorisées)

Contrainte Default : insérer une valeur par défaut.

SQL> Create table Film(


2 Code number(4),
3 Titre varchar (40) Not null,
4 Durée Integer CHECK (Durée >0 and Durée < 3),
5 Nationalité DEFAULT ‘Algérienne’,
6 NomRéalisateur varchar (30) CHECK (NomRéalisateur Like '%r'
7 Constraint CodPK Primary Key (Code);
Manipulation « 1 » – TP1 (Langage de définition de données)
Soit le modèle relationnel suivant relatif à la gestion des hôpitaux.

HOPITAL (CODE-HOPITAL, NOM_HOP, WILAYA, NB_SERVICE, DATE-CREATION)

SERVICE (CODE-SERVICE, NOM-SERVICE, BATIMENT, CODE-HOPITAL*)

CHAMBRE (CODE-HOPITAL, CODE-SERVICE, NUM-CHAMBRE, NUM-INF*, NB_LITS)

EMPLOYE (NUM- EMP, NOM-EMP, PRENOM-EMP, ADRESSE-EMP, TEL-EMP,


CODE-SERVICE*, CODE-HOPITAL*)

MEDECIN (NUM- MED, SPECIALITE, SALAIRE, NUM-EMP*)

INFIRMIER (NUM-INF, ROTATION, SALAIRE, NUM-EMP*)

PATIENT (NUM-PATIENT, NOM-PATIENT, PRENOM-PATIENT, ADRESSE-PATIENT,


TEL-PATIENT, MUTUELLE, CODE-SERVICE*)

HOSPITALISATION (NUM-PATIENT, DATE-HOSP, CODE-HOPITAL*,


CODE_SERVICE*, NUM_CHAMBRE*, LIT)

SOIGNE (NUM-PATIENT, NUM-MED)

Remarque : Les clés primaires sont soulignées et les clés étrangères sont marquées par *.

1- Créer les relations de base avec toutes les contraintes d’intégrité.

Vous aimerez peut-être aussi