Chapitre 5
Langage SQL-LDD
Pr. M. Machkour
Objectifs
Présentation du langage SQL
Étudier le langage de définition des données : LDD
La commande create
La commande alter
La commande drop
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 2
Carte conceptuelle du chapitre 5
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 3
Présentation du langage SQL
SQL = Strucured Query Language : langage d'interrogation de bases de données relationnelles.
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 4
Présentation du langage SQL
SQL a remplacé
SEQUEL=Structured English as Query Language
=premier langage relationnel utilisé
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 5
Les nomes du langage SQL
SQL devient une norme ANSI en 1986 SQL/86
SQL devient une norme ISO en 1987 SQL/86
Une autre norme SQL/89
Expression des contraintes d'intégrité : Primary key, check, references, default
Une autre norme en 1992 SQL2
Expression des opérateurs ensemblistes: intersect , minus…outer join, cascade, date, temps
La norme SQL3 (1999): les types de données abstraits, notion de rôle, les concepts de l'objet
La norme SQL4(2003)…
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 6
Type du langage SQL
SQL est un langage :
de haut niveau
déclaratif =formulation de la requête et le SGBD utilise les moyens et les procédures
adéquats pour obtenir le résultat
=>détails de stockage ne sont pas pris en considération par l'utilisateur.
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 7
Les commandes du langage SQL
SQL assure entre autres :
la création et la modification (structure) des objets de bases de données et les contraintes
associées (create, alter, drop),
l’interrogation et la maintenance(insertion, suppression et modification) des bases de
données (select, insert, delete, update) et
la sécurité des bases de données(contrôle des accès: grant, revoke).
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 8
Les commandes du langage SQL(suite)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 9
La commande create
=>Création des objets de base de données
Create:
Base de données
Table
utilisateur
Index
Vues
rôles
Schéma
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 10
Création des tables
Table=relation
Create table nomTable (
champ1 type [default valParDéfaut] [contrainte_colonne],
champ2 type [default valParDéfaut] [contrainte_colonne],
…
[Contrainte_table1,]
[Contrainte_table2,]
…
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 11
Création des tables
Table=relation
Create table nomTable (
champ1 type,
champ2 type,
…
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 12
Exemple
Create table emp(
nemp number(4),
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv number(2)
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 13
Exemple
Connect system/test --connexion à la base
create user smi identified by smi quota unlimited on system --creation de l'utilisateur smi
/
grant create session, create table to fac --affectation des droits
/
Disconnect --déconnexion de system
Connect smi/smi -- connexion de smi
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 14
Exemple
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 15
Exemple
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 16
Exemple d'exécution
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 17
Exemple
MCD
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 18
Exemple
MLD ou bien MPhD
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 19
Création des tables
Table=relation
Create table nomTable (
champ1 type [contrainte_colonne],
champ2 type [contrainte_colonne],
…
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 20
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv number(2)
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 21
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv number(2) references service(nserv)
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 22
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv number(2) references service
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 23
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv references service(nserv)
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 24
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv references service
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 25
Exemple d'exécution
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 26
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv number(2) references service(nserv) on delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 27
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char,
salaire number(10,2),
nserv number(2) references service(nserv) on
delete set null);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 28
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char check(genre in(‘f’,’m’,’F’,’M’)),
salaire number(10,2),
nserv number(2)
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 29
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char check(genre in(‘f’,’m’,’F’,’M’),
salaire number(10,2),
nserv number(2) references service(nserv) on
delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 30
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char check(genre in(‘f’,’m’,’F’,’M’),
salaire number(10,2),
nserv number(2) references service(nserv)
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 31
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char check(genre in(‘f’,’m’,’F’,’M’),
salaire number(10,2),
nserv number(2) references service(nserv) on
delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 32
Création des tables
Table=relation
Create table nomTable (
champ1 type [ default valeur ] [contrainte_colonne],
champ2 type [ default valeur ] [contrainte_colonne],
…
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 33
Exemple
Create table emp(
nemp number(4) primary key,
nom varchar2(20),
prénom varchar2(20),
genre char default ‘m’,
salaire number(10,2) default 5000,
nserv number(2) references service(nserv) on
delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 34
Description de la syntaxe
nomTable et champi sont des identificateurs dont la taille <=30 et
commencent par une lettre , _ , $ ou #.
La casse n'est pas respectée.
type représente un type prédéfini ou défini par l'utilisateur
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 35
Les types prédéfinis en Oracle
Les types caractères
- Les constantes caractères littérales sont écrites entre apostrophes:
'ali'
- Le type char[(n)]=chaîne de caractères de longueur fixe, n est la taille
maximale de la chaîne(n<=2000)
la valeur par défaut de n est 1.
genre char=genre char(1).
- Le type varchar2(n)=chaîne de caractères de longueur variable, n est
la taille maximale de la chaîne(n<=4000).
- Le type varchar(n)=varchar2(n).
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 36
Les types prédéfinis en Oracle
Les types numériques
- number = nombres réels >= et <=0 sur 40 chiffres. Les valeurs
absolues des nombres sont limitées entre 1.0E-130 et 1.0E126.
EX: salaire number
Les constantes numériques : 12, 12.3 , 12.9e-3
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 37
Les types prédéfinis en Oracle
Les types numériques
- number(p,d) = les nombre sur p chiffres avec d chiffres après la
virgule représentée par point(.).
p peut aller à 38.
EX: salaire number(10,2)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 38
Les types prédéfinis en Oracle
Les types numériques
- number(p) représente les entiers sur p chiffres.
C’est équivalent à number(p,0).
EX:
nemp number(4)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 39
Les types supportés(IBM, ANSI)
decimal équivalent à number(38).
decimal(n,p)
integer, int, smallint équivalent à number(38).
float(n)
Real
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 40
Exemples de conversion de type
create table emps(
code int primary key,
nom varchar(10),
salaire decimal,
com decimal(10,2),
prime float(10),
allocFami real,
primeanc numeric(10,2),
nservice numeric)
/
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 41
Exemples de conversion de types
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 42
Les types prédéfinis en Oracle
Les types date
- date
EX:
dateNaissance date
- Valeur littérale de date
'12/11/2005' ou
'12-11-2005'
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 43
Les types prédéfinis en Oracle
Les types date
- timestamp[(fractionDeSeconde)]
contient date et heure
- fractionDeSeconde nombre de chiffres dans la fraction de
secondes<=9. par défaut est 6.
EX :
moment_début timestamp(3)
Constantes littérales:
'12/11/2005 [Link],100' ou
'12/11/2005 :10:30:20,100'
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 44
Exercice
Donner les commandes de création des tables suivantes:
- Filière(codeFilière, libellé,département)
- Etudiant(codeEtudiant, nom, prénom, dateNaissance, codeFilière)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 45
Description de la syntaxe(suite)
ContrainteColonne=[constraint nomContrainte]
TypeContrainteColonne
TypeContrainteColonne =
primary key|
unique |
[not] null |
Check (condition) |
References nomTable[(colonne) ] [on delete cascade|on delete set null]
[enable|disable]
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 46
Exemple
Create table emp(
nemp number(4) constraint cleEmp primary key ,
Nom varchar2(20) constraint uniNom unique,
Prénom varchar2(20),
Salaire number(10,2),
Genre char constraint valsGenre check(lower(genre) in(‘f’,’m’)),
Nserv number(2) constraint clEtrEmpServ references service(nserv) on delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 47
Exemple
Create table emp(
nemp number(4) constraint cleEmp primary key disable,
Nom varchar2(20) constraint uniNom unique,
Prénom varchar2(20),
Salaire number(10,2),
Genre char constraint valsGenre check(lower(genre) in(‘f’,’m’)),
Nserv number(2) constraint clEtrEmpServ references service(nserv) on delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 48
Exercice
Donner les commandes de création des tables suivantes avec nom des contraintes:
- Filière(codeFilière, libellé, département)
- Etudiant(codeEtudiant, nom, prénom, dateNaissance, codeFilière)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 49
Exemple
Create table emp(
nemp number(4) constraint clEmpl primary key ,
Nom varchar2(20),
Prénom varchar2(20),
Salaire number(10,2),
Genre char constraint valsGenre check(lower(genre) in(‘f’,’m’)),
Nserv number(2) constraint clEtrEmpServ references service(nserv) on delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 50
Exemple
Create table emp(nemp number(4) primary key,
Nom varchar2(20),
Prénom varchar2(20),
Genre char check(genre in(‘f’,’m’,’F’,’M’),
Salaire number(10,2),
Nserv references service(nserv) on delete cascade);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 51
Création des tables(suite)
Table=relation
Create table nomTable (
champ1 type [default valParDéfaut] [contrainte_colonne],
champ2 type [default valParDéfaut] [contrainte_colonne],
…
[Contrainte_table1,]
[Contrainte_table2,]
…
);
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 52
Description de la syntaxe(suite)
contrainteTable=[constraint nomContrainte] typeDeContrainteTable
typeDeContrainteTable=
primary key (col1,col2…)
| Foreign key(col1,col2…) references nomTable[(col1,col2)] [on delete
cascade| on delete set null]
| Unique(col1,col2…)
| Check(condition)
[enable|disable]
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 53
Exemple
Create table emp(nemp number(4),
Nom varchar2(20),
Prénom varchar2(20),
Salaire number(10,2),
Genre char,
Nserv number(2),
primary key(nemp),
foreign key(nserv) references service(nserv) on delete cascade,
check(genre in(‘f’,’m’)));
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 54
Exemple
Create table emp(nemp number(4),
Nom varchar2(20),
Prénom varchar2(20),
Salaire number(10,2),
Genre char,
Nserv number(2),
constraint clEmpl primary key(nemp),
Contraint clEtrEmpServ foreign key(nserv) references service(nserv) on delete cascade,
constraint valsGenre check(lower(genre) in(‘f’,’m’)));
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 55
Exercice
Donner les commandes de création des tables suivantes avec contraintes table non nommées:
- Filière(codeFilière, libellé,département)
- Etudiant(codeEtudiant, nom, prénom, dateNaissance, codeFilière)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 56
Exercice
Donner les commandes de création des tables suivantes avec contraintes table nommées:
- Filière(codeFilière, libellé,département)
- Etudiant(codeEtudiant, nom, prénom, dateNaissance, codeFilière)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 57
Index
Définition d’index
index = Moyen ou structure pour accélérer le temps de réponse dans une base de données.
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 58
Inconvénients d’index
Espace mémoire suppl=lieu de stockage des valeurs de la colonne indexée et les adresses des
lignes associées
Ralentissement de MAJ
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 59
Création d’index
Create index nomIndex on nomTable( col1 [asc|desc] )
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 60
Exemple
Create index idxnom on emp(nom asc)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 61
Création d’index unique
Create unique index nomIndex on nomTable (col1 [asc|desc] )
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 62
Exemple
Create unique index idxnom on emp (nom asc)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 63
Création d’index sur plusieurs colonnes
Create index nomIndex on nomTable ( col1 [asc|desc] [, col2 [asc|desc]…])
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 64
Exemple
Create index idxnomprénom on emp(nom asc, prénom desc)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 65
Création d’index basé sur une expression
Create [unique] index nomIndex on nomTable( expression [asc|desc] )
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 66
Exemple
Create index idxnom on emp(lower(nom) asc)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 67
Création d’index (syntaxe générale)
Create [unique] index nomIndex on nomTable( col1|expression1 [asc|desc]
[, col2|expression2 [asc|desc]…])
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 68
Remarque
Pour voir les objets créés, vous pouvez consulter la vue :
user_objects (object_name, object_Type…)
Pour voir les autres champs de cette vue, utiliser desc user_objects.
Vous pouvez aussi utiliser les vues user_tables, user_indexes, user_constraints…
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 69
Création des tables : table service
create table service(
nserv number(2) constraint cleService primary key,
libellés varchar(20) constraint uniqueLibellés unique)
/
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 70
Création des tables : table service
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 71
Création des tables : table employé
Create table emp(
nemp number(4) constraint clEmpl primary key ,
Nom varchar2(20),
Prénom varchar2(20),
Salaire number(10,2),
Genre char constraint valsGenre check(lower(genre) in('f','m')),
Nserv number(2) constraint clEtrEmpServ references service(nserv) on delete cascade)
/
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 72
Création des tables : table employé
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 73
Utilisation de user_objects
select object_name, object_type from user_objects
/
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 74
Utilisation de user_tables
select table_name from user_tables
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 75
Utilisation de user_constraints
select constraint_name, constraint_type, table_name from user_constraints
order by table_name desc ;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 76
Création des vues
Syntaxe
Create [or replace] [force|no force] view nomVue[(listeDeChamps)]
As
requêteSéléction
[With check option [constraint nomContrainte]] | [with read only];
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 77
Exemple
Create view test
as
select * from emp where sal<10000;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 78
Création de schéma
Create schema authorization nom_schema
CréationDesTables
CréationDesVues
OctroiDePrivilèges
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 79
Création de BD
Create database nomBase
[Datafile…
Logfile…]
.
.
.
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 80
La commande alter
Alter=commande de modification des structures des objets de BD
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 81
Modification de table : renommer une table
Alter table nomTable Rename to nouveauNomDeTable
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 82
Exercice
Renommer la table emp par employe
Réponse
Alter table emp Rename to employé;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 83
Modification de table : renommer une colonne
Alter table nomTable Rename column nomColonne to nouveauNomColonne
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 84
Exercice
Renommer la colonne nemp de la table employé par codeEmp.
Réponse
Alter table employé Rename column nemp to codeEmp;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 85
Modification de table : ajouter un champ
Alter table nomTable
Add champ type [default valParDéfaut] [contrainteColonne]
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 86
Exercice
Ajouter le champ email à la table étudiant.
Réponse
Alter table étudiant
Add email varchar(50) unique;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 87
Exercice
Ajouter les champs adresse et ville à la table étudiant.
Réponse 1
Alter table étudiant
Add adresse varchar(50)
Add ville varchar(30);
Réponse 2
Alter table étudiant
Add (adresse varchar(50), ville varchar(30));
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 88
Modification de table : ajout de contraintes
Alter table nomTable
Add [constraint nomContrainte] typeDeContrainteTable
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 89
Exercice
Ajouter la contrainte (non nommée) de clé primaire à la table employé: prendre le champ
codeEmp.
Réponse
Alter table emp
Add primary key(codeEmp)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 90
Exercice
Ajouter la contrainte (nommée) de clé primaire à la table employé: prendre le champ
codeEmp.
Réponse
Alter table emp
Add cleEmp primary key(codeEmp)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 91
Exercice
Ajouter la contrainte (non nommée) de clé étrangère à la table employé: prendre le champ
nserv avec la table service.
Réponse
Alter table emp
Add foreign key(nserv) references service;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 92
Exercice
Ajouter la contrainte (nommée) de clé étrangère à la table employé: prendre le champ nserv
avec la table service.
Réponse
Alter table emp
Add Constraint etrEmpService foreign key(nserv) references service;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 93
Modification de table : plusieurs ajouts
Alter table nomTable
Add (champ1 type…|contrainteTable1, champ2 type…|contrainteTable2…)
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 94
Exercice
Ajouter le champ email et la contrainte de clé primaire à la table emp.
Réponse
Alter table emp
Add (primary key(codeEmp), email varchar(50));
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 95
Modification de table : suppression des champs
Alter table nomTable
Drop column champ;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 96
Exercice
Supprimer le champ email de la table étudiant.
Réponse
Alter table étudiant
Drop column email;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 97
Modification de table : suppression des champs avec contraintes associées
Alter table nomTable
Drop column champ [cascade constraints];
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 98
Exercice
Supprimer le champ nserv de la table Service et les contraintes associées (les contraintes se
trouvent dans la table emp).
Alter table Service
Drop column nserv cascade constraints;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 99
Modification de table
Alter table nomTable
Drop (champ1, champ2, …) [cascade constraints]
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 100
Modification de table : suppression de contraintes
Alter table nomTable
Drop constraint nomContrainte [cascade];
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 101
Exercice
Supprimer la contrainte cleService de la table Service.
Alter table Service
Drop constraint cleService cascade; --le champ nserv reste.
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 102
Modification de table : suppression de la contrainte clé primaire (champ clé est
conservé)
Alter table nomTable
Drop primary key [cascade];
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 103
Exercice
Supprimer la contrainte de clé primaire de la table Service.
Réponse
Alter table Service
Drop primary key cascade; --le champ nserv reste dans la table Service.
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 104
Modification de table : suppression de la contrainte d'unicité
Alter table nomTable
Drop unique (champ1[,champ2…]) [cascade];
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 105
Exercice
Supprimer la contrainte d’unicité du champ nserv (défini par unique et non clé primaire) de la
table Service.
Réponse
Alter table Service
Drop unique nserv cascade;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 106
Modification de table
Alter table nomTable
Modify champ [type] [default valeurParDefaut] [contrainteColonne]
Modify constraint nomContrainte enable|disable [cascade]
Modify (champ1…|constraint nomContrainte1…,…)
Enable Unique(listeChamps)
Primary key [cascade]
Disable Constraint nomContrainte
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 107
Modification d'un index
Alter index nomIndex
Enable
Disable
Rename to nouveauNomIndex
unusable
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 108
Exemples
-Alter index ind rename to ind1;
-Alter index ind1 disable;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 109
La commande drop
Suppression des objets de BD
Base de données
Table
Index
Vues
rôles
Schéma
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 110
Suppression d'une table
Drop table nomTable [cascade Constraints];
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 111
Exercice
Supprimer la table service
Réponse
Drop table service cascade Constraints;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 112
Suppression d'un index
Drop index nomIndex;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 113
Suppression d'une vue
Drop view nomVue;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 114
Suppression d'une BD
Drop database nomBase;
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 115
Résumé
Présentation du langage SQL
Étudier le langage de définition des données
La commande create
La commande alter
La commande drop
SMI5 FS Agadir : 23-24 BASES DE DONNÉES 116