Vous êtes sur la page 1sur 33

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 Nadiri@yahoo.fr
Zerwal Bouchra 456884 12 Zerwal@hotmail.com
Moutawakil Marwan 878955 10 Moutawakil.M@gmail.com

Moutawakil Nidal 685499 14 Moutawakil.N@gmail.com


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 Nadiri@yahoo.fr
Zerwal Bouchra 456884 12 Zerwal@hotmail.com
Moutawakil Marwan 878955 10 Moutawakil.M@gmail.com

Moutawakil Nidal 685499 14 Moutawakil.N@gmail.com


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 Nadiri@yahoo.fr
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, ‘rach@gmail.com’)
 ========================
 INSERT INTO Etudiant
 Values (‘rachidi’, ‘Mohamed’, ‘547889’, 12, ‘rach@gmail.com’)
 ========================
 INSERT INTO Etudiant
 Values (‘rachidi’, ‘Mohamed’, ‘547889’, NULL,
‘rach@gmail.com’)
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, ‘rach@gmail.com’,
 ‘jalal’, ‘Nazha’, ‘658956’, 14, ‘jal@yahoo.com’)
 ========================
 INSERT INTO Etudiant
 Values (‘rachidi’, ‘Mohamed’, ‘547889’, 12, ‘rach@gmail.com’,
 ‘jalal’, ‘Nazha’, ‘658956’, 14, ‘jal@yahoo.com’)
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 = ‘user@yahoo.com’
 ============================
 UPDATE Etudiant
 SET email = ‘user@yahoo.com’
 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)
 )

Vous aimerez peut-être aussi