http://sql.sh/ressources/cours-sql-sh-.pdf

 La structure de base d’une interrogation est formée des 3 clauses suivantes :

SELECT liste champ(s) 
FROM liste table(s) 
WHERE condition(s) ; 

• La clause SELECT désigne la liste des champs devant figurer dans le résultat. On parle également des champs projetés. 
• La clause FROM indique le nom de la ou des table(s) impliquée(s) dans l’interrogation. 
• La clause WHERE correspond aux conditions de sélection des champs. 
• La requête se termine par un point virgule. 
• Chaque nom de champ ou de table est séparé par une virgule.
• Les "termes" SQL s'écrivent en majuscule 
• Les noms des tables s'écrivent en majuscule 
• Les noms des champs : 1ére lettre en majuscule, le reste en minuscule. Attention, un nom ne comprend pas de caractères spéciaux, pas d'accent et pas d'espace. Seul le caractère _ est autorisé 
• Le passage à la ligne dans une requête permet de différencier les opérations

 

SQL SELECT|bleu|closed

L’utilisation la plus courante de SQL consiste à lire des données issues de la base de données. Cela s’effectue grâce à la commande SELECT, qui retourne des enregistrements dans un tableau de résultat. Cette commande peut sélectionner une ou plusieurs colonnes d’une table.
SELECT nom_du_champ FROM nom_du_tableau
Cette requête va sélectionner (SELECT) le champ « nom_du_champ » provenant (FROM) du tableau appelé « nom_du_tableau ».
• La liste des champs peut comporter des noms de champs, des fonctions SQL prédéfinies, des expressions arithmétiques (/,*,-,+). 
• DISTINCT (ou UNIQUE) signifie que les enregistrements en double dans le résultat sont supprimés. Par défaut, tous les enregistrements même en double sont renvoyés. 
• Le symbole * à la place de la liste des champs sélectionne tous les champs de la table.

Exemple : 

SELECT PLAQUE.Nom, Prenom
FROM VEHICULE , GARAGE, PLAQUE
WHERE VEHICULE.Marque=GARAGE.Marque
AND VEHICULE.Code=PLAQUE.CodeV
AND Puissance>=100
AND GARAGE.Ville="Ailleurs";

est plus lisible que
SELECT PLAQUE.Nom, Prenom FROM VEHICULE , GARAGE, PLAQUE
WHERE VEHICULE.Marque=GARAGE.Marque AND
VEHICULE.Code=PLAQUE.CodeV AND Puissance>=100 AND GARAGE.Ville="Ailleurs";

 

 

Dans cette requête on recherche tous les noms et prénoms des propriétaires de véhicules > ou égal à 100 Cv, achetés dans un garage d'Ailleurs.

 

exemple-sql

 

 

 

La jointure
Pour réaliser l’interrogation, on a souvent besoin de champs figurant dans plusieurs tables. Il faut donc fusionner les tables soit en utilisant le produit cartésien, soit la jointure.
Le produit cartésien :

SELECT Type, Nom FROM VEHICULE, GARAGE ;
Cette requête va associer chaque Type de VEHICULE au Nom du GARAGE :

La jointure :
Le principe de la jointure est de créer un lien entre tables ayant au moins un champ en commun. Les conditions de jointure s'expriment dans la clause WHERE. La jointure est souvent faite entre clé primaire et clé étrangère. Le principe de la jointure est de vérifier l’égalité de valeur entre des champs commun de deux tables.

SELECT Type, VEHICULE.Marque, Nom, Adresse
FROM VEHICULE, GARAGE
WHERE VEHICULE.Marque=GARAGE.Marque ;