Vous êtes sur la page 1sur 7

Atelier Base de données ISET Bizerte

Langage SQL
Langage de Définition de Données (LDD)

I. Partie théorique
1. Présentation du langage SQL
SQL (Structured Query Language) est un langage qui permet à l’utilisateur de spécifier ses
interrogations en termes de résultats sans avoir à décrire les procédures à suivre pour obtenir
ces résultats.
SQL fournit un ensemble de commandes pour une variété de tâches, dont :
- L’interrogation de la base de données
- L’insertion, la mise à jour et la suppression des données dans la base de données
- La création et la modification du schéma de la BD
- La définition de vues
- Le contrôle d’accès aux données
- La création d'index pour accélérer les interrogations
Une commande SQL est aussi appelée instruction SQL ou requête SQL.
En tant que langage d’accès aux données, SQL se compose de trois sous-ensembles
d’instructions:
- SQL est un langage de définition de données (LDD) : Il permet de créer
des tables dans une base de données relationnelle, ainsi que d'en modifier ou
supprimer.
- SQL est un langage de manipulation de données (LMD) : il permet de
sélectionner, insérer, modifier ou supprimer des données dans une table d'une base de
données relationnelle.
- SQL est un langage de contrôle de données (LCD). :Il est possible avec SQL de
définir des permissions au niveau des utilisateurs d'une base de données.

2. Langage de Définition de Données (LDD)


2.1 Type de données
Les types de données autorisés par SQL :
- CHAR(n) : Chaîne de caractère fixe de longueur maximale n.

1
Atelier Base de données ISET Bizerte

- VARCHAR2(n) ou VARCHAR(n) : Chaîne de caractère variable de longueur


maximale n.
- SMALL INT: entier sur 15 bits.
- INTEGER: Nombre entier entre -32767 et +32768.
- NUMBER : Nombre entier ou décimal de 40 positions maximum.
- NUMBER(n): Nombre entier ou décimal avec une taille spécifique, 1<n<105
- NUMBER(n,d) : Réel avec n le nombre de chiffres du réel, d le nombre de
décimaux.
- FLOAT : Réel.
- Date : données de type date
2 .2 Contraintes définis par SQL
Une contrainte est une règle qui permet de contrôler la validité et la cohérence des valeurs
entrées dans les différentes tables de la base. Elle peut être définie lors de la création d’une
table ou bien par une commande de modification d’une table existante.
Une contrainte est définie soit sur un attribut, soit sur une table.

Les contraintes qui suivent la définition des attributs sont :


- Not Null : Spécifie que pour tout tuple, l’attribut doit être renseigné
- Unique : Spécifie que toutes les valeurs de l’attribut seront distinctes
- Primary key : Spécifie que l’attribut est une clé primaire pour la table.
- References table (attribut) : C’est la contrainte d’intégrité référentielle, elle se définit
par rapport à une clé étrangère et vérifie que chaque valeur de l’attribut existe au
préalable dans la table dont l’attribut est référencé.
- Check : C’est une contrainte associée à une condition qui doit être vérifiée par toutes
les valeurs de l’attribut.

Les contraintes sur une table portent sur un ensemble d’attributs d’une même table :
-Unique (attribut1, attribut2,…) : l’unicité porte sur la combinaison des valeurs de tous les
attributs cités entre les parenthèses.
- Primary key (attribut1, attribut2,…) : la clé primaire de la table est une clé composée
- Foreign key (attribut1, attribut2,…) references table (attribut1, attribut2,…) [on delete
cascade] : désigne une clé étrangère composée de plusieurs attributs.

2
Atelier Base de données ISET Bizerte

L’option on delete cascade indique que la suppression d’une ligne de la table référencé va
entrainer la suppression automatique des lignes référencées
2.3 Création de la table
Au moment de la création de la table, le nom d’une table doit être unique dans la base de
données et le nom de l’attribut doit être unique dans une table.

Exemple :
Soit la bases de données club de voiles composée de quatre tables : compétition, catégorie
membre et résultat.

Les commandes ci-dessous permettent la création de ces tables :


Create table compétition
( ncompt number(4),
inticompt varchar2(20) not null,
datecompt date,
lieucompt varchar2(20),
constraint pk_comp primary key (ncompt) )

Create table catégorie


( ncateg number(4) primary key,
inticateg varchar2(20) not null )

3
Atelier Base de données ISET Bizerte

Create table membre


( nmembre number(4) primary key,
nomemb varchar2(20),
pnomemb varchar2(20),
datememb date,
ncateg number(4) references catégorie (ncateg) on delete cascade )

Create table résultat


( ncompt number(4),
nmembre number(4),
place number(4),
Constraint pk_res primary key (ncompt, nmembre),
Constraint fk_res1 foreign key (ncompt) references compétition (ncompt) on delete
cascade,
Constraint fk_res2 foreign key (nmembre) references membre (nmembre) on delete
cascade)
2.4 Affichage de la structure d’une table

Exemple :
describe compétition
2.4 Modification de la structure d’une table
2.4.1 Supression d’une table

La clause cascade constraints permet de supprimer toutes les intégrités réferentielles qui
reférent aux clés de la relation supprimée.
2.4.2 Ajout d’un attribut

Exemple :
Alter table compétition
add duréecompet number (15)

4
Atelier Base de données ISET Bizerte

2.4.3 Suppression d’un attribut

Exemple :
Alter table compétition
drop column duréecompt
2.4.3 Modification d’un attribut existant

Exemple :
Alter table compétition
modify initcompt varchar2(40)
2.4.4 Ajout d’une contrainte

Exemple :
Alter table Membre
add constraint datenaissance check (age>=18)
2.4.5 Desactivation d’une contarinte

Exemple :
Alter table Membre
disable constraint datenaissance
2.4.6 Activation d’une contarinte

5
Atelier Base de données ISET Bizerte

Exemple :
Alter table Membre
enable constraint datenaissance
2.4.5 Suppression d’une contrainte

Exemple :
Alter table Membre
drop constraint datenaissance
II. Partie pratique
Soit le schéma relationnel suivant :
Fournisseur (NF, NomF, Ville, Statut)
Pièces (NP, NomP, Ville, Prix)
Projets (NJ, NomJ, Ville, Debut)
Réalisation (#NF, #NP, #NJ, Qte)

Les types des différents attributs :


NF, NP, NJ et Qte number(3)
NomF, NomP et NomJ varchar2(20)
Ville varchar2(15),
Statut number(2)
Prix number(6,3)
Debut Date.

1. Créer la table Fournisseur et attribuer les propriétés NOT NULL et UNIQUE à sa clé NF.
2. Créer la table Pièces et définir la contrainte pkNP de la clé primaire NP
3. Créer la table Projets sans définir les contraintes
4. Créer la table Réalisation en spécifiant la contrainte pkFPJ de la clé primaire PJ et la
contrainte fkNF de la clé étrangère NF (Ne pas définir les contraintes sur les autres clés
étrangères)
5. Ajouter l’attribut fin à la table projets
6. Ajouter des attributs Couleur et Poids à la table Pièces.

6
Atelier Base de données ISET Bizerte

7. Eliminer l’attribut Prix de la table Pièces


8. Modifier la taille de l’attribut Qte à number(5)
9. Ajouter la contrainte pkPJ de la clé primaire NJ de la table Projets
10. Supprimer la contrainte pkFPJ.
11. Ajouter la contrainte pkFPJ.
12. Ajouter les contraintes de clés étrangères fkNP et fkNJ sur la table Réalisation.
13. Ajouter la contrainte ckQté sur l’attribut Qte(Qte>0) de la table Réalisation

Vous aimerez peut-être aussi