27 0 861KB
ENCG de Kenitra Semestre Autonome S5 Pr S.MOQQADDEM AU: 2021/2022
UNIVERSITE IBN TOFAIL
ENCGK
IV. Algèbre relationnelle IV.5. Exercices Nom_imb
Adresse
Nb_étage
Année
Nomgérant
Annakhil
22 Rue Azrou, Rabat
10
2009
Alami
Firdaous
15 bd des Far, Fès
5
2000
Dahbi
Table Immeuble
Nom
Age
Profession
Alami
54
Architecte
Atif
39
Médecin
Barhoum
58
Avocat
Dahbi
65
Retraité
Table Personne Nom_imb
No_app
Superficie
Etage
Annakhil
1
150
10
Annakhil
2
100
1
Annakhil
10
90
9
Firdaous
5
120
2
Firdaous
10
100
Firdaous
11
80
Table Appartement
Pr S.MOQQADDEM
Nom_imb
No_app
Nom_occ
Année_h
Annakhil
1
Alami
2009
Annakhil
2
Dahbi
2009
5
Firdaous
5
Atif
2001
3
Firdaous
10
Barhoum
2005
Table Occupant
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_h25(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(σSperficie10 ^ 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
V
ENCGK
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 Fonction, Codeville)
(Nemployé,
Nom,
Prénom,
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