Les commandes select et FROM sont utilsées pour sélectionner des tables dans une base de données.
Il est également possible de sélectionner de un à plusieurs champs en séparant les noms de champs ou de colonnes par une virgule. Pour sélectionner tous les champs, il suffit d'utiliser une étoile à la place des nomds de champs.
select nom_champ,..., nom_champN FROM nom_table
Librairie | |||
---|---|---|---|
ISBN | Livre | Editeur | Prix |
1565926978 | ORACLE SQL : THE ESSENTIAL REFERENCE (EN ANGLAIS) | O'REILLY | 330.00 |
1565929489 | ORACLE SQL* LOADER : THE DEFINITIVE GUIDE (EN ANGLAIS) | O'REILLY | 286.00 |
2212092857 | INITIATION A SQL - COURS ET EXERCICES CORRIGES | EYROLLES | 183.00 |
2744009296 | SQL | CAMPUSPRESS FRANCE | 62.00 |
2744090034 | MAITRISEZ SQL | WROX PRESS | 286.00 |
2840725029 | SQL | ENI | 140.00 |
2840828987 | KIT DE FORMATION MICROSOFT SQL SERVER 2000 ADMINISTRATION SYSTEME | MICROSOFT PRESS | 284.00 |
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
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 la commande par défaut de select.
select DISTINCT nom_champ FROM nom_table
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
La commande WHERE pose une condition dans la requête de sélection. L'expression conditionnelle peut être construite à l'aide de plusieurs prédicats constitués d'opérateurs de comparaisons (= | <> | != | > | > = | !> | < | <= | !<)et séparés par des opérateurs booléens AND, OR ou NOT.
select "nom_champ" FROM "nom_table" WHERE "condition"
select Livre FROM Librairie WHERE Prix < 200 ' retourne INITIATION A SQL - COURS ET EXERCICES CORRIGES SQL SQL
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
select Editeur, SUM(Prix) FROM Librairie GROUP BY Editeur ' retourne
O'REILLY 616.00 EYROLLES 183.00 CAMPUSPRESS FRANCE 62.00 WROX PRESS 286.00 ENI 140.00 MICROSOFT PRESS 284.00
La commande HAVING spécifie un critère de recherche pour un groupe ou une fonction d'agrégation. HAVING est génralement 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"
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
Les alias concourrent à 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 Alias_champ FROM nom_table AS Alias_table
select L.Editeur Edi, SUM(L.Prix) F FROM Librairie As L GROUP BY Edi HAVING F > 200 ' retourne
O'REILLY 616.00 WROX PRESS 286.00 MICROSOFT PRESS 284.00
Les commandes de jointures de tables donnent la possibilité d'appliquer des requêtes sur plusieurs tables d'une base de données.
select tab.nom_champ FROM nom_table As tab [INNER | {{LEFT | RIGHT | FULL } [ OUTER]}] JOIN nom_table2 As tab2 ON Condition
La condition de la commande ON permet de comparer les tables jointes par l'intermédiaire de champs dont les valeurs sont identiques et comparables.
INNER JOIN (option par défaut) indique toutes les paires correspondantes des lignes renvoyées et supprime les lignes n'ayant pas de correspondance entre les deux tables.
FULL OUTER JOIN indique qu'une ligne de la table de gauche ou de droite, ne respectant pas la condition de jointure, est comprise dans le jeu de résultats et que les colonnes de sortie correspondant à l'autre table comportent des valeurs NULL.
LEFT OUTER JOIN indique que toutes les lignes de la table de gauche ne respectant pas la condition de jointure sont incluses dans le jeu de résultats, et que les colonnes de sortie de l'autre table ont des valeurs NULL en plus de toutes les lignes renvoyées par la jointure interne.
RIGHT OUTER JOIN indique que toutes les lignes de la table de droite ne respectant pas la condition de jointure sont comprises dans le jeu de résultats, et que les colonnes de sortie correspondant à l'autre table ont des valeurs NULL en plus de toutes les lignes renvoyées par la jointure interne.
Edition | |
---|---|
Editeur | Adresse URL |
O'REILLY | http://www.oreilly.com/ |
CAMPUSPRESS FRANCE | http://www.campuspress.fr/ |
WROX PRESS | http://www.wrox.com/ |
MICROSOFT PRESS | http://www.microsoft.com/mspress/ |
select L.ISBN, L.Editeur, E.Adresse FROM Librairie As L INNER JOIN Edition As E ON L.Editeur = E.Editeur
' retourne | ||
ISBN | Editeur | Adresse |
---|---|---|
1565926978 | O'REILLY | http://www.oreilly.com/ |
1565929489 | O'REILLY | http://www.oreilly.com/ |
2744009296 | CAMPUSPRESS FRANCE |
http://www.campuspress.fr/ |
2744090034 | WROX PRESS | http://www.wrox.com/ |
2840828987 | MICROSOFT PRESS |
http://www.microsoft.com/mspress/ |
select L.ISBN, L.Editeur, E.Adresse FROM Librairie As L LEFT OUTER JOIN Edition As E ON L.Editeur = E.Editeur
' retourne | ||
ISBN | Editeur | Adresse |
---|---|---|
1565926978 | O'REILLY | http://www.oreilly.com/ |
1565929489 | O'REILLY | http://www.oreilly.com/ |
2212092857 | EYROLLES | NULL |
2744009296 | CAMPUSPRESS FRANCE |
http://www.campuspress.fr/ |
2744090034 | WROX PRESS | http://www.wrox.com/ |
2840725029 | ENI | NULL |
2840828987 | MICROSOFT PRESS |
http://www.microsoft.com/mspress/ |
Les fonctions d'agrégation accomplissent un calcul sur plusieurs valeurs et retournent un résultat et sont souvent utilisées avec les commandes GROUP BY et select.
Hormis la fonction COUNT, les fonctions d'agrégation ne tiennent pas compte des valeurs NULL.
Fonction | Description |
---|---|
AVG | retourne la moyenne des valeurs d'un groupe. |
BINARY_CHECKSUM | retourne la valeur totale de contrôle binaire calculée à partir d'une ligne d'une table ou d'une liste d'expressions. |
CHECKSUM | retourne la valeur de checksum calculée dans une ligne d'une table ou dans une liste d'expressions. |
CHECKSUM_AGG | retourne le checksum des valeurs d'un groupe. |
COUNT | retourne le nombre d'éléments figurant dans un groupe. |
COUNT_BIG | retourne le nombre d'éléments figurant dans un groupe. |
MAX | retourne la valeur maximale de l'expression. |
MIN | retourne la valeur minimale de l'expression. |
SUM | retourne la somme de toutes les valeurs |
STDEV | retourne l'écart type de toutes les valeurs de l'expression spécifiée. |
STDEVP | retourne l'écart type de remplissage pour toutes les valeurs de l'expression spécifiée. |
var | retourne la variance de toutes les valeurs de l'expression spécifiée. |
VARP | retourne la variance de remplissage pour toutes les valeurs de l'expression spécifiée. |
select COUNT(Livre) FROM Librairie ' retourne 7 SELECT SUM(Prix) FROM Librairie ' retourne 1 571