Vous êtes sur la page 1sur 59

ENCG de Kenitra

Semestre Autonome
S5

Pr S.MOQQADDEM
AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

IV. Algèbre relationnelle


IV.5. Exercices
Nom Age Profession
Nom_imb Adresse Nb_étage Année Nomgérant
Alami 54 Architecte
Annakhil 22 Rue Azrou, Rabat 10 2009 Alami
Atif 39 Médecin
Firdaous 15 bd des Far, Fès 5 2000 Dahbi
Barhoum 58 Avocat
Table Immeuble Dahbi 65 Retraité
Table Personne
Nom_imb No_app Superficie Etage
Annakhil 1 150 10 Nom_imb No_app Nom_occ Année_h
Annakhil 2 100 1
Annakhil 1 Alami 2009
Annakhil 10 90 9
Annakhil 2 Dahbi 2009
Firdaous 5 120 2
Firdaous 10 100 5 Firdaous 5 Atif 2001

Firdaous 11 80 3 Firdaous 10 Barhoum 2005

Table Appartement Table Occupant

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

IV. Algèbre relationnelle


IV.5. Exercices
Ecrire en algèbre relationnelle les requêtes:
• 1. Nom des immeubles ayant strictement plus de 8 étages.
• 2. Nom des personnes ayant emménagé avant 1994.
• 3. Nom des habitants d’Annakhil.
• 4. Nom des Architectes de plus de 25 ans.
• 5. Nom des immeubles ayant un appartement de plus de 150 m2.
• 6. Qui gère l’appartement où habite Atif?
• 7. Dans quel immeuble habite un retraité?
• 8. Qui habite un appartement de moins de 70 m2?
• 9. Nom des personnes qui habitent au dernier étage de leur immeuble.
• 10. Profession du gérant du Firdaous?
• 11. Age et profession des occupants de l’immeuble géré par Alami?
• 12. Qui habite, dans un immeuble de plus de 10 étages et un appartement de plus
de 100 m2?
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

IV.5. Algèbre relationnelle: Correction

• Ecrire en algèbre relationnelle les requêtes:


– 1. Nom des immeubles ayant strictement plus de 8 étages.
– ΠNom_imb(σNb_etage>8(Immeuble));
– 2. Nom des personnes ayant emménagé avant 1994.
– ΠNom_occ(σAnnée_h<1994(Occupant));
– 3. Qui habite Annakhil?
– ΠNom_occ(σNom_imb= " Annakhil " (Occupant));
– 4. Nom des Architectes de plus de 25 ans.
– ΠNom(σProfession= " Architecte " ^Age>25(Personne));
– 5. Nom des immeubles ayant un appartement de plus de 150 m2.
– Πnom_imb(σsuperficie>150(Appartement));
– 6. Qui gère l’appartement où habite Atif?
– Πnomgérant(σNom_occ= " Atif " (Immeuble  Nom_imb Nom_imb Occupant))

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

IV.5. Algèbre relationnelle: Correction

– 7. Dans quel immeuble habite un retraité?


– Πnom_imb(σProfession= " Retraité " (Personne  Nom  Nom_occ Occupant))
– 8. Qui habite dans un appartement de moins de 70 m2?
– Πnom_occ(σSperficie<70( (Apparteme nt  Nom_imb  Nom_imb^ No_app  No_app Occupant))
– 9. Nom des personnes qui habitent au dernier étage de leur immeuble.
Πnom_occ(σEtage=Nb_etage( (Appartement  Nom_imb Nom_imb (Immeuble  Nom_imb Nom_imbOccupant))))
– 10. Profession du gérant du Firdaous?
– ΠProfession(σNom_imb= " Firdaous " (Personne
(  Nom  Nomgérant Immeuble))
– 11. Age et profession des occupants de l’immeuble géré par Alami?
– Π Age, Profession(σNom_gérant= " Alami " (Personne
(  Nom  Nom_occ (Immeuble  Nom_imb  Nom_imb Occupant))))

– 12. Qui habite, dans un immeuble de plus de 10 étages avec un appartement de plus
de 100 m2?
– Π Nom_occ (σ(Nb_etage>10 ^ Superficie>100)(
(Occupant  Nom_imb  Nom_imb (Immeuble  Nom_imb  Nom_imb Appartemen t))))

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

IV. Algèbre relationnelle


IV.5. Exercices
 On considère les relations suivantes:
 PERSONNE (CIN, NOM, Prenom, Adresse)
 Voiture(NCarteGrise, #CIN, Modele)
 Moto(NCarteGrise, #CIN, Modele)
 Ecrire les expressions représentant:
1. Afficher les personnes qui possèdent une voiture mais pas de
moto?
2. Afficher les personnes qui possèdent une voiture et une moto?
3. Afficher les personnes qui ne possèdent ni voiture ni moto?
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

Plan du cours:

I Concepts généraux

II Le modèle E-A

III Le modèle relationnel de données

IV L’algèbre relationnelle

V Langage SQL

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V Langage SQL

1. Présentation du langage SQL;


2. Types de données;
3. Requêtes d’action;
4. Requêtes de sélection;
5. Requêtes de contrôle.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.1. Présentation du langage SQL
 SQL signifie "Structured Query Language", soit en français
"Langage de requêtes structuré "

 Il a été développé par IBM au cours des années 70

 SQL : langage proche de l’utilisateur et de sa façon de poser


les requêtes (formulation proche du langage naturel)

 SQL : langage assertionnel (non procédural), facile à


apprendre pour rédiger les requêtes, les lire et les comprendre.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.1. Présentation du langage SQL

 SQL a été normalisé par l'ANSI (American National


Standards Institute) et par l'ISO (International Organization
for Standardization).

 Cette normalisation a donné naissance à une 1ère version


(SQL1) en 1987 puis à une 2ème version (SQL2) en 1992

 Une troisième norme (SQL3) est sortie en 2003 par l'ANSI


et l'ISO.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.1. Présentation du langage SQL
 Malgré la normalisation ISO, il existe plusieurs variantes de
SQL sur le marché car chaque éditeur de SGBDR tente
d’étendre le standard pour accroître l’attrait commercial de
son produit
 On distingue 3 types de requêtes: Actions (Création et
m.à.j), Sélections (Interrogation) et Contrôle (définir des
permissions pour les utilisateurs).
 Chaque requête SQL doit obligatoirement se terminer par
un Point Virgule.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.1. Présentation du langage SQL
 SQL, C’est à la fois:
 Langage de définition de données (LDD) : définir, modifier et
supprimer des structures de données dans les tables
(CREATE, ALTER..)
 Langage de manipulation des données (LMD) : entrer une
nouvelle ligne, modifier des lignes existantes, supprimer des
lignes dans la base de données (INSERT, UPDATE…)
 Langage de contrôle de données (LCD) : gère les droit
d’accès à la base et aux structure qu’elle contient
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.1. Présentation du langage SQL
 Utilisation de SQL :
 En mode interactif :
L’utilisateur écrit textuellement une commande SQL et
récupère le résultat immédiatement.

 En mode intégré :
Une commande SQL est mélangée avec les instructions
d’un programme en langage de haut niveau tel que C,
C++, Visual basic, ...
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données
 INTEGER ou INT : entiers signés.
 TEXT(p) ou CHAR(p) : chaîne de caractères de longueur fixe de p
caractères.
 VARCHAR (p): chaîne de caractères de longueur variable de p
caractères maximum.
 DATE, TIME, DATETIME: dates et/ou heures.
 LOGICAL : valeur logique « oui » ou « non ».
 DECIMAL(p, q) : nombres décimaux de p chiffres dont q après le
point décimal (par défaut, q = 0).
 FLOAT : nombre réel en virgule flottante(il y a aussi Single pour
simple et Double pour réel double).
 CURRENCY, MONEY : Monétaire.
 COUNTER : Compteur (NuméroAuto).
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données
 Expressions de contraintes d'intégrité en SQL
 Une contrainte d'intégrité est une clause permettant d’obliger la
modification de tables, faite par l'intermédiaire de requêtes
d'utilisateurs, afin que les données saisies dans la base soient
conformes aux données espérées (assurer la cohérence des
données dans une base) est:
INTÉGRITÉ DE DOMAINE
INTÉGRITÉ DE RELATION(DE CLÉ)
 INTÉGRITÉ DE RÉFÉRENCE
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données
 Expressions de contraintes d'intégrité en SQL
Ces contraintes doivent être exprimées dès la création de la table grâce
aux mots clés suivants:
 NULL / NOT NULL : valeurs non obligatoires/obligatoires.
 DEFAULT (Valeur) : pour définir une valeur par défaut*
 CHECK (Condition): pour contrôler la validité des valeurs*
 UNIQUE : permet de vérifier que la valeur saisie pour un
champ n'existe pas déjà dans la table.
 PRIMARY KEY : clé primaire.
 FOREIGN KEY : clé étrangère.
CONSTRAINT : permet de donner un nom à une contrainte ce qui
permet de la manipuler.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données

 Expression de contraintes d'intégrité


 NULL / NOT NULL : valeurs non obligatoires/obligatoires.

 NOT NULL :Forcer la saisie d'un champ


 Le mot clé NOT NULL permet de spécifier qu'un champ
doit être saisi, c'est-à-dire que le SGBD refusera d'insérer
des tuples dont un champ comportant la clause NOT
NULL n'est pas renseigné.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données
 Expression de contraintes d'intégrité: DEFAULT
 Le langage SQL permet de définir une valeur par défaut lorsqu'un champ
de la base n'est pas renseigné grâce à la clause DEFAULT.
 Cela permet notamment de faciliter la création de tables, ainsi que de
garantir qu'un champ ne sera pas vide.
 La clause DEFAULT doit être suivie par la valeur à affecter. Cette
valeur peut être un des types suivants :
constante numérique
constante alphanumérique (chaîne de caractères)
le mot clé USER (nom de l'utilisateur)
le mot clé NULL
le mot clé CURRENT_DATE (date de saisie)
le mot clé CURRENT_TIME (heure de saisie)
le mot clé CURRENT_TIMESTAMP (date et heure de saisie)
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données
 Expression de contraintes d'intégrité
 CHECK (Condition): pour contrôler la validité des valeurs
Il est possible de faire un test sur un champ grâce à la
clause CHECK() comportant une condition logique portant sur une
valeur entre les parenthèses. Si la valeur saisie est différente de NULL,
le SGBD va effectuer un test grâce à la condition logique.
 UNIQUE : Tester l'unicité d'une valeur
La clause UNIQUE permet de vérifier que la valeur saisie pour un
champ n'existe pas déjà dans la table. Cela permet de garantir que toutes
les valeurs d'une colonne d'une table seront différentes.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données
 Expressions de contraintes d'intégrité en SQL
 PRIMARY KEY :
• Colonne PRIMARY KEY= Clé Primaire de la table.
• Identifie chaque ligne(enregistrement)de la table de manière unique.
• Une clé primaire ne doit pas accepter:
 Les valeurs identiques répétitives
 Les valeurs NULL
 FOREIGN KEY(clé étrangère)
• Une clé étrangère est toujours liée à une clé primaire
• Elle doit respecter la contrainte d’intégrité référentielle: la valeur
d’une clé étrangère doit toujours être également une des valeurs de la
clé référencée(clé primaire)
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.2. Types de données: Conventions
 Les conventions relatives aux noms des tables et des champs varient quelque
peu d'un SGBD à l'autre:
 Le nombre de caractères ne doit pas être trop grand (64 dans Access, 18 à
30 dans d'autres SGBD);
 Seuls les lettres, les chiffres et le caractère de soulignement sont autorisés.
 Access admet les caractères accentués. Il admet aussi l'espace, mais le nom
du champ doit être écrit entre crochets;
 Certains SGBD nécessitent que le nom d'un champ commence par une
lettre, mais ce n'est pas le cas d'Access;
 Les termes faisant partie du vocabulaire du langage SQL sont interdits
("date" par exemple). Ce sont les mots réservés.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Requêtes d’actions: Sont des requêtes qui permettent de créer des
tables, d’ajouter, de supprimer des enregistrements d’une table, …
 Création d’une Base de données : Cette opération donne comme
résultat une BD vide ne contenant aucune table.
 CREATE DATABASE permet de créer une nouvelle BD.
 Création d’une table : Cette opération donne comme résultat une
table vide ne contenant aucun enregistrement. Il faut préciser :
 Le nom de la table;
 La description de ses colonnes : nom, type de
données et contraintes.
 CREATE TABLE permet de créer une nouvelle table.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création de table :
 Syntaxe SQL pour créer une nouvelle table :
CREATE TABLE Nom_table (
Nom_champ1 type_1,
Nom_champ2 type_2 ,
…,
Nom_champN type_N );

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création de table :
 Syntaxe SQL pour créer une nouvelle table :
CREATE TABLE Nom_table (
Nom_champ1 type_1 contrainte_1,
Nom_champ2 type_2 contrainte_2 ,
…,
Nom_champN type_N contrainte_N );

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action

 Création de table :
 Syntaxe SQL pour créer une nouvelle table avec une clé
primaire simple :
CREATE TABLE Nom_table (
champ1 type [CONSTRAINT nom_contrainte] PRIMARY KEY,
champ2 type [NOT NULL],
…,
…….,
champN type [NOT NULL] );
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création de table :
 Syntaxe SQL pour créer une nouvelle table avec une clé
primaire composée :
CREATE TABLE Nom_table (
champ1 type [NOT NULL],
champ2 type [NOT NULL],
…,
champN type,
PRIMARY KEY (champ1, champ2,…) );

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création de table :
 Syntaxe SQL pour créer une nouvelle table avec une clé
primaire composée :
CREATE TABLE Nom_table (
champ1 type [NOT NULL],
champ2 type [NOT NULL],
…, champN type,
[CONSTRAINT nom_contrainte1] PRIMARY KEY (champ1,
champ2,…) );

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création de table : Exemples
CREATE TABLE Client (
email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4) ) ;

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création de table : Exemples
CREATE TABLE Client (
email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss DECIMAL (4)
UNIQUE(nom) ) ;
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action

 Création de table : Exemples

CREATE TABLE Cinéma (

nom VARCHAR (50) NOT NULL,

adresse VARCHAR (50) DEFAULT ’Inconnue’);

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création de table : Exemples

 CREATE TABLE ETUDIANT(


ID INTEGER PRIMARY KEY,
NOM TEXT(15),
PRENOM TEXT(15),
AGE INTEGER CONSTRAINT Contrainte_AGE
CHECK(age< 35),
BOURSIER LOGICAL);
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création d’une table : Exemples
 Donnez une requête SQL permettant de créer la table
EMPLOYES ( Nemployé: entier, Nom: texte(25), Prénom:
texte(20), Fonction: texte(15), Adresse: texte(50), Codeville:
entier long)
CREATE TABLE EMPLOYES (
Nemployé INTEGER PRIMARY KEY,
Nom TEXT(25),
Prénom TEXT(20),
Fonction TEXT(15),
Adresse TEXT(50),
Codeville LONG ) ;
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création d’une table : Exemples
 Créez une requête SQL permettant de créer la table
DETAILS ( Ncommande: entier, Réf: texte(30), Pu: réel non
nul, Quantité: entier non nul, Remise: réel simple );
 CREATE TABLE DETAILS (
Ncommande Integer,
Réf Char(30),
Pu float NOT NULL,
Quantité Integer NOT NULL,
Remise Single,
PRIMARY KEY ( Ncommande, Réf ) ) ;

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création d’une table: Clé étrangère
 Créez une requête SQL permettant de créer la table
Participe( #Numadh: entier, #Numact: entier, AnneeParticipe: entier);
 Numadh est la clé primaire de la table Adherent et Numact est la
clé primaire de la table Activite.
 CREATE TABLE Participe(
Numadh integer,
Numact integer,
anneeParticipe integer,
Primary key (Numadh, Numact, AnneeParticipe),
Foreign key (Numadh) references Adherent(Numadh),
Foreign key (Numact) references Activite(Numact));
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création d’une table: Clé étrangère
 Quatre options sont disponibles pour la suppression des clés
étrangères ( la définition de la contrainte d’intégrité référentielle ):
• ON DELETE RESTRICT : Pour interdire la suppression d’un
enregistrement référencé par un enregistrement d’une autre
relation. On trouve également l’expression NO ACTION à la place
du mot clé RESTRICT dans certains SGBD.
• ON DELETE SET NULL : Affecte la valeur NULL à la clé
étrangère.
• ON DELETE SET DEFAULT : Affecte la valeur par défaut
(selon le type de données) à la clé étrangère.
• ON DELETE CASCADE : Indique au SGBD qu’il est possible
de détruire la clé étrangère en détruisant toutes les clés étrangères
avec la même valeur.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Création d’une table: Clé étrangère
CREATE TABLE Film (titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idArt INTEGER,
codePays INTEGER,
PRIMARY KEY (titre),
FOREIGN KEY (idArt) REFERENCES Artiste(idArt) ON
DELETE SET NULL,
FOREIGN KEY (codePays) REFERENCES Pays(codePays));
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action

 Modification dans une table

 L’instruction ALTER TABLE permet d’ajouter ou de


supprimer un seul champ à une table.

 Elle permet aussi la création et la suppression des liens


entre les tables d’une base de données.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification dans une table
 Modification de la structure d’une table :
 Il y a trois types d’actions concernant la modification de
structure d’une table :
 Ajouter une ou plusieurs colonnes.
 Supprimer une ou plusieurs colonnes.
 Modifier les propriétés d’une ou de plusieurs colonnes.
 Les commandes SQL relatives à ces actions :
 ADD
 DROP
 MODIFY
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification dans une table
 Modification de la structure d’une table :
 Pour modifier la structure d’une table, on précise tout d’abord le
nom de celle-ci en écrivant la commande suivante :
ALTER TABLE Nom_table
 En suite, on spécifie la nature de l’action de modification (ajout,
suppression ou modification).
 Pour cela, il faut utiliser l’une des trois commandes : ADD,
DROP ou MODIFY.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification dans une table
 Exemples d’ajout :
 Ajouter une colonne « AGE » (entier) dans la table « CLIENT » :
ALTER TABLE CLIENT
ADD AGE INTEGER;
 Ajouter une colonne « DATECOMPTE » (date) dans la table
« COMPTE » :
ALTER TABLE COMPTE
ADD DATECOMPTE DATE;
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification dans une table
 Exemples de suppression :
 Supprimer la colonne « ADRAGENCE » de la table « AGENCE» :
ALTER TABLE AGENCE
DROP ADRAGENCE;

 Supprimer la colonne « DATECOMPTE» de la table « COMPTE»:


ALTER TABLE COMPTE
DROP DATECOMPTE;

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification dans une table
 Exemples de modification de propriétés :
 Modifier le type de la colonne « ADRAGENCE » pour qu’il soit
un CHAR(100) au lieu de CHAR(40) :
ALTER TABLE AGENCE
MODIFY ADRAGENCE CHAR(100);

 Modifier la colonne « AGE » de la table « CLIENT » pour qu’elle


soit obligatoire :
ALTER TABLE CLEINT
MODIFY AGE NOT NULL;
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification dans une table
 Créez une requête SQL permettant de créer la table

VILLES ( Codeville: NuméroAuto, Ville: texte(20))

 CREATE TABLE VILLES (

Codeville Counter PRIMARY KEY,

Ville Text(20) ) ;

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
CREATE TABLE EMPLOYES (
Nemployé INTEGER PRIMARY KEY,
Nom TEXT(25),
Prénom TEXT(20),
Fonction TEXT(15),
Adresse TEXT(50),
Codeville LONG ) ;

CREATE TABLE VILLES (


Codeville Counter PRIMARY KEY,
Ville Text(20) ) ;

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification dans une table
 Modifiez la table EMPLOYES en déclarant le champ
"CodeVille" comme clé étrangère, puis créez un lien nommé
lien_ville sur le champ CodeVille de la table VILLES

 ALTER TABLE EMPLOYES ADD CONSTRAINT Lien_ville


FOREIGN KEY (CodeVille) REFERENCES VILLES
(CodeVille);

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action

 Modification dans une table

 Supprimer le lien nommé lien_ville existant entre la table


EMPLOYES et la table VILLES selon le champ Codeville

 ALTER TABLE EMPLOYES DROP CONSTRAINT


Lien_ville

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Suppression d’une table
 La syntaxe SQL pour supprimer une table est très simple :

DROP TABLE Nom_table

 Exemples :

DROP TABLE CLIENT

DROP TABLE AGENCE

DROP TABLE COMPTE

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Insertion d’enregistrements dans une table :
 La commande qui permet d’insérer une ligne dans une table est
la suivante :

 INSERT INTO Nom_table (champ1, champ2, …)

VALUES (valeur1, valeur2, …) ;


 Dans la clause “INTO…”, on spécifie le nom de la table ainsi
que les noms des colonnes.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Insertion d’enregistrements dans une table :
 La commande qui permet d’insérer une ligne dans une table est
la suivante :

 INSERT INTO Nom_table (champ1, champ2, …)

VALUES (valeur1, valeur2, …) ;


 Dans la clause “INTO…”, on spécifie le nom de la table ainsi
que les noms des colonnes.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Insertion d’enregistrements dans une table :
 La commande qui permet d’insérer une ligne dans une table est
la suivante :

 INSERT INTO Nom_table

VALUES (valeur1, valeur2, …) ;


 Dans la clause “INTO…”, on spécifie le nom de la table ainsi
que les noms des colonnes.
 Si l’on veut ajouter une ligne contenant les valeurs pour tous les
champs, dans ce cas on peut omettre les noms de colonnes.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Insertion d’enregistrements dans une table :
 Remarque:
 On peut insérer plusieurs lignes à la fois
INSERT INTO Nom_table (champ1, champ2, champ3…)
VALUES
(valeur1_1, valeur2_1, valeur3_1 …) ,
(valeur1_2, valeur2_2, valeur3_2 …),
(valeur1_3, valeur2_3, valeur3_3 …),
…………………………………;
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Insertion d’enregistrements dans une table :
 Remarque:
 Il est possible de ne pas renseigner toutes les colonnes.
Une colonne non renseignée sera vide NULL

 L’ordre des colonnes lors de l’insertion n’est pas important


les valeurs à insérer doivent suivre l’ordre des colonnes
mentionné dans la clause insert into

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Insertion d’enregistrements dans une table :
 Remarque:
 Attention à l’ordre de remplissage des tables d’une BD. Il
faut prendre en considération les relations clé primaire/clé
étrangère.
 les valeurs de la clé étrangère doivent se trouver dans la
clé primaire référencée
Participe( #Numadh: entier, #Numact: entier, AnneeParticipe: entier)
Numadh est la clé primaire de la table Adherent et Numact est la clé
primaire de la table Activite.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Insertion d’enregistrements dans une table :
 Exemple:
 Créez une requête permettant d’ajouter l’enregistrement
suivant dans la table EMPLOYES: (100, BEN AZOUZ, Aziz,
Ingénieur, 90050)
 La table EMPLOYES ( Nemployé , Nom, Prénom, Fonction,
Adresse, Codeville)
 INSERT INTO EMPLOYES (Nemployé, Nom, Prénom,
Fonction, Codeville)
VALUES (100, ‘BEN AZOUZ’, ‘Aziz’, ‘Ingénieur’, 90050) ;

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification d’un enregistrement

 L’instruction UPDATE permet la mise à jour d’une table;

 On modifie la valeur d’un champ d’un enregistrement qui


vérifie une condition précise (critère pour accéder à la ligne qui
sera le sujet de la modification);

 Syntaxe :
UPDATE table SET nouvelles valeurs WHERE critères
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification d’un enregistrement
UPDATE table SET nouvelles valeurs WHERE critères

 Les champs à mettre à jour doivent être écrits dans la clause SET,
l’un après l’autre (avec leurs valeurs) et séparés par des virgules.

 Les champs non spécifiés après la clause SET ne seront pas


modifiés.

 Si la clause WHERE est absente, tous les enregistrements de la


table seront affectées.

Pr S.MOQQADDEM AU: 2021/2022


UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Modification d’un enregistrement
 Exemples :
 Donner une requête SQL pour modifier l’adresse de
l'employé numéro 10 par la nouvelle adresse sera "10 Avenue
Mohamed VI, Rabat".
 UPDATE EMPLOYES SET Adresse = ‘10 Avenue Mohamed
VI, Rabat’ WHERE Nemployé = 10 ;
 Donner une requête SQL pour augmenter de 5% le salaire de
tous les acteurs : ACTEURS (N_act, Nom, Prénom,
Nationalité, Salaire, Age, Films)
 UPDATE ACTEURS SET Salaire = Salaire * 1.05 ;
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action
 Suppression d’enregistrements

 L’instruction DELETE permet d’effacer des enregistrements


d’une table.

 La syntaxe de la commande est :


DELETE * FROM Nom_table WHERE Condition;

 Pour supprimer tous les enregistrements d’une table, il suffit de ne


pas indiquer la clause WHERE.
Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL ENCGK

V. Langage SQL
V.3. Requêtes d’action

 Suppression d’enregistrements
 Exemples :
ACTEURS (N_act, Nom, Prénom, Nationalité, Salaire, Age, Films)

 Effacez tous les enregistrements de la table ACTEURS;

DELETE * FROM ACTEURS ;

 Effacez tous les acteurs de nationalité marocaine;


DELETE * FROM ACTEURS WHERE
Nationalité= ’marocaine ’;
Pr S.MOQQADDEM AU: 2021/2022

Vous aimerez peut-être aussi