MODULE 2 : SYSTÈME D’INFORMATION ET BASE DE
DONNÉES
UA6 : IMPLEMENTATION D’UNE BASE DE DONNÉES
UE19 : GENERALITES SUR LES SGBD, ECRITURE ET EXECUTION DE
REQUÊTES SQL
Compétences attendues : À la fin de cette leçon, chaque apprenant doit être capable de :
- Définir : SGBD, Requête SQL
- Préciser le rôle d’un SGBD dans la mise en œuvre des bases de données ;
- D’écrire/exécuter les requêtes SQL de manipulation des données ;
I. NOTION DE SGBD
1. Définition
Un SGBD (pour Système de Gestion des Bases de Données) est un logiciel destiné au
stockage et à la manipulation des bases de données.
2. Fonctionnalités ou rôles d’un SGBD
Un SGBD sert à effectuer les opérations ordinaires telles que la recherche, l’ajout, la
modification et la suppression des données.
Le logiciel refusera qu’un usager modifie ou supprime une information s’il n’a pas été
préalablement autorisé. Il refusera qu’un usager ajoute une information si celle-ci existe dans la
base de données et fait l’objet d’une règle d’unicité. Il refusera également de stocker une
information qui n’est pas conforme aux règles préalablement établies par le concepteur.
3. Quelques exemples de SGBD
Il existe plusieurs SGBD comme DBase, Ms-Access, Informix, MySQL, Oracle, SQL Server,
PostGreSQL, Apache Derby, Sybase, etc.
Nous avons vu dans la leçon précédente comment créer une base de données ainsi qu’une
table en utilisant les mots-clés CREATE DATABASE et CREATE TABLE contenus dans les
requêtes SQL. En se basant sur cette leçon précédente, nous allons maintenant écrire d’autres
requêtes permettant de manipuler les données contenues à l’intérieur des tables des bases de
données. C’est-à-dire des requêtes SQL permettant d’insérer et de mettre à jour des
enregistrements. Ainsi, une requête est une commande qu’un utilisateur formule afin d’effectuer
une opération sur une base de données.
II. MANIPULATION DES DONNEES D’UNE BASE DE DONNÉES
Le langage SQL propose quatre types de requêtes pour manipuler les données. Il s’agit de
:
- La requête d’insertion ou d’ajout: permet de faire un enregistrement.
- La requête de modification : permet de modifier les valeurs des enregistrements.
- La requête de suppression : permet de supprimer des enregistrements.
- La requête de sélection ou d’interrogation : permet d’afficher des enregistrements
Les requêtes d’insertion, de modification et de suppression altèrent le contenu des
tables des bases de données alors que la requête de sélection affiche les éléments de la base de
données. Par ailleurs, le résultat d’une requête est un tableau dont les colonnes correspondent aux
champs de la tables et les lignes correspondent aux enregistrements respectant les consignes de la
requête.
Soient les tables « Élève » et « Club »ci-dessous :
Élève Club
Matricule Nom Age Sexe Numéro Matricule nomClub
TA01 Aziz 22 Masculin 1 TA01 Informatique
TA02 Bebey 20 Féminin 2 TA02 Anglais
TA03 Tamo 18 Masculin 3 TA03 Informatique
1. Requête d’insertion des données
Pour insérer un élément dans une table d’une base de données, on utilise le mot-clé
INSERT INTO et sa syntaxe est la suivante : INSERT INTO nom_table (champ1, champ2
…champN) VALUES ("valchamp1", "valchamp2", … "valchampN") ;
Application: Écrire la requête permettant d’ajouter dans la table « Élève »,l’élève ayant les
informations suivantes : TA04, Abba, 18, Masculin.
Solution : INSERT INTO Élève (matricule, nom, sexe, âge) VALUES ("TA01",
"Abba", "18",
"Masculin") ; Nous pouvons aussi écrire simplement : insert into Élève ("TA01", "Abba",
"18", "Masculin") ;
2. Modification des données
Pour modifier les données dans une table, on utilise le mot-clé UPDATE. Sa syntaxe est
la suivante : UPDATE Nom_table SET champ1=valeur1, champ2=valeur2, …,
champN=valeurN WHERE condition ;
Application : Écrire la requête permettant de modifier l’âge de l’élève Abba qui a plutôt
20 ans. Solution : UPDATE Élève SET âge="20"WHERE matricule="TA04" ;
3. Suppression d’enregistrements
Pour supprimer un enregistrement, on utilise le mot clé DELETE. Sa syntaxe est la
suivante :
DELETE FROM nom_table WHERE condition;
Application: Écrire la requête permettant de supprimer l’élève Abba de la base de
données. Solution: DELETE FROM Élève WHERE matricule="TA04";
4. Sélection des données
Pour afficher (interroger ou sélectionner) les données d’une base de données, on utilise le
mot cléSELECT. La sélection d’enregistrements est la requête SQL la plus employée.Elle permet
de rechercher des informations à partir d’une ou de plusieurs tables, suivant d’éventuels critères
et sa syntaxe varie selon des critères d’interrogation des données.Elle contient une combinaison
d’opérations portant sur des tables (relations) et dont le résultat est lui-même une table dont
l’existence est éphémère (le temps de la requête). La syntaxe générale d’une requête
d’interrogation est la suivante : SELECT { */attributs[, ...] }FROM nom_table [, ...][ WHERE
condition] ;
- La clause SELECT permet de spécifier les attributs que l’on désire voir apparaître dans
le résultat de la requête. Le caractère étoile (*) permet de récupérer tous les attributs de la
table générée par la clause FROM de requête.
- La clause FROM spécifie les tables sur lesquelles porte la requête.
- La clause WHERE qui est facultative, indique une condition que doivent respecter les n-
uplets sélectionnés. Nous pouvons utiliser les opérateurs tels que : =, <, >, AND, OR,
LIKE, BETWEEN <=, >=, etc.
- La clause GROUP BY permet de définir des groupes.
- La clause ORDER BY permet de trier les n-uplets du résultat par ordre croissant ou
décroissant. Pour cela, on utilise les mots-clés ASC (pour trier par ordre croissant) et
DESC (pour trier par ordre décroissant). Par défaut, les résultats sont classés par ordre
ascendant ou croissant.
a) Sélection des données sans condition (ou projection)
La sélection des données sans condition est encore appelée projection. Sa syntaxe est la
suivante : SELECT liste_champ FROM nom_table; Lorsqu’on veut sélectionner toutes les
colonnes d’une table, nous n’avons pas besoin de lister les colonnes de la table. Pour cela, nous
devons remplacer la liste des colonnes par le symbole*(étoile). Sa syntaxe est la suivante :
SELECT*FROM nom_table; Pour sélectionner des valeurs distinctes ou sans doublons, nous
devons utiliser le mot-clé « DISTINCT ». Sa syntaxe est la suivante : SELECT DISTINCT
liste_champ FROM nom_table ; Applications:
- SELECT Nom, Age FROM Élève ; permet d’afficher uniquement les noms et les âges
des élèves.
- SELECT * FROM Élève ; permet d’afficher toute la table élève.
- SELECT Matricule FROM Club ; permet d’afficher les matricules de la table Club. On
constate qu’il existe des doublons dans cette liste de matricule. Pour afficher le résultat
sans doublon, nous devons écrire SELECT DISTINCT Matricule FROM Club ;
b) Sélection des données selon une condition (ou restriction)
Une restriction est une sélection de données avec des critères. Sa syntaxe est la suivante :
SELECT liste_champ FROM nom_table WHERE condition ;
Application : Écrire la requête permettant d’afficher sans doublon le nom des élèves commençant
par la lettre « A » et dont l’âge est supérieur à 16 ans.
Solution:SELECT DISTINCT Nom, Age FROM Élève WHERE Nom LIKE "A%"
AND Age >=16; c) Tri des données
On parle de tri des données lorsque les données sélectionnées sont rangées soit dans l’ordre
croissant, soit dans l’ordre décroissant. Sa syntaxe est la suivante : SELECT liste_champ FROM
nom_tableORDER BY nom ASC ; ce qui signifie qu’on affiche les noms des élèves dans l’ordre
croissant alphabétique. Pour afficher dans l’ordre décroissant, on utilise le mot-clé DESC.
Exemple : Écrire la requête qui permet d’afficher les noms et les âges des élèves par ordre
décroissant.
Solution: SELECT Nom, Age FROM Élève ORDER BY Age DESC;
d) Jointure
On parle de jointure lorsque les données sont sélectionnées dans plusieurs tables.
Application : Écrire la requête permettant d’afficher le nom, l’âge et le club des élèves.
Solution : SELECT Nom, Age, nomClub FROM Élève, Club WHERE
Élève.Matricule=Club.Matricule ;