Dans ce chapitre, nous allons apprendre quelque chose de fondamental dans les bases de données relationnelles: les jointures.
Si on dit qu'elles sont relationnelles, c'est pas pour rien.
En effet, vous pouvez faire des conditions dans vos requêtes SQL en incluant des tables.
Mais avant d'utiliser les jointures, je pense qu'il est important de savoir quand on peut l'utiliser.
Quand utiliser les jointures?
C'est une bonne question.
On va considérer qu'on a 2 tables: une simple table dico et une autre membre.
Voilà , donc le id_membre de la table dico contient l'id du membre contenu dans la table membre.
Ce qu'on veut faire, c'est récupérer (dans l'exemple) le nom du membre à partir de l'id du membre pour chaque définition.
Ici, ce serait pas trop possible puisque dans ma table dico, je n'ai pas le nom du membre mais seulement son id.
Et bien, c'est effectivement possible avec les jointures!
C'est ce que nous allons voir de suite.
Comme vous le voyez c'est pas très compliqué.
Ce qui est après le ON est une condition et peut très bien être remplacé par > ou autre mais a généralement moins d'intèrêt d'être utilisé.
Cette requête va vous récupérer les 20 premières définitions et va récupérer le nom de membre de chacunes de ces définitions respectives.
Chapitre 2: Les Unions SQL - Cours SQL
Quelle est l'utilité des unions en SQL?
Parfoit, faire 1 requête est plus rapide qu'en faire plusieurs et c'est pourquoi nous allons voir comment grouper plusieurs requêtes pour en faire qu'une seule.
Attention: La requête peut être plus rapide mais peut aussi être plus lente dans certain cas.
Exemple d'utilté des unions
Maintenant, je vous propose que j'ai 2 tables: une pour avoir le nombre de connectés et une autre pour avoir le nombre de membres.
En temps normal, on aurait les 2 requêtes:
Code sql:
SELECTCOUNT(*)ASnbFROMmembres
Code sql:
SELECTCOUNT(*)ASnbFROMconnectes
Et pourtant, je vais vous dire, on peut sur ce genre de requêtes les grouper ensemble et dans pas mal de cas gagner du temps! (comme ici)
Syntaxe générale des unions
Code sql:
SELECTchampsFROMtable1UNIONSELECTchampsFROMtable2
Donc comme vous voyez, rien de plus simple.
Les unions en pratique!
Voici pour notre exemple ce que la requête deviendrait:
Et voilà c'est tout!
Ensuite, quand vous parcourez le tableaux de résultats, vous aurez dans cet exemple 2 résultats.
Le 1er résultat du tableau 'nb' sera le nombre de membres et le 2ème résultat du tableau 'nb' sera le nombre de connectés.
Les noms de champs que vous sélectionnez dans vos unions doivent avoir les mêmes noms et dans le même ordre sinon, vos unions ne marcheront pas!
Chapitre 3: Les fonctions SQL - Cours SQL
Nous allons maintenant apprendre des fonctions très connues en SQL.
Compter le nombre de résultats
COUNT() permet de compter le nombre de résultats retournés.
Code sql:
SELECTCOUNT(*)ASnbFROMmembres
Récupérera le nombre d'enregistrements dans la table 'membres'.
Récupérer la valeur maximale
Dans le cas où vous avez stocké des nombres et que vous voulez récupérer la valeur maximale, vous n'avez qu'à utiliser la fonction MAX()
Code sql:
SELECTMAX(champs)ASnb_maxFROMtable
Récupére la valeur maximale dans la table 'table' pour le champs 'champs'
Il est possible de récupérer la valeur maximale en faisant la recherche du nombre sur tout les champs:
Code sql:
SELECTMAX(*)ASnb_maxFROMtable
Récupérer la valeur minimale
Code sql:
SELECTMIN(champs)ASnb_minFROMtable
Il est possible de récupérer la valeur minimale en faisant la recherche du nombre sur tout les champs:
Code sql:
SELECTMIN(*)ASnb_minFROMtable
Récupérer que des résultats différents
Code sql:
SELECTDISTINCTchampsFROMtable
Tout les résultats seront différents et donc, les doublons seront enlevés.
Exemple: récupérer le nombre de visites uniques sur votre site:
Donc, si on veut retourner les 10 premiers résultats, il faudra écrire:
Code sql:
SELECT*FROMtableLIMIT0,10
Attention: En SQL, on commence à partir de l'entrée 0 et pas 1 donc si vous mettez 1 à la place, vous aurez à partir du 2ème résultat.
Il est aussi autorisé d'omettre le 1er paramètre (PREMIER_ENTRE) quand on commence à partir du premier enregistrement.
Donc, pour récupérer les 10 premiers résultats, il est autorisé d'écrire:
Code sql:
SELECT*FROMtableLIMIT10
La clause ORDER BY
En SQL, il peut être utile de trier des résultats.
Voici la syntaxe de base:
Code sql:
SELECT*FROMtableORDERBYchamp
Vous avez 2 possibilités encore:
Trier par ordre croissant: ASC
Trier par ordre décroissant: DESC
Donc pour récupérer par exemple la liste des 20 derniers membres inscrits dans l'ordre des plus récemment inscrits, on peut faire: