Vous êtes sur la page 1sur 0

Langages > Bases de donnes et langage SQL > Cours v1.1.3.

1 07/05/2010
1 / 18
LES BASES DE DONNES ET
LE LANGAGE SQL
v1.1.3.1 07/05/2010
peignotc(at)arqendra(dot)net / peignotc(at)gmail(dot)com

Toute reproduction partielle ou intgrale autorise selon les termes de la licence Creative Commons (CC) BY-NC-SA : Contrat
Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, disponible en ligne
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ ou par courrier postal Creative Commons, 171 Second Street, Suite 300,
San Francisco, California 94105, USA. Merci de citer et prvenir lauteur.
TODO :
- B.2 : Modlisation, Merise, modle entit-relation ( remplir)
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
2 / 18
TABLE DES MATIRES
1 INTRODUCTION AUX BASES DE DONNES ................................................. 4
1.1 PRINCIPES ET STRUCTURE DUNE BASE DE DONNES ................................................................. 4
1.2 EXPLOITATION DUNE BASE DE DONNES.................................................................................. 5
1.2.1 Le SGBD...........................................................................................................................................5
1.2.2 ODBC...............................................................................................................................................6
2 LE LANGAGE SQL............................................................................................... 7
2.1 DFINITIONS.............................................................................................................................. 7
2.2 COMMANDES DACCS LA BASE ............................................................................................. 7
2.2.1 La commande Select .........................................................................................................................7
2.2.2 La commande Insert .........................................................................................................................8
2.2.3 La commande Delete ........................................................................................................................8
2.2.4 La commande Update.......................................................................................................................8
2.3 COMMANDES DE GESTION DE BASE ........................................................................................... 9
2.3.1 La commande Create........................................................................................................................9
2.3.2 La commande Drop ..........................................................................................................................9
2.4 LES JOINTURES.......................................................................................................................... 9
2.5 LES SOUS-REQUTES ............................................................................................................... 10

Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
3 / 18
TABLE DES ANNEXES
A MOTS-CLEF, DLIMITEURS ET OPRATEURS DU LANGAGE SQL....... 11
A.1 ORDRE ALPHABTIQUE............................................................................................................ 11
A.2 CATGORIES............................................................................................................................ 12
A.2.1 Dfinition des donnes....................................................................................................................12
A.2.2 Manipulation des donnes..............................................................................................................14
A.2.3 Gestion des droits ...........................................................................................................................15
A.2.4 Gestion des transactions.................................................................................................................15
A.3 DLIMITEURS ET OPRATEURS................................................................................................. 15
A.3.1 Dlimiteurs .....................................................................................................................................15
A.3.2 Oprateurs de critres....................................................................................................................16
A.3.3 Oprateurs de requtes...................................................................................................................16
B RFRENCE DU LANGAGE SQL .................................................................... 17
B.1 HISTORIQUE ............................................................................................................................ 17
B.2 MODLISATION....................................................................................................................... 17
C BIBLIOGRAPHIE ................................................................................................ 18

TABLE DES ILLUSTRATIONS
Figure 1.1 : architecture dun SGBD________________________________________________________________________________________6
Figure 1.2 : la couche middleware ODBC____________________________________________________________________________________6

Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
4 / 18
1 INTRODUCTION AUX BASES DE DONNES
1.1 PRINCIPES ET STRUCTURE DUNE BASE DE DONNES
Une base de donnes est un objet informatique qui permet de stocker et grer de manire optimale un ensemble
dlments dinformations en les structurant.
Lintrt des bases de donnes est de permettre deffectuer assez simplement des dnombrements, des statistiques
et/ou des recherches lintrieur des donnes stockes, suivant des critres prcis.

Ex. : Sans base de donnes : informations brutes.

Jean, qui est un jeune homme de 20 ans, habite Montpellier, dans lHrault.
En Haute-Garonne, Toulouse, habite Nathalie qui est une jeune fille de 18 ans.
Cest Toulouse, en Haute-Garonne, que vit Sonia, adolescente de 16 ans.
Michel vit Montpellier, ville de lHrault ; cest un homme de 27 ans.
Paul, adolescent de 14 ans, habite le dpartement de la Haute-Garonne, Toulouse.

Avec base de donnes : reformulation et restructuration des informations brutes en ne gardant que les donnes
pertinentes.

Table infos :
prenom age sexe ville departement
Jean 20 M Montpellier Hrault
Nathalie 18 F Toulouse Haute-Garonne
Sonia 19 F Toulouse Haute-Garonne
Michel 27 M Montpellier Hrault
Paul 14 M Toulouse Haute-Garonne
Dans la terminologie des bases de donnes, chaque ligne (ex. : Jean 20 M Montpellier Hrault) est appele
enregistrement, et chaque colonne (prenom, age, sexe, ville, departement) est appele champ.
En gnral, lun de ces champs
1
permet didentifier de manire unique chacun des enregistrements et ainsi viter les
doublons ; ce champ est alors appel clef primaire, ne peut tre vide
2
et ne peut avoir la mme valeur pour 2
enregistrements diffrents.

Ex. : Dans la table infos, la clef primaire est linformation du prnom contenue dans le champ prenom.
Lensemble des champs constitue ce quon appelle une table et se reprsente gnralement sous forme de tableau
2 dimensions
3
. Une base de donnes est un ensemble constitu de 1 ou plusieurs tables.

Si un enregistrement ne peut tre identifi de manire unique grce la clef primaire, on utilise un second champ ;
ce champ est alors appel clef secondaire, ne peut tre vide et ne peut avoir la mme valeur pour 2 enregistrements
diffrents ayant mme clef primaire.
La clef secondaire permet de distinguer les enregistrements en cas de doublon sur la clef primaire ; le couple
(clef primaire / clef secondaire) permet alors didentifier assurment de manire unique les enregistrements dune
mme table.

1
1 ou plus.
2
Un champ autre quune clef primaire peut tre vide.
3
Cette reprsentation bidimensionnelle est uniquement visuelle (adapte lhumain) et ne peut tre assimile lobjet informatique
correspondant. Autrement dit, une table nest pas stocke informatiquement sous forme de tableau bidimensionnel.
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
5 / 18
Ex. : Dans la table infos, la clef primaire fait rfrence au prnom. Si on accepte de traiter les cas o des personnes
diffrentes ont le mme prnom, il faut donc envisager dutiliser une clef secondaire pour les diffrencier. Cela
pourrait tre par exemple linformation dge contenue dans le champ age.
En gnral, si une base comprend plusieurs tables, cest pour minimiser la taille occupe par celle-ci, ainsi que
doptimiser la gestion ; les diffrentes tables possdent alors des champs communs afin de permettre de recouper les
informations stockes.

Ex. : La table prcdente peut tre scinde en deux tables avec un champ commun (ville).

Table etatcivil :
prenom age sexe ville
Jean 20 M Montpellier
Nathalie 18 F Toulouse
Sonia 19 F Toulouse
Michel 27 M Montpellier
Paul 14 M Toulouse
Table depts :
ville departement
Montpellier Hrault
Toulouse Haute-Garonne
En terme de taille, si on considre que chaque champ est cod sur 20 octets
1
, les tables font :
Q solution 1 : 1 table (5 champs, 5 enregistrements) 5 x 5 x 20 = 500 octets ;
Q solution 2 : 2 tables (4 champs, 5 enregistrements ; 2 champs, 2 enregistrements) (4x5 + 2x2) x 20 =
480 octets.

La solution 2 permet donc de diminuer la taille de la base de donnes
2
.
Si on dsire mettre jour la base, en incluant par exemple le numro du dpartement en correspondance avec le
nom du dpartement, le nombre doprations effectuer est :
Q solution 1 : 1 table (5 enregistrements) 5 accs la base ;
Q solution 2 : 2 tables mais action uniquement sur la table depts (2 enregistrements) 2 accs la base.
ville departement no departement
Montpellier Hrault 34
Toulouse Haute-Garonne 31
Cette solution 2 permet donc aussi de mettre jour plus rapidement et facilement la base
3
.
1.2 EXPLOITATION DUNE BASE DE DONNES
1.2.1 Le SGBD
Utiliser une base de donnes permet deffectuer des dnombrements, des statistiques, des recherches au sein des
donnes stockes selon des critres.

Ex. : Savoir qui habite Toulouse ;
Savoir quels sont les hommes de plus de 19 ans ;
Savoir quelles femmes, et quel est leur ge, qui habitent Montpellier ;
etc.

Lorsque la base de donnes contient beaucoup denregistrements
4
, il devient difficile de rpondre aux questions par
une simple observation des donnes des tables.

1
Il sagit dune approximation, car il convient de dfinir chaque champ selon le type de donnes quil doit contenir (texte, nombre, date, etc.) ;
ainsi diffrents champs seront cods sur diffrents nombres doctets.
2
Gain en taille de 4% ; pour 100 enregistrements et 10 villes diffrentes, solution 1 : 5 x 100 x 20 = 10000 octets, solution 2 :
(4 x 100 + 2 x 10) x 20 = 8400 octets, gain de 16%.
3
Gain en nombre daccs (donc en temps, et en dure de lopration) de 60% ; pour 100 enregistrements et 5 dpartements diffrents,
solution 1 : 100 accs, solution 2 : 5 accs, gain de 95%.
4
Imaginez la base de donnes des clients de la SNCF par exemple.
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
6 / 18
Cest pourquoi une base de donnes peut tre manipule et interroge
1
directement en lui soumettant les questions,
que lon formule en utilisant le langage SQL. Une question, mise en forme par le langage SQL, est appele requte.
On pourrait sauvegarder une base de donnes dans un fichier texte, car elle ne contient que des informations
textuelles. Mais on ne saurait appliquer facilement le langage SQL pour interroger ce fichier.
Cest l quintervient le gestionnaire de base de donnes (SGBD
2
) qui propose le support du langage SQL et qui, de
plus, optimise le stockage des informations ainsi que les accs en lecture et criture au sein de la base.

base
SGBD
t a b l e
Figure 1.1 : architecture dun SGBD
Il existe plusieurs SGBD : Access (suite Microsoft Office), Oracle, SQL Server, PostgreSQL, MySQL, HSQL, etc.
Mme si la plupart des SGBD offrent la possibilit dinterroger une base de donnes en utilisant le langage SQL, la
manire dont chacun stocke les bases lui est propre. Cest pour cela que lorsque lon parle dune base, on prcise
gnralement son type (ex. : une base type MySQL).

Parmi ces diffrents SGBD, on retiendra MySQL car il est gratuit
3
, standard et support par normment de
systmes dexploitation, de langages, librairies et frameworks.
1.2.2 ODBC
La multitude des SGBD disponibles sur le march et leurs diffrences, mme minimes, sont sources de nombreux
problmes dans laccs au contenu des bases partir dune application. Ces diffrences rendent parfois lapplication
peu portable car celle-ci est programme pour communiquer avec 1 ou plusieurs types de SGBD bien spcifiques.

Plutt que dutiliser un driver natif, adapt au SGBD que lon dsire interroger, on peut utiliser une couche
intermdiaire afin de pallier ces problmes. Celle-ci a en charge dinterfacer de faon standard une application
nimporte quel SGBD. Il sagit de la couche ODBC
4
, middleware dvelopp par Microsoft, qui est compatible avec
tout SGBD supportant le langage SQL.

application
drivers natifs
SGBD
ODBC
Figure 1.2 : la couche middleware ODBC

1
On parle parfois dattaquer une base lorsque lon dsire linterroger.
2
SGBD : Systme de Gestion de Base de Donnes logiciel grant les bases de donnes et permettant de les interroger en utilisant le langage
SQL (on parle aussi de SGBDR, Systme de Gestion de Base de Donnes Relationnelles).
3
Dans une utilisation personnelle ou ducative.
4
Open DataBase Connectivity (eng) X Connectivit Ouverte des Bases de Donnes.
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
7 / 18
2 LE LANGAGE SQL
2.1 DFINITIONS
Le langage SQL
1
(Structured Query Language) permet de communiquer avec une base de donnes afin de la grer
ou de linterroger. Il sagit dun langage dclaratif la syntaxe trs simple, et qui figure parmi les plus utiliss pour
laccs aux bases de donnes.

SQL permet linteraction avec le serveur et les informations quil hberge en soumettant une commande au SGBD
sous la forme dune requte en suivant la syntaxe :
commandeSQL [mot-clef1] paramtre1 [mot-clef2 paramtre2 [...]]

Un paramtre peut dsigner le nom dune base, dune table, dun champ, une valeur, un critre, etc. Lorsquil sagit
dune valeur alphanumrique, on les encadre par des apostrophes
2
(ex. : 'chaine').
2.2 COMMANDES DACCS LA BASE
Le langage comprend 4 commandes principales
3
:
Y SELECT : parcourt la base et lit des enregistrements ;
Y INSERT : insre un nouvel enregistrement ;
Y UPDATE : modifie un enregistrement existant ;
Y DELETE : efface un enregistrement existant.
2.2.1 La commande Select
Pour interroger la base de donnes, on utilise la commande SELECT suivant la syntaxe :
SELECT champAExtraire1 [, champAExtraire2 [, ...]]
FROM nomTable
WHERE criteres
Le ou les critre(s) de recherche sont dfinis par la clause WHERE criteres suivant la syntaxe
WHERE critere1 [operateurLogique critere2 [...]] o un critre suit la syntaxe
champCritere operateur valeur.
La clause WHERE peut tre omise ; en ce cas les champs indiqus de tous les enregistrements sont lus.
Si on veut lire tous les champs correspondant au(x) critre(s), on peut crire * la place de la liste des champs.

Ex. : Savoir qui habite Toulouse.

SELECT prenom FROM infos WHERE ville='Toulouse'

Savoir quel ge ont les hommes de plus de 19 ans.

SELECT age FROM infos WHERE sexe='M' AND age>19

Savoir quelles femmes, et quel est leur ge, qui habitent Montpellier.

SELECT prenom,age FROM infos WHERE sexe='F' AND ville='Montpellier'

Connatre toutes les informations concernant les personnes majeures.

1
Structured Query Language (eng) X Langage de Requte Structure (fr).
2
Appeles aussi simple cotes, en opposition aux guillemets (doubles cotes).
3
Les commandes SQL sont gnralement crites en majuscules ; mais cela nest pas une obligation, car SQL ne diffrencie pas la casse.
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
8 / 18
SELECT * FROM infos WHERE age>=18
Connatre tous les prnoms des personnes (sans restriction).

SELECT prenom FROM infos
Connatre toutes les informations concernant toutes les personnes (soit donc lintgralit de la table).

SELECT * FROM infos
Les rsultats obtenus correspondent une portion de la table, que lon appelle alors sous-table ; il sagit donc dun
tableau 2 dimensions (mme dans le cas o une seule colonne est extraite).

Ex. : Savoir qui habite Toulouse.

SELECT prenom FROM infos WHERE ville='Toulouse'

prenom age sexe ville departement
Jean 20 M Montpellier Hrault
Nathalie 18 F Toulouse Haute-Garonne
Sonia 19 F Toulouse Haute-Garonne
Michel 27 M Montpellier Hrault
Paul 14 M Toulouse Haute-Garonne
La sous-table rsultante est donc :
Nathalie
Sonia
Paul
2.2.2 La commande Insert
Pour insrer un nouvel enregistrement dans la base de donnes, on utilise la commande INSERT suivant la syntaxe :
INSERT INTO nomTable
VALUES (valeurChamp1, valeurChamp2, ...)

Ex. : INSERT INTO infos VALUES ('Jean', 20, 'M', 'Montpellier', 'Hrault')
Il faut insrer autant de valeurs quil y a de champs dans la table, sinon il faut indiquer les champs que lon remplit
la suite du nom de la table suivant la syntaxe :
INSERT INTO nomTable (nomChamp1 [, nomChamp2 [, ...])
VALUES (valeurChamp1 [, valeurChamp2 [, ...]])

Ex. : INSERT INTO infos (prenom, age, ville) VALUES ('Jean', 20, 'Montpellier')
2.2.3 La commande Delete
Pour effacer un enregistrement, on utilise la commande DELETE suivant la syntaxe :
DELETE FROM nomTable
WHERE criteres
Ex. : DELETE FROM infos WHERE prenom='Nathalie'
2.2.4 La commande Update
Pour mettre jour un enregistrement, on utilise la commande UPDATE suivant la syntaxe :
UPDATE nomTable
SET champAModifier1=nouvelleValeur1 [, champAModifier2=nouvelleValeur2 [, ...]]
WHERE criteres
Ex. : UPDATE infos SET age=22 WHERE prenom='Jean'
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
9 / 18
2.3 COMMANDES DE GESTION DE BASE
2.3.1 La commande Create
La commande CREATE permet de crer une base suivant la syntaxe CREATE DATABASE nomBase.
Elle permet galement de crer une table en dfinissant le nom des champs ainsi que le type de chacun dentre eux
suivant la syntaxe :
CREATE TABLE nomTable (nomChamp1 type_champ1 [, nomChamp2 type_champ2 [, ...]]).

Les diffrents types de champs possibles sont : CHAR, VARCHAR, INT, etc.
1
.
Ex. : CREATE DATABASE cours_php
CREATE TABLE etatcivil
(prenom VARCHAR(50), age INT, sexe CHAR(1), ville VARCHAR(50))
CREATE TABLE depts (ville VARCHAR(50), departement INT)

Nb : Le nombre indiqu entre parenthses aprs le type du champ correspond sa longueur. Ex. : VARCHAR(50)
indique un champ de type chane de caractres variable dune longueur de 50 caractres.
2.3.2 La commande Drop
La commande DROP, utilise avec la syntaxe DROP DATABASE nomBase, permet deffacer une base ; utilise avec
la syntaxe DROP TABLE nomTable, elle permet deffacer une table.

Ex. : DROP TABLE etatcivil
DROP DATABASE cours_php
2.4 LES JOINTURES
Une jointure est une mise en relation de deux tables qui sont jointes par un champ commun de type clef ; cest-
-dire que lune des tables possde un champ qui est aussi la clef primaire dune autre table. Dans la premire table, ce
champ est alors qualifi de clef externe.
Ex. : Table etatcivil :
prenom age sexe ville
Table depts :
ville departement
Le champ ville est la clef primaire de la table depts, et est aussi prsent dans la table etatcivil ; le champ ville
est donc une clef externe pour la table etatcivil.
On ralise une jointure avec la commande SELECT en mentionnant les 2 tables concernes suivant la syntaxe :
SELECT champAExtraire1 [, champAExtraire2 [, ...]]
FROM nomTableX, nomTableY
WHERE criteres
Les champs extraire et utiliss ventuellement dans le ou les critres peuvent tre indiffremment de lune ou
lautre des deux tables.

Gnralement on spcifie explicitement la table laquelle appartient le champ extraire suivant la syntaxe
nomTable.nomChamp.
Le critre contient au moins toujours une clause qui met en uvre la jointure suivant la syntaxe
WHERE tableX.clef_externe = tableY.clef_primaire. Sans cette clause, la jointure ne sera pas ralise.
Dautres clauses de slection peuvent tre ajoutes.

1
cf. A.2.1.
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
10 / 18
Ex. : Extraire la liste des personnes de plus de 18 ans associes au nom de leur dpartement.

SELECT etatcivil.prenom, depts.departement
FROM etatcivil, depts
WHERE etatcivil.ville = depts.ville
AND etatcivil.age > 18
etatcivil.ville = depts.ville est la clause de jointure ; etatcivil.age > 18 est une clause de
slection.
2.5 LES SOUS-REQUTES
Une sous-requte permet de pr-slectionner un ensemble dlments dune table ou dutiliser les rsultats obtenus
pour y effectuer une autre slection.

Une sous-requte scrit exactement comme une requte et donne le mme type de rsultats, soit donc une sous-
table. Cest au sein des donnes de cette sous-table quest alors effectue la slection de la requte principale.

Ex. : Savoir qui est plus jeune que lge moyen des personnes recenses.

SELECT prenom FROM infos WHERE age < (SELECT AVG(age) FROM infos)

La sous-requte est SELECT AVG(age) FROM infos, elle renvoie la moyenne (AVG) des valeurs
slectionnes (SELECT age from INFOS) soit donc la moyenne des ges de tout le monde.

Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
11 / 18
A MOTS-CLEF, DLIMITEURS ET
OPRATEURS DU LANGAGE SQL
A.1 ORDRE ALPHABTIQUE
D toutes les diffrences entre les diffrents langages SQL utiliss par les diffrents SGBDR on parle parfois
de dialecte SQL ; cette liste est donc non-exhaustive.

A ADD ALL ALTER AND ANY AS
ASC (AUTOINC) AVG
B BETWEEN (BIGINT) (BINARY) BIT (BOOLEAN) (BYTES)
C CASCADE CHAR CHARACTER CHECK COLUMN COMMIT
CONSTRAINT COUNT CREATE
D DATABASE DATE DATETIME DEC DECIMAL DEFAULT
DELETE FROM DESC DISTINCT DOUBLE PRECISION DROP
E ESCAPE EXCEPT EXISTS
F FLOAT FOREIGN KEY FROM
G GRANT GROUP BY
H HAVING
I IN INDEX INSERT INTO INT INTEGER INTERSECT
INTERVAL IS NOT NULL IS NOT OF IS NULL IS OF
L LIKE (LOGICAL)
M MAX (MEDIUMINT) MIN MINUS MODIFY
N NATIONAL NCHAR NO ACTION NOCHECK NOT NOT NULL
NULL NUMERIC
O ON ON DELETE ON UPDATE OR ORDER BY
P PRIMARY KEY
R REAL REFERENCES REVOKE ROLE ROLLBACK
S SELECT SET (SHOW) SMALLINT SOME SUM
T TABLE (TEXT) TIME TIMESTAMP (TINYINT) TO
TRUNCATE
U UNION UNION ALL UNIQUE (UNSIGNED) UPDATE USER
V VALUES VARCHAR VARYING VIEW
W WHERE WITH CHECK
WITH
NOCHECK
(...) : non-normalis.

Les mots-clef sont rservs, donc inutilisables comme noms de base, table, champ, etc.

Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
12 / 18
A.2 CATGORIES
A.2.1 Dfinition des donnes
Mots-clef LDD (Langage de Dfinition de Donnes
1
) : gestion de la structure des bases et des tables.

ADD
Clause dajout dun champ une table, ou dune contrainte un champ (cf. ALTER).
ALTER Modification dune base, dune table ou dune vue.
ALL
Dsignation de toutes les contraintes activer ou dsactiver (cf. ALTER TABLE / CHECK/
NOCHECK CONSTRAINT).
AS
Clause de cration dune vue ( associer avec CREATE ; cf. VIEW).
ASC
Clause dordonnancement normal dune liste ordonne ( associer avec CREATE INDEX / ON ;
cf. DESC) par dfaut.
CHECK
Activation dune ou plusieurs contrainte(s) (cf. ALTER TABLE et CONSTRAINT).
COLUMN
Dsignation dun champ (cf. ALTER).
CONSTRAINT
Dsignation dune contrainte de champ (cf. ALTER TABLE / CHECK/NOCHECK).
CREATE Cration dune base, dune table ou dune vue.
DATABASE
Dsignation dune base ( associer avec ALTER, CREATE, ou DROP).
DEFAULT Modificateur de spcification dune valeur par dfaut dun champ.
DESC
Clause dordonnancement inverse dune liste ordonne ( associer avec CREATE INDEX / ON ;
cf. ASC).
DROP
Suppression dune base, dune table ou dune vue / Clause de suppression dun champ, ou
dune contrainte (cf. ALTER).
INDEX
Dsignation dun index : liste ordonne dun ou plusieurs champ(s) dune table ( associer avec
ALTER, CREATE, ou DROP ; cf. ON).
MODIFY
Clause de modification dun champ dune table, ou dune contrainte (cf. ALTER).
NOCHECK
Dsactivation dune ou plusieurs contrainte(s) (cf. ALTER TABLE et CONSTRAINT).
ON
Clause de dsignation de la table et du ou des champ(s) sur lesquels construire un index (
associer avec CREATE INDEX).
VIEW
Dsignation dune vue : table virtuelle rsultant de lexcution dune requte ( associer avec
ALTER, CREATE, DROP, ou TRUNCATE ; cf. AS).
TABLE
Dsignation dune table ( associer avec ALTER, CREATE, DROP, ou TRUNCATE).
TRUNCATE Suppression du contenu dune table ou dune vue.
WITH CHECK
Activation dune contrainte ajoute un champ (cf. ALTER TABLE et ADD).
WITH
NOCHECK
Dsactivation dune contrainte ajoute un champ (cf. ALTER TABLE et ADD).
Contraintes de champs.

CASCADE
Clause dtendue de modification ou suppression de la clef trangre dune table la clef
rfrente de lautre table (cf. FOREIGN KEY / REFERENCES / ON DELETE/ON UPDATE).
CHECK
Rgle respecter pour une contrainte de champ (cf. CONSTRAINT).
CONSTRAINT
Dfinition dune contrainte de champ (cf. CHECK).
FOREIGN KEY
Modificateur de dsignation dun champ en tant que clef trangre (cf. REFERENCES).
NO ACTION
Clause de non-tendue de modification ou suppression de la clef trangre dune table la clef
rfrente de lautre table (cf. FOREIGN KEY / REFERENCES / ON DELETE/ON UPDATE).
NOT NULL Modificateur dobligation daffectation dune valeur un champ (valeur non nulle).
NULL Modificateur de possibilit daffectation dune valeur nulle un champ.
ON DELETE
Clause daction effectuer lors de la suppression dune clef trangre ( associer avec FOREIGN
KEY / REFERENCES ; cf. CASCADE et NO ACTION).
ON UPDATE
Clause daction effectuer lors de la modification dune clef trangre ( associer avec
FOREIGN KEY / REFERENCES ; cf. CASCADE et NO ACTION).
PRIMARY KEY Modificateur de dsignation dun champ en tant que clef primaire.
REFERENCES
Dsignation de la table et du champ associer une clef trangre (cf. FOREIGN KEY).
UNIQUE Modificateur dobligation de valeur non-redondante dun champ.
1
DDL : Data Definition Language (eng).
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
13 / 18
Types de donnes alphanumriques.

CHAR
Valeur alphanumrique de longueur fixe avec indication de la longueur (identique
CHARACTER).
CHARACTER
Valeur alphanumrique de longueur fixe avec indication de la longueur (identique CHAR).
NATIONAL
Dpendance par rapport au jeu de caractres du pays local ( associer avec BIT, CHAR ou
CHARACTER : identique NCHAR).
NCHAR
Valeur alphanumrique de longueur fixe dpendant du jeu de caractres du pays local
(identique NATIONAL CHAR et NATIONAL CHARACTER).
VARCHAR
Valeur alphanumrique de longueur variable avec indication ventuelle de la longueur
maximale (identique CHAR VARYING, et CHARACTER VARYING).
VARYING
Longueur variable avec indication ventuelle de la longueur maximale ( associer avec BIT,
CHAR ou CHARACTER : identique VARCHAR).
Types de donnes numriques.

BIT Chane de bits de longueur fixe.
DEC
Dcimal avec indication des nombres de chiffres total et dcimal (identique DECIMAL et
NUMERIC).
DECIMAL
Dcimal avec indication des nombres de chiffres total et dcimal (identique DEC et NUMERIC).
DOUBLE
PRECISION
Rel double prcision avec indication du nombre de chiffres total.
FLOAT Rel avec indication des nombres de chiffres total et dcimal.
INT
Entier sur 4 octets (identique INTEGER).
INTEGER
Entier sur 4 octets (identique INT).
NUMERIC
Dcimal avec indication des nombres de chiffres total et dcimal (identique DEC et DECIMAL).
REAL Rel simple prcision avec indication du nombre de chiffres dcimal.
SMALLINT Entier sur 2 octets.
Types de donnes temporels.

DATE Date.
DATETIME Date et heure formates.
INTERVAL Intervalle de date et de temps.
TIME Heure.
TIMESTAMP Date et heure.
Types de donnes non-normaliss.

AUTOINC Entier incrmentation automatique.
BIGINT Entier sur 8 octets.
BINARY
Chane de bits de longueur variable (identique BYTES).
BOOLEAN
Boolen (identique LOGICAL).
BYTES
Chane de bits de longueur variable (identique BINARY).
LOGICAL
Boolen (identique BOOLEAN).
MEDIUMINT Entier sur 3 octets.
TEXT
Valeur alphanumrique de longueur variable avec indication ventuelle de la longueur
maximale (identique VARCHAR, CHAR VARYING et CHARACTER VARYING).
TINYINT Entier sur 1 octet.
UNSIGNED Type numrique sign (modificateur de type).
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
14 / 18
A.2.2 Manipulation des donnes
Mots-clef LMD (Langage de Manipulation de Donnes
1
) : gestion du contenu des tables.

ALL
Clause de slection de tous les enregistrements dune consultation ( associer avec SELECT /
FROM ; cf. DISTINCT).
AS
Clause de spcification dalias (/synonyme) dune table ou dun champ ( associer avec SELECT
/ FROM).
ASC
Clause dordonnancement normal dune extraction selon un ou plusieurs champ(s) ( associer
avec SELECT / FROM / ORDER BY ; cf. DESC) par dfaut.
DELETE FROM
Effacement dun ou plusieurs enregistrement(s) dune table suivant un ou plusieurs critre(s)
ventuels.
DESC
Clause dordonnancement inverse dune extraction selon un ou plusieurs champ(s) ( associer
avec SELECT / FROM / ORDER BY ; cf. ASC).
DISTINCT
Clause de slection de tous les enregistrements distincts dune consultation en excluant les
redondances ( associer avec SELECT / FROM ; cf. ALL).
FROM
Dsignation de la table consulter (cf. SELECT).
GROUP BY
Clause de regroupement des rsultats dune consultation selon un ou plusieurs champ(s) (
associer avec SELECT / FROM et AVG, COUNT, MAX, MIN ou SUM ; cf. ASC, DESC et HAVING).
HAVING
Clause de consultation spcifique au regroupement des rsultats dune consultation ( associer
avec SELECT / FROM / GROUP BY).
INSERT
Insertion dun nouvel enregistrement dans une table avec dsignation ventuelle des champs de
destination (cf. VALUES).
ORDER BY
Clause dordonnancement normal ou inverse dune extraction selon un ou plusieurs champ(s) (
associer avec SELECT / FROM ; cf. ASC, DESC).
SELECT
Consultation dun ou plusieurs champs parmi tous les enregistrements dune table suivant un ou
plusieurs critre(s) ventuels (cf. FROM).
SET
Dsignation du ou des champ(s) modifier et de la ou des nouvelle(s) valeur(s) (cf. UPDATE).
UPDATE
Mise jour dun ou plusieurs champ(s) de un ou plusieurs enregistrement(s) suivant un ou
plusieurs critre(s) (cf. SET).
VALUES
Dsignation des valeurs des champs du nouvel enregistrement insrer dans une table (cf.
INSERT et INTO).
WHERE
Clause de spcification dun ou plusieurs critre(s) de consultation ( associer avec SELECT /
FROM).
Fonctions dagrgat des rsultats dune consultation.

AVG
Calcul de la moyenne des valeurs dun champ ( associer avec SELECT / FROM ou SELECT /
FROM / ORDER BY ; cf. COUNT, MAX, MIN et SUM).
COUNT
Comptabilisation du nombre denregistrements dun champ ( associer avec SELECT / FROM ou
SELECT / FROM / ORDER BY ; cf. AVG, MAX, MIN et SUM).
MAX
Renvoi le maximum des valeurs dun champ ( associer avec SELECT / FROM ou SELECT /
FROM / ORDER BY ; cf. AVG, COUNT, MIN et SUM).
MIN
Renvoi le minimum des valeurs dun champ ( associer avec SELECT / FROM ou SELECT / FROM
/ ORDER BY ; cf. AVG, COUNT, MAX et SUM).
SUM
Calcul de la somme des valeurs dun champ ( associer avec SELECT / FROM ou SELECT / FROM
/ ORDER BY ; cf. AVG, COUNT, MAX et MIN).
Clauses de jointures : FULL OUTER JOIN, INNER JOIN, LEFT OUTER JOIN, ON, RIGHT OUTER JOIN, SELF
JOIN.
1
DML : Data Manipulation Language (eng).
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
15 / 18
A.2.3 Gestion des droits
Mots-clef LCD (Langage de Contrle de Donnes
1
) : gestion des privilges des utilisateurs (droits daccs).

ALTER Modification dun utilisateur ou dun rle.
CREATE Cration dun utilisateur ou dun rle.
DROP Suppression dun utilisateur ou dun rle.
GRANT
Attribution dun ou plusieurs privilge(s) un utilisateur ou un rle sur des instructions ou des
objets structurels (cf. ON et TO).
FROM
Dsignation du ou des utilisateur(s) concern(s) par la rvocation de privilges (cf. REVOKE ;
identique TO).
ON
Dsignation de ou des objet(s) concern(s) par lallocation de privilges (cf. GRANT et REVOKE).
REVOKE
Rvocation dun ou plusieurs privilge(s) un utilisateur ou un rle sur des instructions ou
des objets structurels (cf. ON et TO).
ROLE
Dsignation dun rle (catgories dutilisateurs) ( associer avec ALTER, CREATE, ou DROP).
TO
Dsignation du ou des utilisateur(s) concern(s) par lallocation ou la rvocation de privilges
(cf. GRANT et REVOKE).
USER
Dsignation dun utilisateur ( associer avec ALTER, CREATE, ou DROP).
Mais aussi : ACCOUNT, ALL, ALL PRIVILEGES, AS, BY, DEFAULT TABLESPACE, DIRECTORY, EXTERNALLY,
GLOBALLY, IDENTIFIED, IDENTIFIED BY, JAVA, NOT IDENTIFIED, PASSWORD EXPIRE, PROFILE, PUBLIC,
QUOTA, UNLIMITED, USING, WITH GRANT OPTION,
A.2.4 Gestion des transactions
Mots-clef LCT (Langage de Contrle de Transactions
2
) : gestion des transactions (automatisation dordres).

COMMIT Sauvegarde des modifications effectues durant la session courante.
ROLLBACK Annulation des modifications effectues depuis le dbut de la session courante.
A.3 DLIMITEURS ET OPRATEURS
A.3.1 Dlimiteurs
' '
Encadre une valeur alphanumrique (identique " ").
" "
Encadre une valeur alphanumrique (identique ' ').
( ) Encadre une liste de champs ou de valeurs.
[ ] Encadre et dlimite le nom dune base, dune table ou dun champ.
, Spare deux lments dune liste.
1
DCL : Data Control Language (eng).
2
TCL : Transaction Control Language (eng).
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
16 / 18
A.3.2 Oprateurs de critres
= galit.
!=
Diffrence (identique <> et ^=).
<>
Diffrence (identique != et ^=).
^=
Diffrence (identique != et <>).
< Infriorit stricte.
<= Infriorit ou galit.
> Supriorit stricte.
>= Supriorit ou galit.
!<
Non-infriorit stricte (identique >=).
!>
Non-supriorit stricte (identique <=).
ALL
Validation du test pour chaque valeur de la premire oprande avec toutes les valeurs de la
seconde oprande (cf. ANY et SOME).
AND ET logique.
ANY
Validation du test pour chaque valeur de la premire oprande avec au moins lune des valeurs
des deux expressions (cf. ALL ; identique SOME).
BETWEEN
Test dappartenance un intervalle ( associer avec AND).
ESCAPE
Dsignation du caractre dchappement dans le test de conformit avec une expression
rationnelle (cf. LIKE).
EXISTS Test de lexistence dans loprande.
IN Validation du test pour toutes les valeurs communes aux deux oprandes.
IS NOT NULL Test de non-nullit.
IS NULL Test de nullit.
IS NOT OF Test de labsence dune donne du type prcis.
IS OF Test de la prsence dune donne du type prcis.
LIKE
Test de correspondance avec une expression relationnelle, avec dsignation ventuelle du
caractre dchappement (cf. ESCAPE).
NOT NON logique.
OR OU logique.
SOME
Validation du test pour chaque valeur de la premire oprande avec au moins lune des valeurs
des deux expressions (cf. ALL ; identique ANY).
UNIQUE Test de labsence de doublons.
A.3.3 Oprateurs de requtes
EXCEPT
Rsultats issus de la premire requte et absents de la seconde (identique MINUS).
INTERSECT Rsultats communs de deux requtes.
MINUS
Rsultats issus de la premire requte et absents de la seconde (identique EXCEPT).
UNION Rsultats combins de deux requtes, doublons exclus.
UNION ALL Rsultats combins de deux requtes, doublons inclus.
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
17 / 18
B RFRENCE DU LANGAGE SQL
B.1 HISTORIQUE
1970 : Introduction par T. Codd de lalgbre relationnelle dans le traitement automatique de linformation,
permettant la formalisation des oprations sur les ensembles, produisant ainsi un futur modle utilis par les
bases de donnes relationnelles.
1972 : Dbut du projet INGRES par lquipe de G. Wong luniversit de Berkeley.
1975 : Cration de QUIEL comme outil dinterrogation des donnes par lquipe de G. Wong luniversit de
Berkeley.
1976 : Cration par P. Chen du modle entit-relation comme outil de modlisation dans le traitement automatique
des donnes.
1976 : Cration du langage dinterrogation SEQUEL par IBM via son projet System R.
1979 : SQL 1.0.
1986 : Standardisation amricaine du langage sous lappellation SQL-ANSI, nomm aussi SQL-86.
1989 : Standardisation internationale du langage sous lappellation SQL-ISO.
1992 : SQL 2.0 pour SQL-ANSI et SQL-ISO, nomm SQL-92.
1999 : volution de SQL 2.0 pour SQL-ANSI et SQL-ISO, nomm SQL-99.
2003 : SQL 3.0, nomm SQL:2003.

Lavenir du langage en tant que tel est trs incertain ; son successeur, le langage XQL (XML Query Language) vise
la coopration maximale avec le langage XML (eXtended Markup Language), issu du web.
B.2 MODLISATION
Langages > Bases de donnes et langage SQL > Cours v1.1.3.1 07/05/2010
18 / 18
C BIBLIOGRAPHIE
Laltruiste, Le langage SQL, http://www.laltruiste.com, 2006 ;

Wazir Dino, Cours Java JDBC, TS IRIS LEGT Louis Modeste-Leroy vreux, 2002 ;

Dveloppez.com, Langage SQL, http://sql.developpez.com/, 2006 ;

Heute Thomas & Damien ToutEstFacile, SQL facile, http://www.sqlfacile.com/, 2007 ;

Muir Christian, Requtes SQL, http://pagesperso.scola.ac-paris.fr/cmuir/sql_01.htm, 2006 ;

Frdric OraFrance , Syntaxe SQL, http://orafrance.free.fr, 2003 ;

Grange Marc, Applications des BDD en Sciences Humaines et Sociales,
http://nte-socio.univ-lyon2.fr/Marc_Grange/IntroBD.htm, 2006 ;

Wikipdia lencyclopdie libre, http://fr.wikipedia.org, 2006.