Réalisé par : Mme YEKKEN Sabrine
Version : 2012 -2013
2
Introduction générale.
➢ Pour interroger une BD, il faut utiliser un langage .
➢ SQL est le langage le plus complet pour interagir une BD.
4
Objectifs du cours (1/2)
Introduction du langage SQL
1ème Partie : Présentation du langage LDD
1. Définir « LDD »
2. Les types de données
2ème Partie : Création d’une table/des contraintes d’intégrités
1. Créer une table/ table à partir d’une autre
2. Ajouter une contrainte clé primaire, clé étrangère
3. Ajouter une contrainte (On delete cascade, on delete set null)
4. Autres contraintes ( not null, check, unique)
5. Activer / désactiver une contrainte
5
Objectifs du cours (2/2)
3ème Partie : Manipulation de la structure de la table
1. Ajouter, modifier, supprimer une colonne/contrainte
2. Supprimer une table
3. Renommer une table
4ème Partie : Autres Objets
1. Définition et création de :
i. vues
ii. Synonymes
iii. Index
iv. Séquences
6
Introduction du langage SQL
Objectifs de la partie :
Introduire et définir le langage SQL.
7
Définition de l’SQL.
SQL (Structured Query Language ), en français langage de requête
structurée, est composé d’un ensemble de sous langages:
➢ un langage de définition de données (LDD),
➢ un langage de manipulation de données (LMD),
➢ un langage d’interrogation de données (LID),
➢ un langage de contrôle de données (LCD),
pour les bases de données relationnelles.
8
1ère Partie :
Présentation du langage LDD
Objectifs de la partie :
Définition et présentation du langage
de définition de données ainsi que les
différents types de données.
9
LDD.
Le langage de définition de données, c’est un langage qui
permet de définir et manipuler les structures de
données et non pas les données.
Structure de données : tout objet de la BD destiné à
contenir des données : Exemple : TABLE.
10
Les types de données.
Types de données Description
INT Entier
CHAR [(size [BYTE | CHAR])] Taille fixe comprise entre 1 et 2000
VARCHAR2 (size) Taille Variable comprise entre 1 et 4000
NUMBER [ ( t , d ) ] Réel de t chiffres dont d sontdécimales.
LONG Données caractères ayant une taille <= 2GO
DATE Date comprise entre 1/1/4712 AJC et 31/12/999 APJC
TIMESTAMP Année, mois, jour , heure, minute et seconde, fraction de seconde
INTERVAL YEAR(year_precision) Stocke une période de temps en année et mois, où year_precision
TO MONTH est compris entre 0 et 9. La valeur par défaut est 2
11
2 ème et 3 Partie :
ème
Création d’une table/contraintes d’intégrités –
Manipulation de la structure d’une table
Objectifs de la partie :
Comment créer une table et définir les
contraintes d’intégrités.
Comment ajouter, modifier ou
supprimer des colonnes ou des
contraintes…
12
Créer une table. Syntaxe
Syntaxe :
CREATE TABLE <nom_de_la_table>
( <nom_colonne1> <type_colonne1>,
<nom_colonne2> <type_colonne2>, …
<nom_colonne’> <type_colonne’>
);
Remarque : Pour créer une table il faut avoir :
• Le privilège CREATE TABLE
• Un espace de stockage
13
Créer une table. Exemple
▪ CREATE TABLE Etudiants
( Netudiant number,
Nom varchar2(10),
Prenom varchar2(10)
);
▪ DESCRIBE (ou DESC) Etudiants ; --pour voir la description de la table
14
Créer une table. Table à partir d’une autre table
▪ CREATE TABLE Etud AS SELECT * From Etudiants ;
la table Etud aura la même structure de la table Etudiants avec tous les
enregistrements de la table.
→ la table Etud aura la même structure de la table Etudiants avec tous les
enregistrements de la table.
▪ CREATE TABLE Etud AS SELECT * From Etudiants WHERE (0=1);
→ la table Etud aura la même structure de la table Etudiants sans les
enregistrements de la table.
▪ DESCRIBE (ou DESC) Etud ; --pour voir la description de la table
15
Ajouter une contrainte clé primaire - Syntaxe (1/3)
1er cas : clé primaire simple
Syntaxe 1: lors de la création de la table:
1ère Méthode : Contrainte niveau COLONNE
CREATE TABLE <nom_de_la_table>
( <nom_COL1 > <type_cOL1> CONSTRAINT <nom_contrainte> PRIMARY KEY,
<nom_COL2 > <type_cOL2>, …
<nom_coln > <type_coln>
);
16
Ajouter une contrainte clé primaire - Syntaxe (2/3)
Syntaxe 1: lors de la création de la table:
2ème Méthode : Contrainte niveau TABLE
CREATE TABLE <nom_de_la_table>
( <nom_COL1 > <type_cOL1>,
<nom_COL2 > <type_COL2>, …
<nom_coln > <type_coln> ,
CONSTRAINT <nom_contrainte> PRIMARY KEY( colonne(s) ),
);
17
Ajouter une contrainte clé primaire - Syntaxe (3/3)
2ème cas : clé primaire composée
Syntaxe 1: lors de la création de la table:
CREATE TABLE <nom_de_la_table>
( <nom_COL1 > <type_cOL1>,
<nom_COL2> <type_COL2>,
…
<nom_coln> <type_coln>,
Constraint <nom_contrainte> Primary key (NOMCOL1, nomCOL2...) );
→ Contrainte niveau Table
18
Ajouter une contrainte clé primaire - Exemple
Syntaxe :
ALTER TABLE <nom_de_la_table> ADD Constraint <nom_contrainte>
PRIMARY KEY (nom_colonne(s))
ALTER TABLE Etudiants ADD Constraint pk_nom_prenom PRIMARY KEY
(nom,prenom) ;
19
Supprimer une contrainte clé primaire.
Syntaxe :
ALTER TABLE <nom_de_la_table> DROP CONSTRAINT
<nom_contrainte> ;
ALTER TABLE Etudiants DROP CONSTRAINT pk_nom_prenom ;
20
Ajouter une contrainte clé étrangère.
Syntaxe :
ALTER TABLE <nom_de_la_table> ADD constraint
<nom_contrainte> FOREIGN KEY (<nom_cols>) references
<table_référencée> (nom_cols) ;
Create table Etud as select * from Etudiants;
Alter table Etud ADD constraint pk_nom_prenom PRIMARY KEY (nom,
prenom) ;
ALTER TABLE Etud ADD constraint fk_etud_etudiants FOREIGN KEY
(nom,prenom) references Etudiants (nom,prenom) ;
21
Ajouter une contrainte clé étrangère. Options
Constraint <nom_constrainte> Foreign Key (<colonne(s)>)
References <TableReférencée> (<colonne(s)>)
ON DELETE CASCADE | SET NULL
▪ La clause ON DELETE CASCADE permet de supprimer
automatiquement les valeurs d'une clé étrangère dépendantes d'une
clé primaire si une valeur de cette dernière vient d'être supprimée.
▪ La clause ON DELETE SET NULL permet de mettre à Zéro
automatiquement les valeurs d'une clé étrangère dépendantes d'une
clé primaire si une valeur de cette dernière vient d'être supprimée.
22
Ajouter une contrainte <NOT NULL>.
Cette contrainte est définie :
- Soit lors de la création de la table, syntaxe :
<nom_colonne> <type_colonne> constraint <nom_contrainte> NOT NULL
- Soit après la création de la table, syntaxe :
Alter table <nom_tab> modify <nom_col> constraint < nom_contrainte > NOT NULL
La contrainte NOT NULL ne peut être définie qu’au niveau de la
colonne, pas au niveau de la table
23
Ajouter une contrainte <UNIQUE> - Définition
Une contrainte d’intégrité de type clé unique exige que chaque valeur
dans une colonne ou dans un ensemble de colonnes constituant
une clé soit unique.
Remarque : Une contrainte unique autorise la valeur NULL à
moins que vous définissiez des contraintes NOT NULL
24
Ajouter une contrainte <UNIQUE> - Syntaxe
Cette contrainte est définie :
- Soit lors de la création de la table, syntaxe :
<nom_colonne> <type_colonne> constraint <nom_de_contrainte> UNIQUE
- Soit après la création de la table, syntaxe :
Alter table <nom_table> add constraint <nom_de_contrainte> UNIQUE
(<nom_colonne>)
25
Ajouter une contrainte <CHECK>.
La contrainte Check définit une condition que chaque ligne doit vérifier
Cette contrainte est définie :
- Soit lors de la création de la table, syntaxe :
<nom_colonne> <type_col> CONSTRAINT <nom_de_contr> CHECK (condition)
- Soit après la création de la table, syntaxe :
Alter table <nom_table> ADD CONSTRAINT <nom_de_contr> CHECK (condition)
26
Gérer des colonnes et/ou des contraintes - Syntaxes
Syntaxe générale :
ALTER TABLE <nom_table> + ADD CONSTRAINT <Def _Contrainte>
+ DROP CONSTRAINT
+ ENABLE | <Nom contrainte>
DISABLE CONSTRAINT
+ ADD
<Def _Colonne>
+ MODIFY
+ DROP <nom colonne>
27
Ajouter une/plusieurs colonne(s). Exemple
Ajouter 2 COLOnnes à la table « Etudiants »
ALTER TABLE Etudiants ADD (telephone number ,email varchAR2(50) );
28
Modifier une colonne. Exemple
Syntaxe :
ALTER TABLE <nom_de_la_table> MODIFY <nouvelle définition de la colonne>
ALTER TABLE Etudiants MODIFY ( email varcHAR2(100) );
29
Supprimer une colonne. Exemple
Syntaxe :
ALTER TABLE <nom_de_la_table> DROP <colonnes>
ALTER TABLE Etudiants DROP ( email, telephone);
30
Activer/Désactiver une contrainte.
Syntaxe :
ALTER TABLE <nom_de_la_table>
ENABLE | DISABLE CONSTRAINT <nom_de_la_contrainte>;
31
Supprimer une table. DROP / TRUNCATE
Syntaxe :
DROP TABLE <nom_de_la_table> ;
Remarque:
On a aussi la commande « TRUNCATE » qui permet de vider la table
TRUNCATE TABLE <nom_de_la_table> ;
32
Renommer une table.
Syntaxe :
RENAME <ancien _nom> TO <nouveau_nom> ;
Exemple:
RENAME Etudiants TO EtudiantS1;