PARTIE III
Langage SQL
Abdelfettah IDRI
Introduction au langage SQL
SQL : « Structured Query Language »
Un langage ANSI « American National Standards
Institute » standard de gestion des bases de données
relationnelles
Conçu par IBM dans les années 70
Introduction au langage SQL
SQL est un langage de:
définition des données DDL : « create, drop, alter » / tables ,
procédures et vues
manipulation des données DML : « insert, delete, update » /
tables
interrogation des données DQL : « select » / tables
Contrôle de données DCL : « grant, revoke » / tables ,
procédures et vues
Contrôle de transactions : « commit, rollback » / requêtes
Introduction au langage SQL
Une relation du schéma relationnel est converti vers une
table dans la base de données
Une table est composée de lignes et de colonnes
Lignes : enregistrements (occurrences)
Colonnes: champs (attributs)
Toutes les données d’une colonnes doivent avoir le même
type défini au préalable
Introduction au langage SQL
Exemple de table « Etudiant »:
Nom Prénom CNE note Email
Nadiri Ahmed 132542 15
[email protected] Zerwal Bouchra 456884 12
[email protected] Moutawakil Marwan 878955 10
[email protected]Introductions SQL / Types
Numériques:
Nombres entiers: SMALLINT (2 octets) ; INTEGER (4 octets)
Nombres décimaux: NUMERIC (p, d) ; DECIMAL (p, d)
456.12 : p=5; d=2
A virgule flottante : REAL (p >=7) ; FLOAT, DOUBLE
PRECISION (p >=15)
BIT STRINGS:
BIT (n)
BIT VARYING (n)
Introductions SQL / Types
Chaîne de caractères:
CHAR(n) ou CHARACTER(n)
VARCHAR(n) ou CHARACTER VARYING (n)
Introductions SQL / Types
Temporels:
DATE (2,2,4)
TIME (H, M, S)
TIMESTAMP (date + heure)
INTERVAL ( intervalle de temps)
Introductions SQL / Types
Valeur NULL:
NULL : valeur vide qui est différent de zéro.
Interrogation / SELECT
Basée essentiellement sur l’instruction « SELECT »
Syntaxe :
SELECT exp_1 , … , exp_n
FROM table_1 , … , table_n
WHERE Prédicat
========================
SELECT *
FROM table_1 , … , table_n
WHERE Prédicat
Interrogation / SELECT
SELECT : retourne les données spécifiées dans la clause «
exp_1, …, exp_n » depuis les tables « table_1, … , table_n
» et vérifiant les conditions décrites dans « Prédicat »
exp_1 , … , exp_n : colonnes de tables ou expressions
basées dessus (constantes, …)
FROM : spécifies les tables de sélection
table_1 , … , table_n : (tables, vues, …)
WHERE : introduit des contraintes logiques à vérifier
Prédicat : contraintes logiques à vérifier qui peuvent être
assez complexes
Interrogation / Exemples
SELECT nom , CNE
FROM Etudiant
========================
Nom CNE
Nadiri 132542
Zerwal 456884
Moutawakil 878955
Moutawakil 685499
Interrogation / Exemples
SELECT nom , CNE , note + 2
FROM Etudiant
========================
Nom CNE note
Nadiri 132542 17
Zerwal 456884 14
Moutawakil 878955 12
Moutawakil 685499 16
Interrogation / Exemples
SELECT *
FROM Etudiant
========================
Nom Prénom CNE note Email
Nadiri Ahmed 132542 15
[email protected]Zerwal Bouchra 456884 12
[email protected]Moutawakil Marwan 878955 10
[email protected]Interrogation / Exemples
SELECT Nom, CNE
FROM Etudiant
WHERE nom like ‘Mout%’
========================
Nom CNE
Moutawakil 878955
Moutawakil 685499
Interrogation / Exemples
SELECT *
FROM Etudiant
WHERE Nom = ‘Nadiri’ AND Prénom = ‘Ahmed’
========================
Nom Préno CNE note Email
m
Nadiri Ahmed 132542 15
[email protected]Interrogation / Opérateurs logiques
Opérateur description
= Egale
> Strictement supérieur
>= Supérieur ou égal
< Strictement inférieur
<= Inférieur ou égal
LIKE Pattern matching operator
IN Ensemble de valeurs
BETWEEN Désigne un intervalle
Interrogation / fonctions
Groupe Arithmétique Chaînes de date
caractères
SUM SQRT LENGTH NEXT_DAY
COUNT ABS INSTR TO_CHAR
MAX POWER TO_NUMBER ADD_MONTHS
MIN TO_CHAR SUBSTR BETWEEN
Interrogation / SELECT DISTINCT
Syntaxe :
SELECT DISTINCT exp_1 , … , exp_n
FROM table_1 , … , table_n
WHERE Prédicat
========================
Sert à retourner seulement les enregistrements à valeurs
différentes
Interrogation / SELECT DISTINCT
Exemple :
SELECT DISTINCT nom
FROM Etudiant
========================
Nom
Nadiri
Zerwal
Moutawakil
Manipulation/ INSERT
Deux formes générales:
Syntaxe 1 :
INSERT INTO table (champ_1, …, champ _n)
Values (val_1 , … , val_n)
========================
Syntaxe 2 :
INSERT INTO table (champ_1, …, champ _n)
SELECT …
Manipulation/ INSERT
Insertion explicite simple:
Syntaxe 1 :
INSERT INTO table (champ_1, …, champ _n)
Values (val_1 , … , val_n)
========================
INSERT INTO table
Values (val_1 , … , val_n)
========================
INSERT INTO table
Values (val_1 , …, NULL,… , val_n)
Manipulation/ INSERT
Insertion explicite simple:
Exemple :
INSERT INTO Etudiant (nom, Prénom, CNE, note, Email)
Values (‘rachidi’, ‘Mohamed’, ‘547889’, 12, ‘[email protected]’)
========================
INSERT INTO Etudiant
Values (‘rachidi’, ‘Mohamed’, ‘547889’, 12, ‘[email protected]’)
========================
INSERT INTO Etudiant
Values (‘rachidi’, ‘Mohamed’, ‘547889’, NULL,
‘[email protected]’)
Manipulation/ INSERT
Insertion explicite multiple:
Syntaxe 1 :
INSERT INTO table (champ_1, …, champ _n)
Values (val_1 , … , val_n,
val_11 , … , val_1n,
…)
========================
INSERT INTO table
Values (val_1 , … , val_n,
val_11 , … , val_1n,
…)
Manipulation/ INSERT
Insertion explicite multiple:
Exemple :
INSERT INTO Etudiant (nom, Prénom, CNE, note, Email)
Values (‘rachidi’, ‘Mohamed’, ‘547889’, 12, ‘[email protected]’,
‘jalal’, ‘Nazha’, ‘658956’, 14, ‘[email protected]’)
========================
INSERT INTO Etudiant
Values (‘rachidi’, ‘Mohamed’, ‘547889’, 12, ‘[email protected]’,
‘jalal’, ‘Nazha’, ‘658956’, 14, ‘[email protected]’)
Manipulation/ INSERT
Insertion multiple à base de SELECT:
Syntaxe 1 :
INSERT INTO table_1 (champ_1, …, champ _n)
SELECT champ_11, … , champ_1n
FROM table_2
Manipulation/ INSERT
Insertion multiple à base de SELECT:
Exemple :
Une table Candidat similaire à Etudiant
Une inscription de tous les candidats restant dans la table
Candidat
=================================
========
INSERT INTO Etudiant (Nom, Prénom, CNE, Email)
SELECT Nom_Cdt, Prénom_Cdt, CNE_Cdt, Email_Cdt
FROM Candidat
Manipulation/ DELETE
Syntaxe 1 : Suppression inconditionnelle:
DELETE FROM table
Syntaxe 2 : Suppression conditionnelle:
========================
DELETE FROM table
WHERE conditions
Manipulation/ DELETE
Exemples:
Syntaxe 1 : Suppression inconditionnelle:
DELETE FROM Candidat
Syntaxe 2 : Suppression conditionnelle:
========================
DELETE FROM Etudiant
WHERE nom = ‘jalal’
Manipulation/ UPDATE
Syntaxe :
UPDATE table
SET colonne1 = val1 , colonne2 = val2 , …
WHERE conditions
Manipulation/ UPDATE
Exemple:
UPDATE Etudiant
SET email = ‘[email protected]’
============================
UPDATE Etudiant
SET email = ‘[email protected]’
WHERE nom = ‘jalal’
Définition/ CREATE
Syntaxe :
CREATE table
( colonne1 type1,
colonne2 type2,
…
)
Définition/ CREATE
Exemple:
CREATE TABLE Groupe_Etudiant (
nom VARCHAR(20),
prénom VARCHAR(20),
note DECIMAL (10,2)
)