Parcours MIP
S4
Faculté des Sciences et Techniques de Tanger
2022-2023
1
Introduction à SQL (LDD)
1. Introduction à SQL
2. Langage de définition des données (LDD)
3. Exemple d’application
3
1. Introduction à SQL
SQL (Structured Query Language)
SQL (Structured Query Language) : C’est un langage de manipulation de
bases de données mis au point dans les années 70 par IBM. Il permet,
pour résumer, trois types de manipulations sur les bases de données :
•La définition et maintenance des tables :
Création, suppression, modification de la structure des tables.
•Les manipulations des bases de données :
Lecture, modification, suppression d'enregistrements.
•La gestion des droits d'accès aux tables :
Contrôle des données : droits d'accès, validation des modifications.
4
1. Introduction à SQL
Rappel : étapes de réalisation d’une BD
MCD MLD MPD
MPD est un modèle de données découlant d’un modèle logique qui
spécifie les détail d’implémentation du modèle logique dans un SGBD,
Le MPD est implémenté grâce à un langage de définition de données.
SQL (LDD) : langage de définition de données
Permet la création et la définition des tables, vues, attributs. Pour définir le
schéma de BD on a les commandes :
- Déclaration de tables, des vues
- Déclaration de contraintes d'intégrités (clé primaire, et clés étrangères)
- Déclaration des droits d'accès (Base de données avancée)
5
1. Introduction à SQL
Terminologie
Colonne
Correspond à un attribut
Parfois clé ou identificateur
Ligne
Correspond à un enregistrement
Possède tous les attributs
Valeur NULL
Valeur inconnue
Valeur non encore rentrée
Valeur inapplicable
6
1. Introduction à SQL
Terminologie
Clefs primaires (primary Keys)
Il s’agit d’un identifiant unique à valeur obligatoire
Dans une table une clef unique peut être créée à partir de
plusieurs attributs ou plusieurs identifiants
Permet l’accès à une ligne d’une table
Clefs étrangères(foreign keys)
Se dit d’une clef qui est référencée dans une autre table
exemple
COMMANDE(NUMCMD, NOM, #NUMCLI)
CLIENT(NUMCLI, NOMCLI)
7
1. Introduction à SQL
Langage de définition de schémas
CREATE TABLE
ALTER
DROP
RENAME
DESC
Langage de manipulation de données
SELECT
INSERT
UPDATE
DELETE
Langage de contrôle de données
8
2. Définition des schémas (LDD)
Création de tables:
Syntaxe 1:
CREATE TABLE <nom table>
<colonne1> <format1> [option1],
<colonne2> <format2> [option2],
Syntaxe 2:
CREATE TABLE <nom table> <colonne1><colonne2>…..as
<requête>
Format Type
Valeur numérique INT, INTEGR(x), NUMBER(x), NUMBER(x,y)
Chaine de caractère CHAR(n), VARCHAR(n)
Date DATE
9
2. Définition des schémas (LDD)
Création de tables:
Syntaxe 1:
CREATE TABLE <nom table>
<colonne1> <format1> [option1],
<colonne2> <format2> [option2],
Syntaxe 2:
CREATE TABLE <nom table> <colonne1><colonne2>…..as
<requête>
option Signification
NOT NULL Obligation de donner une valeur
UNIQUE Interdit deux même valeurs pour une même colonne
PRIMARY KEY Clé primaire
REFERENCES <table>(col) Clé étrangère, établit une relation avec une autre table via sa clé
primaire
DEFAULT Définit une valeur par défaut
10
2. Définition des schémas (LDD)
Définition de schéma de bas de données : Exemple
MCD
Editeurs Ouvrages
Correspondre
NumEditeur Numouvrage
Nom 0,n 0,1 Title
Prenom
MLD
Editeurs Ouvrages
NumEditeur Numouvrage
Nom Title
Prenom #NumEditeur
11
2. Définition des schémas (LDD)
Création de tables: exemple
CREATE TABLE EDITEURS
( NumEditeur NUMBER(5) PRIMARY KEY,
Nom CHAR(10) NOT NULL,
Prénom CHAR(10) );
CREATE TABLE OUVRAGES
( Numouvrage NUMBER(5) PRIMARY KEY,
Title CHAR(30),
NumEditeur NUMBER(5) REFERENCES EDITEURS(NumEditeur),
);
12
2. Définition des schémas (LDD)
Modification de schéma : Alter table
Ajout d’attributs : syntaxe
ALTER TABLE <nom_table>
ADD( <colonne1> <format1> [option1],
<colonne2> <format2> [option2], …. );
Exemple
ALTER TABLE Auteurs ADD (Nationalité char(10) NOT NULL );
Modification d’attributs : syntaxe
ALTER TABLE <nom table>
MODIFY <colonne1> …. <nouveau format>;
Exemple
ALTER TABLE Auteurs MODIFY Nationalité char(100);
On ne peut pas diminuer la longueur d’une colonne contenant déjà des
valeurs.
13
2. Définition des schémas (LDD)
DROP, RENAME TO, DESC
Suppression d’une table :DROP TABLE
Exemple :
DROP TABLE nom_table;
Renommer une table RENAME TO
Exemple:
ALTER TABLE nom_table RENAME TO nouveau_nom_table:
Afficher le contenu d’une table : DESC
Exemple :
DESC nom_table;
3. Application
On considère le modèle Logique de données (MLD)
suivant:
Client(code_cli, nom, prenom, ville)
Commande(num_cmd, date, #code_cli)
Produit(code_art, designation, qte_st, pu)
contenu_commande(#num_cmd,#code_art, qte_cmd)
facture(num_fact, date_fact, #code_cli)
3. Application (TD5)
1. Créer la table client sans signaler que code_cli est une clé primaire ;
2. Modifier la table client pour que code_cli soit clé primaire ;
3. Ajouter le champ adresse à la table client
4. Modifier la taille de ce champ ;
5. Supprimer le champ adresse;
6. Créer la table commande en signalant que num_cmd est une clé primaire ;
7. Créer la table Produit en signalant que code_art est une clé primaire ;
8. Créer la table contenu_commande sans créer les relations;
9. Mettre en relation les tables Commande, Produit et Contenu_commande;
10. Ajouter la relation entre la table Client et la table Commande;
11. Créer la table facture(num_fact,date_fact,#code_cli)
12. Supprimer cette table de la base de données ;
3. Application (TD5)
1) Créer la table client sans signaler que code_cli est une clé primaire ;
• create
Table Client (Code_cli integer, Nom_cli char(40),
Prenom_cli char(50), ville char(60));
3. Application (TD5)
2) Modifier la table client pour que code_cli soit clé primaire ;
Alter Table Client add constraint Pk Primary Key(Code_cli);
3. Application (TD5)
3) Ajouter le champ adresse à la table client
Alter Table Client add adresse char(50);
3. Application (TD5)
4) Modifier la taille de champ adresse ;
Alter Table Client Alter column adresse char(70);
3. Application (TD5)
5) Supprimer le champ adresse;
Alter Table Client drop adresse;
3. Application (TD5)
6) Créer la table commande en signalant que num_cmd est une clé primaire ;
create Table Commande( num_cmd integer constraint pk
Primary Key, date_cmd Date, code_cli integer);
3. Application (TD5)
7) Créer la table Produit en signalant que code_art est une clé primaire ;
create Table Produit( code_art integer constraint pk Primary
Key, designation char( 100), qte_stck integer,pu float);
3. Application (TD5)
8) Créer la table contenu_commande sans créer les relations;
create Table Contenu_commande( num_cmd integer, code_art
integer, qte_cmd integer, constraint pk Primary Key(num_cmd,
code_art));
3. Application (TD5)
9) Mettre en relation les tables Commande, Produit et Contenu_commande (gestion
des clés étrangères);
Alter Table Contenu_commande add constraint fk1 Foreign
Key(num_cmd) references Commande(num_cmd), constraint fk2
Foreign Key(code_art) references Produit(code_art);
3. Application (TD5)
10) Ajouter la relation entre la table Client et la table Commande;
Entre la table Client et Commande : Alter Table
Commande add constraint
fk3 Foreign Key(code_cli) references Client(code_cli);
3. Application (TD5)
11) Créer la table facture(num_fact,date_fact,#code_cli)
Entre la table Facture et Client : Create Table
Facture (num_fac integer,
date_fact Date, code_cli integer, constraint fk4 Foreign key(code_cli)
references Client(code_cli));
3. Application (TD5)
12) Supprimer cette table de la base de données ;
Drop Table Facture;
Exercice d’application:
Nous considérons le schéma de base de données ci-dessous
MPD , Créer le code SQL (LDD) permettant de créer la
base de données :
29
Exercice d’application :
1. Créer la table categories telle que ID_CAT et NOM_CAT sont Non null.
2. Créer la table produits telle que ID_PROD, DESIGNATION, PRIX,
QUANTITE, PROMO sont Non null.
3. Ajouter la clé primaire de la table produits, puis la clé primaire de la
table catégories .
4. Ajouter une clé étrangère la table produits, référençant la clé primaire de
la table catégories .
5. Alimenter la table catégories .
6. Alimenter la table produits .
7. Supprimer la table categories .
30