LID
z
Jihen damerji
z
Activité : Soit la table Joueur suivante:
1- Lister la table Joueur? 2-Lister les numéros et noms des joueurs? 3- Lister les différents numéros des équipes de jeunes?
Table Joueur
❑ Une recherche de données peut être
Recherche de données
réalisée en faisant référence à une ou plusieurs tables.
Intérogation des données
❑ L’utilisateur peut effectuer plusieurs
types de recherche
La recherche des données se fait exclusivement par la requête SELECT
dont la syntaxe minimal est:
Activité : Table Joueur
Soit la table Joueur suivante:
1- Lister la table Joueur?
SELECT
*
From Joueur;
Activité : Table Joueur
Soit la table Joueur suivante:
2-Lister les numéros et noms des joueurs?
projection La projection est une opération qui vise à obtenir un ensemble de colonnes à partir d’une table. Il suffit juste de spécifier les noms des colonnes a sélectionnées séparés par des virgules puis dans la clause From on spécifie le nom de la table.
Activité : Table Joueur
Soit la table Joueur suivante:
2-Lister les numéros et noms des joueurs? SELECT
Nom_J
Num_J, From Joueur;
Activité : Table Joueur
Soit la table Joueur suivante:
3- Lister les différents numéros des équipes de joueurs?
DISTINCT Code_eq From Joueur; SELECT
La projections d’une table en vue de l’obtention d’un ensemble de colonnes de cette table se fait simplement en spécifiant les noms des colonnes désirées
Syntaxe: SELECT [DISTINCT] * / Liste _nom _ colonne FROM nom _table ;
* : Toute les colonnes de la table
DISTINCT : N’affiche qu ’un exemplaire de chaque jeu de lignes identiques
Remarques: ❑ Si on souhaite obtenir tous les colonnes d’une table, le caractère
* peut
être utilisé à la place de la liste des noms de colonnes.
❑ Lors de l’affichage de résultat, SQL n’élimine pas les doubles à moins
que ça ne soit explicitement précisé par le mot clé DISTINCT. ❑ Si la colonne clé primaire est listée on ne peut pas trouver les doublons
dans la table résultat.
Activité : Table Joueur Soit la table Joueur suivante:
4- Lister les données sur les joueurs de équipes 2?
La
sélection
ou appelée aussi restriction s’exprime à l’aide
de la clause WHERE que l’on ajoute à la requête juste après la liste des tables utilisées. La différence entre sélection et projection c’est que la projection consiste à lister un ensemble de colonnes et la sélection, en plus des colonnes, elle affiche les différentes lignes qui répondent au critère présenté dans la clause WHERE.
Syntaxe: SELECT [DISTINCT] * / Liste _nom _ colonne FROM nom _table WHERE condition ;
Activité : Table Joueur Soit la table Joueur suivante:
3- Lister les données sur les joueurs de équipes2? SELECT * From Joueur
WHERE Code_eq = 2 ;
Une restriction
consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs colonnes s’expriment à l’aide de la clause WHERE suivit d’une condition.
Le critère (ou appelé aussi prédicat) est donné sous la forme d’une expression logique dans laquelle on peut utiliser : ▪
Les opérateurs de comparaison : =, <, >, >=, <= et <>.
▪
L’opérateur BETWEEN pour les intervalles de valeurs.
▪
L’opérateur [NOT] IN pour les listes de valeurs.
▪
L’opérateur IS NULL et IS NOT NULL pour les valeurs indéterminées.
▪
L’opérateur [NOT] LIKE pour filtrer une chaîne de caractères.
▪
Les opérateurs logiques : AND, OR, NOT.
Activité : Table Joueur Soit la table Joueur suivante:
3- Lister les Joueurs dont le nom ne commence pas par ‘M’? SELECT * From Joueur
WHERE Nom_J NOT LIKE ‘M%’ ;
_ remplace un caractère % zéro ou plusieurs caractères
Activité : Table Joueur Soit la table Joueur suivante:
3- Lister les noms des Joueurs classées selon la date de naissance?
Recherche des données avec tri On peut déterminer l'ordre de tri des enregistrements extraits par l’instruction SELECT.
Syntaxe: SELECT [DISTINCT] * / Liste _nom _ colonne FROM nom _table [WHERE condition] ORDER BY nom _ colonne1 [ASC/DESC][nom _ colonne2 [ASC/DESC]… ;
Activité : Table Joueur Soit la table Joueur suivante:
3- Lister les noms des Joueurs classées selon la date de naissance? SELECT Nom_J, date_Naiss
From Joueur
ORDER BY date_Naiss ;
Remarques: ❑ Les mots ASC et DESC sont facultatifs, ils indiquent l'ordre de
tri qui est par défaut c'est ASC (ascendant). ❑ Les noms _colonne qui figurent après le paramètre ORDER
BY doivent figurer dans la clause Select. ❑ Les éléments NULL des colonnes concernées par le tri sont
donnés ensemble de manière successive.
Activité : Table Joueur Soit la table Joueur suivante:
3- Lister pour chaque joueur son age ?
Recherche de données en utilisant les fonctions:
YEAR(date), MONTH(date) et DAY(date) YEAR(date)
Utilisée pour extraire l'année, le mois et le jour respectivement
MONTH(date)
Exemple :
DAY(date)
SELECT YEAR(Date_debut), MONTH(Date_debut), DAY(Date_debut) FROM Conges;
Les fonctions agrégat réalisent un calcul sur les enregistrements d’une table : ▪ SUM () calcule la somme des valeurs pour les enregistrements
satisfaisant une condition. Le champ doit bien sûr être de type numérique. ▪ AVG () calcule la moyenne des valeurs pour les enregistrements
satisfaisant une condition. ▪ MAX () cherche la valeur la plus élevée pour
les enregistrements
satisfaisant une condition. ▪ MIN () cherche la valeur la plus petite pour
les enregistrements
satisfaisant une condition. ▪ COUNT (*) Renvoie le nombre d'enregistrements satisfaisant la requête.
Activité : Table Joueur Soit la table Joueur suivante:
3- Lister pour chaque joueur son age ?
SELECT Nom_J, Current_Date – date_naiss
As Age From Joueur
;
Remarques:
❑ Par défaut les colonnes de la table résultat porte les mêmes
noms que la table de départ.
❑ Il est possible de donner aux colonnes de la table résultat des
noms différents de ceux de la table d’origine. Cet entête est présenté juste après le paramètre liste_ nom _colonne et elle s’appelle généralement Alias
Activité : Soit la table Joueur suivante:
3- Chercher le nombre des joueurs par équipe ? ➔ le regroupement s’effectue sur la colonne Code_eq puis on va compter les lignes regrouper pour chaque valeur de la colonne Code_eq et on affiche le nombre des lignes qui correspond au nombres des Num_J
Table Joueur
Groupement La clause GROUP BY: Il est possible de grouper des lignes de données ayant une valeur commune à l’aide de la clause GROUP BY Cette clause sert à grouper les résultats d'une requête. Cela permet une meilleure lisibilité.
Et des fonctions de groupe ( SUM, COUNT, ….)
Activité : Table Joueur Soit la table Joueur suivante: 3- Chercher le nombre des joueurs par équipe ?
SELECT Code_eq ,COUNT( Num_J) From Joueur
GROUPE BY Code_eq ;
Groupement La clause GROUP BY:
Exemple2 : On voudra avoir la moyenne des salaires des employés par département. Pour cela on tape la requête suivante : Select nodept, AVG (sal) From EMPLOYE Group by nodep ;
nodept 10 20 30
AVG (sal) 2800 1350 833.33
La clause HAVING:
Pour appliquer des restrictions sur ces " sous-tables " on utilise la commande Having qui est l'équivalent du Where pour les groupes.
Exemple : soit table commande dont le groupement est par cin on veut afficher seulement les cin qui commence par 01
jointure ❑ Il s’agit ici de sélectionner les données provenant de plusieurs tables ayant
un ou plusieurs colonnes communes. ❑ Cette jointure sera assurée grâce aux conditions spécifiées dans WHERE
Condition de restriction
Recherche de données à partir de plusieurs tables: Jointure Pour établir une requête à partir de plusieurs tables, on doit associer les tables concernées. Une jointure se fait selon le schéma relationnel sur les clés des tables que l’on veut associer. ▪ Syntaxe: SELECT [DISTINCT] * / Liste _nom _ colonne FROM nom _table1[alias], nom _table2[alias]… WHERE condition ;
Exemple : On suppose que on a une autre table qui memorise la participation des différents joueurs aux différentes matchs en voici le peuplement des deux tables:
Condition de jointure
SELECT Joueur.Nom_J
FROM Joueur , Participation WHERE Joueur.Num_J= Participation .Num_J Participation .Num_match = 1
;
AND
Condition de restriction
SELECT J.Nom_J
FROM Joueur AS J , Participation AS P WHERE J.Num_J= P .Num_J
AND P .Num_match=1
;
Remarques: ❑ La jointure réalise une liaison entre deux tables en se basant
sur l’égalité des valeurs entre l’une des colonnes de chaque table. ❑ L’alias permet de donner un nom abrégé à une table.
❑ Le paramètre condition sert à préciser la condition de jointure.il
ne faut pas la confondre avec la condition indiquée pour l’opération relationnelle de sélection.
Exemple 2: Donner les noms des joueurs qui sont plus âgés que le joueur n°127
On peut joindre une table avec une copie de celle-ci on utilisant les alias
SELECT J1.Nom_J FROM Joueur J1 , Joueur J2 WHERE ((J1.date_naiss) < J2.date_naiss) and (J2.date_naiss=127))
;