Introduction Création d’une table Modification d’une table Exemple
Introduction aux bases de données
Le langage SQL DDL
Solemane Coulibaly
Université de Segou
Institut Universitaire de Formation Professionnelle (IUFP)
[email protected]
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Le langage SQL
SQL = Structured Query Language
I Langage pour interagir avec le modèle relationnel
I Standard
I SQL1 : 1987
I SQL2 : 1992
I SQL3 : 1999 introduction de caractéristiques orientées objets
I Une instruction SQL constitue une requête SQL, la description
d’une opération que le SGBD doit exécuter. Une requête peut
être
I introduite au terminal (mode interactif), le résultat de l’exécution
de la requête apparaı̂t sur le terminal
I envoyée par un programme (Java, Python, C#, PHP, . . .) au
SGBD, le résultat de la requête est rangé dans des variables du
programme.
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Le langage SQL
Langage standardisé mais les éditeurs de SGBD ont prisbeaucoup de
libertés :
I concepts non repris
I concept additionnels non standard
I interprétation personnelle de certains concepts
I Certains concepts sont ignorés par le standard
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Terminologie
La quasi-totalité des concepts du modèle relationnel a été implantée
dans les SGBD via le langage SQL.
I La table est l’équivalent de la relation.
I Une table contient des données appelées enregistrements
aussi appelées lignes ou n-uplet.
I Une table est composée de colonnes aussi appelées champs.
I La clé primaire d’une table est l’ensemble minimal de colonnes
qui permet d’identifier de manière unique chaque enregistrement.
I Une table contient ou non des clés candidates. Une clé est dite
candidate si elle peut se substituer à la clé primaire.
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Terminologie
I Une table contient ou non des clés étrangères.
Une clé étrangère est composée d’une ou de plusieurs colonnes
et permet d’identifier un enregistrement d’une autre table.
I Les liens entre les enregistrements de la base de données sont
réalisés non pas à l’aide de pointeurs physiques, mais
à l’aide des valeurs des clés étrangères et des clés primaires.
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Catégories d’instructions
I Langage de définition de données (LDD, ou Data Definition
Language, soit DDL en anglais)
I CREATE, DROP, ALTER
I Langage de manipulation de données (LMD, ou Data
Manipulation Language, soit DML en anglais)
I SELECT, INSERT, UPDATE, DELETE
I Langage de contrôle de données (Data Control Language, soit
DCL en anglais)
I COMMIT, ROLLBACK, GRANT, REVOKE
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Introduction
Langage de Manipulation de Données
Le Langage de Manipulation de Données comprend deux classes de
requêtes : extraction de données et modification de données.
1. La structure de l’extraction de donnée obéit à la forme
select-from-where, ou SFW :
la clause from spécifie la table ou les tables dont les données
sont extraites,
les lignes extraites doivent satisfaire la clause where, la liste des
colonnes à extraire de ces lignes est specifié avec la clause
select.
L’extraction de plusieurs tables s’appelle sur une jointure, définie
par une condition de jointure et désigne la règle selon laquelle les
lignes des tables sont assemblées.
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Introduction
Langage de Manipulation de Données
Le langage DML (Data Manipulation Language) comprend deux
classes de requêtes : extraction de données et modification de
données.
2. Les requêtes de modification de données opèrent sur les
ensembles de lignes :
I insertion de lignes (insert),
I suppression de lignes sélectionnées (delete) et
I modification de valeurs de colonnes de lignes sélectionnées
(update).
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Introduction
Le Langage de Définition de Données
Le langage SQL offre des commandes de définition et de modification
des structures. Ces commandes permettent de
I définir (créer) une table,
I supprimer et de modifier une table,
I supprimer et de modifie un domaine,
I supprimer et de modifie une colonne ou
I supprimer et de modifie une contrainte.
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Les opérations du DDL
I Création d’un schéma
I Création d’une table
I colonnes (obligatoire)
I domaine
I identifiants primaire et secondaire
I clé étrangère
I Suppression d’une table
I Ajout, suppression, modification d’une colonne
I Ajout, suppression d’une contrainte
I Ajout, suppression d’un index
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
SQL Pour MySQL
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Création d’une table
I A savoir pour créer une table :
I Avoir le privilège de CREATE TABLE
I domaine des attributs : types de données
I contraintes sur les attributs
I contraintes clé primaire et étrangère
Syntaxe :
1 CREATE [ nomBase .] nomTable (
2 colonne1 type1 [ NOT NULL | NULL ] [ DEFAULT valeur1 ],
3 [, colonne2 type2 [ NOT NULL | NULL ] [ DEFAULT valeur2 ]
4 [ CONSTRAINT nomContrainte1 typeContrainte1 ] ...
5 );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Création d’une table
I Quelques type de données
I VARCHAR(n), CHAR(n) SMALLINT, INTEGER,
DECIMAL(n,m),FLOAT, DOUBLE, DATE, TIMESTAMP
I Quelques type de contraints
I NOT NULL valeur null impossible
I UNIQUE unicité d’un attribut
I PRIMARY KEY clé primaire
I FOREIGN KEY clé étrangère
I CHECK plage ou liste de valeurs
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Création d’une table
1 create table CLIENT (
2 NCLI char (10) ,
3 NOM varchar (32) ,
4 ADRESSE varchar (60) ,
5 LOCALITE varchar (30) ,
6 CAT char (2) ,
7 COMPTE decimal (9 ,2)
8 );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Colonne obligatoire
Par défaut une colonne est facultative.
Il faut déclarer explicitement les colonnes obligatoires
1 create table CLIENT (
2 NCLI char (10) not null ,
3 NOM char (32) not null ,
4 ADRESSE char (60) not null ,
5 LOCALITE char (30) not null ,
6 CAT char (2) ,
7 COMPTE decimal (9 ,2) not null
8 );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Valeur par défaut d’une colonne
Il s’agit de la valeur qui sera assignée à la colonne
si on ne spécifie pas de valeur lors de la création d’une ligne
1 create table CLIENT (
2 NCLI char (10) not null ,
3 NOM char (32) not null ,
4 ADRESSE char (60) not null ,
5 LOCALITE char (30) not null default ’ Bamako ’,
6 CAT char (2) default ’B1 ’,
7 COMPTE decimal (9 ,2) not null default 0.0
8 );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Contraintes
1 CONSTRAINT nomContrainte
2 UNIQUE ( colonne1 [, colonne2 ]...)
3 PRIMARY KEY ( colonne1 [, colonne2 ]...)
4 FOREIGN KEY ( colonne1 [, colonne2 ]...) REFERENCES
nomTablePere [( colonne1 [, colonne2 ]...) ]
5 [ ON DELETE { RESTRICT | CASCADE | SET NULL | NO
ACTION }]
6 [ ON UPDATE { RESTRICT | CASCADE | SET NULL | NO
ACTION }]
7 CHECK ( condition )
I peuvent être déclarées de deux manières :
en même temps que la colonne (inline constraints)
après la déclaration de la colonne (out-of-line constraints)
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Clé primaires (primary key)
contrainte inline
1 create table CLIENT (
2 NCLI char (10) not null primary key ,
3 NOM varchar (32) not null ,
4 ADRESSE varchar (60) not null ,
5 LOCALITE varchar (30) not null ,
6 CAT char (2) ,
7 COMPTE decimal (9 ,2) not null ,
8 primary key ( NCLI ) );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Clé primaires (primary key)
contrainte out of line
1 create table CLIENT (
2 NCLI char (10) not null ,
3 NOM varchar (32) not null ,
4 ADRESSE varchar (60) not null ,
5 LOCALITE varchar (30) not null ,
6 CAT char (2) ,
7 COMPTE decimal (9 ,2) not null ,
8 primary key ( NCLI ) );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Clé secondaire (unique)
1 create table CLIENT (
2 NCLI char (10) not null ,
3 NOM varchar (32) not null ,
4 ADRESSE varchar (60) not null ,
5 LOCALITE varchar (30) not null ,
6 CAT char (2) ,
7 COMPTE decimal (9 ,2) not null ,
8 primary key ( NCLI ) ,
9 unique ( NOM ) );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Clé étrangère (foreign key)
1 create table COMMANDE (
2 NCOM varchar (12) not null ,
3 NCLI varchar (10) not null ,
4 DATECOM date not null ,
5 primary key ( NCOM ) ,
6 foreign key ( NCLI ) references CLIENT ( NCLI ));
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Contraintes inline
1 create table CLIENT (
2 NCLI char (10) not null ,
3 NOM char (32) not null unique ,
4 . . .
5 );
1 create table COMMANDE (
2 NCOM char (12) not null ,
3 NCLI char (10) not null references CLIENT ,
4 . . . );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Contraintes nommées
1 create table COMMANDE ( NCOM char (12) not null ,
2 NCLI char (10) not null ,
3 DATECOM date not null ,
4 constraint pk_com primary key ( NCOM ) ,
5 constraint fk_com foreign key ( NCLI ) references CLIENT (
NCLI ));
1 create table COMMANDE (
2 NCOM char (12) constraint COMPK not null ,
3 NCLI char (10) not null constraint COMFK
4 references CLIENT ,
5 . . . );
6
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Contraintes
CHECK / IN
1 CONSTRAINT ck_commande_etat CHECK etat IN ( ’
Livraison ’,’ EnCours ’)
2
D’autres exemples
1 CONSTRAINT ck_commande_etat CHECK etat IN ( ’ Livraison ’
,’ EnCours ’)
2
3 CONSTRAINT ck_note CHECK ( note BETWEEN 0 AND 20)
4 CONSTRAINT ck_grade CHECK ( grade = ’REG ’ OR grade = ’CL ’
OR ’ PROF ’)
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Modification et suppression d’une table
Les contraintes d’intégrité définies sur la table sont vérifiées lors de la
suppression/modification d’une table
La table ne doit plus être référencée par une clé étrangère; la table
DETAIL (ou sa clé étrangère vers COMMANDE) doit avoir été
supprimée
Suppression d’une table
1 drop table COMMANDE ;
Renommer une table
1 RENAME ancienNom To nouveauNom ;
2 ALTER TABLE PRDOUIT RENAME TO PRODUIT ;
3
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Modification et suppression d’une colonne
Ajouter une colonne
1 alter table PRODUIT add column POIDS smallint ;
Supprimer une colonne
1 alter table PRODUIT drop column PRIX ;
Modifier valeur par défaut
1 alter table CLIENT modify NCLI INT (11) ;
2 alter table CLIENT modify CAT char (2) default ’00 ’;
3 alter table CLIENT alter column ADRESSE set default ’Bko
’;
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Modification et suppression d’une colonne
Modifier valeur par défaut
1 alter table CLIENT alter column ADRESSE drop default ;
Renommer une colonne
1 alter table CLIENT change CAT CATEGORIE CHAR (2) ;
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Ajout et suppression de contrainte
1 alter table CATEGORIE add primary key ( CAT );
2 alter table CLIENT add unique (NOM , ADRESSE , LOCALITE );
3 alter table CLIENT modify CAT char (2) not null ;
4 alter table CLIENT add foreign key ( CAT ) references
CATEGORIE ( CAT );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Contraintes nommées
1 alter table PROSPECTadd constraint PROPK primary key (
NCLI );
1 alter table CLIENTadd constraint UNCLI unique (NOM ,
ADRESSE , LOCALITE );
1 alter table CLIENT add constraint FK1CLI foreign key (
CAT ) references CATEGORIE ( CAT );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Suppression d’une contrainte nommée
1 alter table PROSPECT drop constraint PKPRO ;
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Création d’une table
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Création d’une table
1 create table CLIENT (
2 NCLI char (10) not null ,
3 NOM char (32) not null ,
4 ADRESSE varchar (60) not null ,
5 LOCALITE varchar (30) not null ,
6 CAT char (2) ,
7 COMPTE decimal (9 ,2) not null ,
8 primary key ( NCLI ) );
9
10 create table PRODUIT (
11 NPRO char (15) not null ,
12 LIBELLE varchar (60) not null ,
13 PRIX decimal (6) not null ,
14 QSTOCK decimal (8) not null ,
15 primary key ( NPRO ) );
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données
Introduction Création d’une table Modification d’une table Exemple
Création d’une table
1 create table COMMANDE (
2 NCOM char (12) not null ,
3 NCLI char (10) not null ,
4 DATECOM date not null ,
5 primary key ( NCOM ) ,
6 foreign key ( NCLI ) references CLIENT ( NCLI ));
7
8 create table DETAIL (
9 NCOM char (12) not null ,
10 NPRO char (15) not null ,
11 QCOM decimal (8) not null ,
12 primary key ( NCOM , NPRO ) ,
13 foreign key ( NCOM ) references COMMANDE ( NCOM ) ,
14 foreign key ( NPRO ) references PRODUIT ( NPRO ));
15
Solemane Coulibaly Université de SegouInstitut Universitaire de Formation Professionnelle (IUFP)
Introduction aux bases de données