Le langage des requêtes
- Fiche de cours
- Quiz
- Profs en ligne
- Videos
- Application mobile
Objectifs : la gestion des connaissances est un
élément prépondérant pour la
performance des entreprises. C'est généralement une
base de données qui stocke ces informations. Comment
extraire des informations d'une base de données ?
Comment effectuer une projection, une sélection, une
jointure et un tri dans une requête SQL ?
1. Généralités sur SQL
a. SQL est un langage informatique
Structured Query Language (SQL) est un langage
dédié aux bases de données
relationnelles. Ce langage est utilisable avec tous
les systèmes de gestion des bases de données
relationnelles (SGBDR) : SQL Server, MySql, Access, Paradox,
Base…
Ce langage est un langage à part des autres langages informatiques car il n'a pas les mêmes possibilités d'un langage de programmation courant (C, php, java, visual basic…).
Ce langage a été créé dans les années 70 ; il est normé et a subi des révisions. La dernière datant de 2003.
Ce langage est un langage à part des autres langages informatiques car il n'a pas les mêmes possibilités d'un langage de programmation courant (C, php, java, visual basic…).
Ce langage a été créé dans les années 70 ; il est normé et a subi des révisions. La dernière datant de 2003.
b. Finalités de SQL
Le langage SQL a une triple finalité :
- c'est un langage de définition des données pour créer, modifier ou supprimer des tables ;
- c'est un langage de manipulation des données (en 1re STG, c'est cette finalité qui est étudiée) ;
- c'est un langage de protection des données attribuant des permissions en fonction des utilisateurs.
- c'est un langage de définition des données pour créer, modifier ou supprimer des tables ;
- c'est un langage de manipulation des données (en 1re STG, c'est cette finalité qui est étudiée) ;
- c'est un langage de protection des données attribuant des permissions en fonction des utilisateurs.
2. Les opérateurs relationnels et SQL
Par convention, les commandes SQL sont notées en
majuscules. La requête se termine par un
point-virgule « ; ».
a. La projection
La commande SELECT réalise une
projection. SELECT permet d'extraire des données ou de
faire des calculs sur les données d'une base. Cette
commande suivie du nom d'un champ signifie que ce champ doit
être affiché. SELECT est indissociable de la
commande FROM. FROM indique de quelle(s)
table(s) seront extraites les informations.
• Syntaxe
SELECT nom du (ou des) champ(s) à sélectionner
FROM nom de la (ou les) table(s) contenant les champs sélectionnés ;
- Exemple :
SELECT Num_client
FROM Client;
Cela signifie l'affichage des numéros client provenant de la table client.
• Les fonctions
Des fonctions peuvent être appliquées aux champs lors de la projection. Les principales fonctions sont :
- Exemple de fonction :
SELECT COUNT(Num_client)
FROM Client ;
renvoie le nombre d'enregistrements du champ Num_client
• Compléments
- L'opérateur * (étoile) permet d'afficher l'ensemble des champs d'une table. Cet opérateur permet un gain de temps lors de la saisie de la requête. En effet, sans cet opérateur, il faudrait nommer chaque champ.
Exemple : SELECT * FROM Client donne l'ensemble des champs de la table Client.
- L'opérateur AS permet de donner un nom à un champ d'une requête.
SELECT COUNT(Num_Client) AS Nombre_de_clients FROM Clients ;
Cette requête pourra avoir comme résultat :
• Syntaxe
SELECT nom du (ou des) champ(s) à sélectionner
FROM nom de la (ou les) table(s) contenant les champs sélectionnés ;
- Exemple :
SELECT Num_client
FROM Client;
Cela signifie l'affichage des numéros client provenant de la table client.
• Les fonctions
Des fonctions peuvent être appliquées aux champs lors de la projection. Les principales fonctions sont :
SUM ( ) |
renvoie la somme d'un champ |
AVG ( ) |
renvoie la moyenne d'un champ |
MAX ( ) |
renvoie la valeur maximale d'un champ |
MIN ( ) |
renvoie la valeur minimale d'un champ |
COUNT ( ) |
renvoie le nombre d'enregistrements de la table |
- Exemple de fonction :
SELECT COUNT(Num_client)
FROM Client ;
renvoie le nombre d'enregistrements du champ Num_client
• Compléments
- L'opérateur * (étoile) permet d'afficher l'ensemble des champs d'une table. Cet opérateur permet un gain de temps lors de la saisie de la requête. En effet, sans cet opérateur, il faudrait nommer chaque champ.
Exemple : SELECT * FROM Client donne l'ensemble des champs de la table Client.
- L'opérateur AS permet de donner un nom à un champ d'une requête.
SELECT COUNT(Num_Client) AS Nombre_de_clients FROM Clients ;
Cette requête pourra avoir comme résultat :
Nombre de clients |
125 |
b. La sélection (ou restriction)
La commande WHERE permet de spécifier les
enregistrements (lignes de la table) à sélectionner
(opération de restriction) en fonction d'une condition. La
condition (ou prédicat) utilise au moins un
opérateur. En présence de plusieurs conditions, les
opérateurs AND ou OR
sont utilisés.
• Syntaxe
SELECT champ(s) à afficher
FROM table contenant les champs sélectionnés
WHERE Condition ;
- Exemple :
SELECT N°_telephone
FROM Client
WHERE Nom_Client = "Dupond" ;
Cela signifie l'affichage du numéro de téléphone du client Dupond. En présence d'une chaîne de caractères, celle-ci doit être saisie entre guillemets. A notre niveau, peu importe que ce soient des guillemets doubles ou des guillemets simples (‘apostrophes’). Quant à la casse (majuscule ou minuscule), il faut la respecter. "dupond" et "DUPOND" ne sont pas identiques dans un système de gestion de bases de données relationnelles.
• Les opérateurs
Le langage SQL comme tout autre langage utilise divers opérateurs. Les catégories d'opérateurs les plus couramment utilisées sont :
- les opérateurs arithmétiques : +, -, *, /,
- les opérateurs de comparaison : <, >, =,
- les opérateurs logiques : AND, OR, NOT.
• Syntaxe
SELECT champ(s) à afficher
FROM table contenant les champs sélectionnés
WHERE Condition ;
- Exemple :
SELECT N°_telephone
FROM Client
WHERE Nom_Client = "Dupond" ;
Cela signifie l'affichage du numéro de téléphone du client Dupond. En présence d'une chaîne de caractères, celle-ci doit être saisie entre guillemets. A notre niveau, peu importe que ce soient des guillemets doubles ou des guillemets simples (‘apostrophes’). Quant à la casse (majuscule ou minuscule), il faut la respecter. "dupond" et "DUPOND" ne sont pas identiques dans un système de gestion de bases de données relationnelles.
• Les opérateurs
Le langage SQL comme tout autre langage utilise divers opérateurs. Les catégories d'opérateurs les plus couramment utilisées sont :
- les opérateurs arithmétiques : +, -, *, /,
- les opérateurs de comparaison : <, >, =,
- les opérateurs logiques : AND, OR, NOT.
c. La jointure
La jointure permet de sélectionner des données
contenues dans plusieurs tables. C'est la clé
étrangère qui va jouer la liaison entre
ces tables. Lorsque la commande FROM est suivie de plus d'un
champ, il y a au minimum un critère de jointure. La
commande WHERE est utilisée pour
matérialiser la jointure. En présence de plusieurs
jointures, l'opérateur AND est utilisé.
• Syntaxe
SELECT champ(s) à afficher
FROM tables contenant les champs sélectionnés
WHERE table1.clé primaire = table2.clé étrangère ;
- Exemple :
SELECT Nom_Client, Num_Commande
FROM Client, Commande
WHERE Client.Num_Client = Commande.Num_Client_Cde ;
Deux tables sont ici nécessaires pour afficher le nom du client et le numéro de commande. Une jointure est donc indispensable. Cette jointure signifie que les valeurs prises par le champ Num_Client (clé primaire) de la table Client doivent être égales aux valeurs prises par le champ Num_Client_Cde (clé étrangère) de la table Commande.
• Syntaxe
SELECT champ(s) à afficher
FROM tables contenant les champs sélectionnés
WHERE table1.clé primaire = table2.clé étrangère ;
- Exemple :
SELECT Nom_Client, Num_Commande
FROM Client, Commande
WHERE Client.Num_Client = Commande.Num_Client_Cde ;
Deux tables sont ici nécessaires pour afficher le nom du client et le numéro de commande. Une jointure est donc indispensable. Cette jointure signifie que les valeurs prises par le champ Num_Client (clé primaire) de la table Client doivent être égales aux valeurs prises par le champ Num_Client_Cde (clé étrangère) de la table Commande.
d. Le tri
La commande ORDER BY permet d'effectuer un tri.
ASC signifie un tri croissant et DESC signifie un tri
décroissant. Par défaut, le tri est croissant.
• Syntaxe
SELECT nom du (ou des) champ(s) à sélectionner
FROM nom de la (ou les) table(s) contenant les champs sélectionnés
ORDER BY nom du champ sur le quel s'effectue le tri ;
- Exemple :
SELECT Nom_client, Num_client
FROM Client
ORDER BY Nom_client ;
Cela signifie l'affichage des numéros et des noms des clients par ordre alphabétique.
• Syntaxe
SELECT nom du (ou des) champ(s) à sélectionner
FROM nom de la (ou les) table(s) contenant les champs sélectionnés
ORDER BY nom du champ sur le quel s'effectue le tri ;
- Exemple :
SELECT Nom_client, Num_client
FROM Client
ORDER BY Nom_client ;
Cela signifie l'affichage des numéros et des noms des clients par ordre alphabétique.
L'essentiel
SQL est un langage permettant, entre autres, d'interroger et de modifier une base de données. Le langage SQL utilise des commandes.
Une projection s'effectue en SQL avec la commande SELECT…FROM…
Une sélection (ou restriction) s'effectue avec la commande WHERE.
Quand une requête nécessite plusieurs tables, une jointure est nécessaire. Cette jointure se matérialise par la présence d'une commande WHERE.
La commande ORDER BY permet d'effectuer un tri.
- Syntaxe
SELECT champs à afficher
FROM tables nécessaires
WHERE condition
AND critère de jointure
ORDER BY nom du champ sur lequel s'effectue le tri
SQL est un langage permettant, entre autres, d'interroger et de modifier une base de données. Le langage SQL utilise des commandes.
Une projection s'effectue en SQL avec la commande SELECT…FROM…
Une sélection (ou restriction) s'effectue avec la commande WHERE.
Quand une requête nécessite plusieurs tables, une jointure est nécessaire. Cette jointure se matérialise par la présence d'une commande WHERE.
La commande ORDER BY permet d'effectuer un tri.
- Syntaxe
SELECT champs à afficher
FROM tables nécessaires
WHERE condition
AND critère de jointure
ORDER BY nom du champ sur lequel s'effectue le tri
Vous avez obtenu75%de bonnes réponses !