Le langage SQL (1ere Partie).
Le Langage S.Q.L. (Structured Query Language). 1ère Partie : Les ... KIT DE
FORMATION MICROSOFT SQL SERVER 2000 ADMINISTRATION SYSTEME.
Part of the document
Le Langage S.Q.L. (Structured Query Language)
1ère Partie : Les requêtes de sélection 1/ Introduction
Les requêtes de sélection correspondent à des interrogations sur une base
de données afin d'en extraire des informations.
Le langage DQL (Data Query Language) propose à cet effet une commande
essentielle dans SQL, l'instruction SELECT.
L'instruction SELECT est associée à diverses clauses obligatoires ou
optionnelles en vue d'affiner la sélection de données.
Les clauses principales de l'instruction SELECT permettent de désigner une
table (FROM), d'appliquer des critères de sélection (WHERE), de regrouper
des informations (GROUP BY) selon d'éventuelles conditions (HAVING),
d'ordonner ces mêmes informations (ORDER BY) dans un ordre descendant (DSC)
ou ascendant (ASC) ou encore de joindre plusieurs tables (JOIN). 2/ Les commandes SELECT et FROM
Les commandes SELECT et FROM sont utilisées pour sélectionner des tables
dans une base de données.
SELECT * | { [ALL | DISTINCT] nom_colonne,...,nom_colonneN }
FROM nom_table
WHERE Condition
Pour sélectionner tous les champs d'une table, il suffit d'utiliser une
étoile (*) à la place des noms de champs.
Il est possible de sélectionner de un à plusieurs champs en séparant les
noms de champs ou de colonnes par une virgule.
Les clauses ALL par défaut et DISTINCT permettent respectivement de
sélectionner tous les enregistrements d'une colonne et de ne prendre en
compte chaque enregistrement distinct, soit sans doublons.
La clause FROM cible une ou plusieurs tables à partir desquelles
l'extraction des données doit être opérée.
SELECT nom_table.nom_colonne,..., nom_tableN.nom_colonneN
FROM nom_table,..., nom_tableN
La clause WHERE pose une condition dans la sélection des informations.
SELECT * FROM employe WHERE nom = 'DUPONT'
Les requêtes de sélection peuvent également être utilisées comme sous-
requêtes dans une clause conditionnelle WHERE.
SELECT tab1.nom_champ,..., tab1.nom_champN
FROM nom_table AS tab1
WHERE tab1.nom_champ = (SELECT tab2.nom_champ
FROM nom_table
AS tab2
WHERE
tab2.nom_champ = valeur)
Les sous-requêtes permettent de sélectionner un premier jeu
d'enregistrements dans une table tierce qui servira de condition de
sélection dans la requête principale.
Exemple |Librairie |
|ISBN |Livre |Editeur |Prix |
|156592697|ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS)|O'REILLY |330.0|
|8 | | |0 |
|156592948|ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN |O'REILLY |286.0|
|9 |ANGLAIS) | |0 |
|221209285|INITIATION A SQL - COURS ET EXERCICES CORRIGES |EYROLLES |183.0|
|7 | | |0 |
|274400929|SQL |CAMPUSPRESS |62.00|
|6 | |FRANCE | |
|274409003|MAITRISEZ SQL |WROX PRESS |286.0|
|4 | | |0 |
|284072502|SQL |ENI |140.0|
|9 | | |0 |
|284082898|KIT DE FORMATION MICROSOFT SQL SERVER 2000 |MICROSOFT PRESS |284.0|
|7 |ADMINISTRATION SYSTEME | |0 |
SELECT Livre FROM Librairie
' retourne
ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS)
ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS)
INITIATION A SQL - COURS ET EXERCICES CORRIGES
SQL
MAITRISEZ SQL
SQL
KIT DE FORMATION MICROSOFT SQL
SERVER 2000 ADMINISTRATION SYSTEME 3/ Les commandes DISTINCT et ALL
La commande DISTINCT sélectionne chaque élément distinct d'une colonne de
données.
La commande ALL indique que les doublons peuvent apparaître dans le
résultat d'une requête, elle constitue une commande par défaut de SELECT.
SELECT DISTINCT | ALL nom_champ FROM nom_table Exemple SELECT DISTINCT Livre FROM Librairie
' retourne
ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS)
ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS)
INITIATION A SQL - COURS ET EXERCICES CORRIGES
SQL
MAITRISEZ SQL
KIT DE FORMATION MICROSOFT SQL
SERVER 2000 ADMINISTRATION SYSTEME
SELECT ALL Livre FROM Librairie
' retourne
ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS)
ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS)
INITIATION A SQL - COURS ET EXERCICES CORRIGES
SQL
SQL
MAITRISEZ SQL
KIT DE FORMATION MICROSOFT SQL
SERVER 2000 ADMINISTRATION SYSTEME 4/ Les commandes d'alias
Les alias concourent à améliorer la lisibilité d'une requête. Il existe
deux types d'alias : les alias de tables et les alias de champs. Les alias
peuvent également s'appliquer à une fonction d'agrégation retournant des
données sous forme de colonnes.
SELECT Alias_table.nom_champ AS Alias_champ
FROM nom_table AS Alias_table
La clause AS affectant un alias à une table ou une colonne, peut être
remplacer par un simple espace blanc.
SELECT Alias_table.nom_champ Alias_champ
FROM nom_table Alias_table
Le langage SQL prévoit également les synonymes de tables, de vues ou de
tout autre objet. Les synonymes permettent de dissimuler un nom de table
par un autre afin d'éviter qu'un utilisateur accède nommément à un objet
qui ne lui appartient guère.
CREATE [ PUBLIC ] SYNONYM nom_synonyme FOR objet
Les synonymes peuvent être publics (PUBLIC) donc accessibles dans toute la
base de données, et partant, par l'ensemble de ses utilisateurs ou privés
donc destinés au seul usage de son créateur et des éventuels bénéficiaires
de privilèges d'accès. Exemple
|SELECT |
|L.Editeur Edi,|
| |
|SUM(L.Prix) F |
|FROM Librairie|
|AS L |
|GROUP BY Edi |
|HAVING F > 200|
| |
| |
|' retourne | |O'REILLY |616.00 |
|O'REILLY |616.00 |
|WROX PRESS |286.00 |
|MICROSOFT PRESS |284.00 | 5/ La commande WHERE
La commande WHERE pose une condition dans la requête de sélection.
SELECT nom_champ
FROM nom_table
WHERE condition
L'expression conditionnelle peut être construite à l'aide de plusieurs
prédicats constitués d'opérateurs de comparaisons (= | | != | > | > = |
!> | < | Les chaînes de caractères sont mentionnées entre guillemets ('') ou
entre cottes ('), les dates entre dièses (#) et les valeurs numériques
directement sans aucun signe particulier.
> L'instruction BETWEEN permet de tester des plages de valeurs (souvent
utilisée pour les dates), exemple : WHERE date_commande BETWEEN #01-01-
2001# AND #07-01-2001#
6/ La clause HAVING La clause HAVING spécifie un critère de recherche pour un groupe ou une
fonction d'agrégation. HAVING est généralement utilisé avec GROUP BY, sinon
HAVING se comporte à l'instar de WHERE.
SELECT nom_champ,
Fonction_Agregation
FROM nom_table
GROUP BY nom_champ2
HAVING "Condition" Exemple
|SELECT Editeur, |
|SUM(Prix) |
|FROM Librairie |
|GROUP BY Editeur |
|HAVING SUM(Prix) > 200|
| |
| |
|' retourne |
|O'REILLY |
|616.00 |
| |
|WROX PRESS |
|286.00 |
| |
|MICROSOFT PRESS |
|284.00 |
| |
| | 7/ La commande GROUP BY La commande GROUP BY spécifie des groupes dans lesquels les lignes de
sortie doivent être placées et calcule une valeur de résumé pour chacun des
groupes si des fonctions d'agrégation sont employées avec la commande
SELECT.
SELECT nom_champ, Fonction_Agregation
FROM nom_table
GROUP BY nom_champ2
Le critère de la clause GROUP BY peut être soit le nom, soit le numéro
d'une des colonnes sélectionnées par la requête. Exemple
|SELECT Editeur, SUM(Prix)|
| |
|FROM Librairie |
|GROUP BY Editeur |
| |
|' retourn