Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
INF2023 : Implémentation des BDs
Le langage SQL
Etienne Kouokam
UMMISCO-LIRIMA, Département d’Informatique
Université de Yaoundé I, Cameroun
Novembre 2022
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Plan
1 Introduction 3 Langage de Manipulation de
2 Langage de Définition de Données (LMD)
Données (LDD) 4 Langage de Contrôle de
Données (LCD)
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Plan
1 Introduction
2 Langage de Définition de Données (LDD)
3 Langage de Manipulation de Données (LMD)
4 Langage de Contrôle de Données (LCD)
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Structured Query Language
SQL est vu comme un :
Langage de Manipulation de Données (DML) : interroger
et modifier les données de la base
Langage de Définition de Données (DDL) : définir le
schéma de la base de données
Langage de contrôle d’accès aux données
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Plan
1 Introduction
2 Langage de Définition de Données (LDD)
3 Langage de Manipulation de Données (LMD)
4 Langage de Contrôle de Données (LCD)
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Types de données SQL
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Création des tables
Syntaxe :
CREATE TABLE nom de la table
(attribut1 type(attribut1),
attribut2 type(attribut2),
. . .)
Application :
CREATE TABLE Internaute
(email VARCHAR (50),
nom VARCHAR (20),
prenom VARCHAR (20),
motDePasse VARCHAR (60),
anneeNaiss INTEGER)
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Création des tables
NOT NULL : il y a toujours une valeur !
Syntaxe :
CREATE TABLE nom de la table
(attribut1 type(attribut1),
attribut2 type(attribut2),
. . .)
Application :
CREATE TABLE Internaute
(email VARCHAR (50) NOT NULL,
nom VARCHAR (20) NOT NULL,
prenom VARCHAR (20),
motDePasse VARCHAR (60) NOT NULL,
anneeNaiss INTEGER )
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Création des tables
NULL : absence de valeur (pas valeur zéro ou chaîne vide ! ! !)
Pas d’opération incluant le NULL
Pas de comparaison avec un NULL
Et si on veut forcer une valeur par défaut
Utilisation de DEFAULT
Application :
CREATE TABLE Cinéma
(nom VARCHAR (50) NOT NULL,
adresse VARCHAR (50) DEFAULT ’Inconnue’)
Remarque :
Vous ne pouvez exécuter l’instruction DEFAULT qu’au moyen du
fournisseur Access OLE DB et d’ADO. Elle renverra un message
d’erreur si vous utilisez l’interface utilisateur Access SQL View.
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Contraintes
Les contraintes exigibles sont entre autres :
Un attribut doit toujours avoir une valeur (NOT NULL)
Un attribut (ou ensemble d’attributs) constitue(nt) la clé de la
relation (clés primaires ou secondaires)
Un attribut dans une table est liée à la clé primaire d’une autre
table (intégrité référentielle)
La valeur d’un attribut doit être unique au sein de la relation
D’autres types de règles . . .
Par ailleurs, il existe deux types de contrainte :
les contraintes à champ unique ou de niveau champ
les contraintes multi-champs ou de niveau table.
Utiliséables dans les instructions CREATE TABLE et ALTER TABLE.
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Contraintes de clés primaire
Clé primaire :
Utilisation de PRIMARY KEY :
CREATE TABLE Notation
(idFilm INTEGER NOT NULL,
email VARCHAR (50) NOT NULL,
notes INTEGER,
PRIMARY KEY (idFilm, email))
Clé secondaire :
Utilisation de UNIQUE : concept quelque peu désuet, servait à
spécifier la création d’index d’accès à un ou des enregistrements.
CREATE TABLE Cinéma
(nom VARCHAR (30) NOT NULL,
Adresse VARCHAR (30) UNIQUE,
PRIMARY KEY (nom))
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Contraintes de Clé étrangère (Foreign key) :
lIl s’agit des attributs faisant référence à une ligne d’une autre table.
Clé étrangère :
Utilisation de FOREIGN KEY :
CREATE TABLE Film
(idFilm INTEGER NOT NULL,
titre VARCHAR (50) NOT NULL,
annee INTEGER NOT NULL,
idMES INTEGER,
codePays INTEGER,
PRIMARY KEY (idFilm),
FOREIGN KEY (idMES) REFERENCES Artiste,
FOREIGN KEY (codePays) REFERENCES Pays);
Clé secondaire :
En cas de violation d’une contrainte d’integrité : demande rejetée
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Modification du schéma
Syntaxe :
ALTER TABLE nomTable ACTION description où ACTION peut être :
ADD / ADD COLUMN : ajouter
ALTER / ALTER COLUMN : modifier
DROP : supprimer
RENAME : renommer
ALTER TABLE :
ADD : ALTER TABLE Internaute ADD region
VARCHAR(10);
ALTER : ALTER TABLE Internaute ALTER region
VARCHAR(30) NOT NULL;
DROP : ALTER TABLE Internaute DROP region;
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Création d’index
Les index peuvent être créés pour :
pour les clés primaires (systématique)
les clés secondaires (UNIQUE)
les attributs normaux
Syntaxe :
CREATE [UNIQUE] INDEX nomIndex ON nomTable (attribut1 [, . . .])
Exemple :
CREATE INDEX idxGenre ON Film (genre);
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Supprimer une table
Pour Supprimer une table, une procédure ou un affichage existant
d’une base de données, ou supprime un index existant d’une table,
on se sert de DROP
Syntaxe de DROP :
DROP TABLE table | INDEX index ON table | PROCEDURE
procedure | VIEW view
Exemple :
L’index hypothétique NewIndex est censé exister dans la table
Employees de la base de données. Cet index est supprimé de
ladite table.
DROP INDEX NewIndex ON Employees;
Ici, la table Artiste est supprimée de la base de données.
DROP Table Artiste;
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Autres instructions du Langage de définition de
données
Les autres instructions SQL non présentées ici mais utilisées dans le
langage de définitions des données (LDD) sont :
ADD USER Ajoute un ou plusieurs utilisateurs existants à un
groupe existant.
ALTER USER ou DATABASE Change le mot de passe d’un
utilisateur ou d’une base de données existant.
GRANT Accorde des privilèges spécifiques à un utilisateur ou
un groupe existant.
REVOKE Révoque des privilèges spécifiques à un utilisateur ou
à un groupe existant.
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Plan
1 Introduction
2 Langage de Définition de Données (LDD)
3 Langage de Manipulation de Données (LMD)
4 Langage de Contrôle de Données (LCD)
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Sélection
Cette requête a pour rôle de demander au moteur de base de données
Microsoft Access de renvoyer des informations depuis la base de données
sous la forme d’un jeu d’enregistrements.
Syntaxe de SELECT :
SELECT [predicate] * | table.* | [table.] field1 [AS alias1] [, [table.]field2 [AS
alias2] [, . . . ]] FROM tableexpression [, . . . ] [IN externaldatabase]
[WHERE. . . ] [GROUP BY. . . ] [HAVING. . . ] [ORDER BY. . . ] [WITH
OWNERACCESS OPTION]
Predicat L’un des prédicats suivants : ALL, DISTINCT, DISTINCTROW
ou TOP. Utilisez le prédicat pour limiter le nombre
d’enregistrements retournés. Si aucun n’est spécifié, la valeur
par défaut est ALL.
alias1, alias2 Noms à utiliser comme en-têtes de colonne à la place des
noms de colonnes d’origine d’une table.
expressiontable Nom de la ou des tables contenant les données à extraire
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
SQL : Sélection
Pour effectuer cette opération, le moteur de base de données Microsoft Jet
recherche la ou les tables spécifiées
extrait les colonnes choisies
sélectionne les lignes qui correspondent aux critères
trie et/ou regroupe ces lignes dans l’ordre indiqué.
Remarque :
Les instructions SELECT ne modifient pas les données dans la base de
données.
SELECT constitue généralement le premier mot d’une instruction SQL.
Les instructions SQL sont pour la plupart des instructions SELECT ou
SELECT-INTO.
Syntaxe minimale de SELECT :
SELECT champs FROM table
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Application
SELECT champs FROM table
SELECT * FROM Acteur;
Si le nom d’un champ figure dans plusieurs tables stipulées par
la clause FROM, faites-le précéder du nom de la table
correspondante et de l’opérateur . (point).
SELECT [Link],[Link]
FROM Employees INNER JOIN Supervisors
WHERE [Link] =
[Link];
L’exemple suivant utilise le titre AnnéeDeNaissance comme nom
pour l’objet Field renvoyé dans l’objet Recordset résultant :
SELECT AnneNaissance AS AnneDeNaissance FROM
Acteurs;
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Requête sélection σ : SQL Vs Algèbre relationnelle
La sélection σpRq s’applique à une relation, R et extrait de cette
relation des tuples.
Exemple :
On désire afficher TOUS les champs de la table Acteurs.
En calcul relationnel : Exemple : σpActeursq
En SQL : Introduisons alors la requête suivante :
SELECT *
FROM ACTEURS ;
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Requête Projection ˝ : SQL Vs Algèbre relationnelle
la Projection sur un schéma de relation A1 , A2 , . . . , Ak s’applique à
une relation, RpA1 , A2 , . . . , An pRq et ne garde que les attributs
A1 , A2 , . . . , Ak
Donc, contrairement à la sélection, on ne supprime pas des lignes
mais des colonnes
Exemple :
On s’intéresse à la requête qui donne le nom, la capacité et le
Numéro de chaque SALLE.
En calcul relationnel : ΠnomCinema,capacite,codeSalle pSalleq
En SQL : Introduisons alors la requête suivante :
SELECT [Link], [Link],
[Link]
FROM SALLE ;
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Tri dans une Requête
On peut demander que le résultat de la requête soit trié sur un ou
plusieurs champs.
Exemple :
Sur l’exemple précédent, faisons en sorte que le résultat soit trié sur
le nom de la salle d’abord, sur la capacité ensuite.
SELECT [Link], [Link],
[Link]
FROM SALLE
ORDER BY nomCinema, capacite;
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don
Plan
1 Introduction
2 Langage de Définition de Données (LDD)
3 Langage de Manipulation de Données (LMD)
4 Langage de Contrôle de Données (LCD)
Introduction Langage de Définition de Données (LDD) Langage de Manipulation de Données (LMD) Langage de Contrôle de Don