SQL Langage d'interrogation des données

Page 1

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))

;


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.