Un résumé et un regroupement de données
Instruction de requête ---> Ensemble de résultats (plusieurs éléments de données) ---> -- -> Enregistrement sur une seule ligne
1. Fonctions d'agrégation couramment utilisées :
sum() Nombres Nombres Faites la moyenne de toutes les valeurs non nulles dans la colonne spécifiée
min() Nombres, caractères, datetime Renvoie le plus petit nombre, la date la plus ancienne ou la plus petite chaîne de la colonne spécifiée
max() Nombres, caractères, datetime Renvoie le plus grand nombre de la colonne spécifiée, la date la plus récente ou la le plus grand jeu de caractères
count() Tout type de données basé sur les lignes Compte le nombre de toutes les lignes d'enregistrement dans le jeu de résultats
Exemple : requête d'informations sur le nombre de joueurs présents sont dans la table des joueurs
select count (user_qq) from users
select count(*) from user
Exemple : Interrogez le score total du joueur dont le numéro QQ est 12301
sélectionnez la somme (score) comme « score total » à partir des scores où user_qq='12301'
Exemple : la requête sur le numéro QQ est 12302 Scores d'évaluation du joueur
sélectionnez la moyenne (score) comme « score moyen » à partir des scores où user_qq='12302'
Exemple : recherchez le score le plus élevé du jeu numéro 1
sélectionnez max(score) comme « score maximum » à partir du score où gno=1
Exemple : recherchez le score total, le score moyen et le score maximum du joueur dont le numéro QQ est 12302
sélectionnez sum( score) comme 'score total', avg(score ) comme « score moyen », max(score) comme « score le plus élevé » à partir des scores où user_qq ='12302'
2. Utilisez GROUP BY group
Exemple : Interrogez le score total, le score moyen, le score le plus élevé de chaque joueur
sélectionnez sum(score) comme « score total », avg(score) comme « score moyen », max(score) comme « score le plus élevé » de groupe de scores par user_qq
Exemple : recherchez le score moyen de chaque joueur et affichez le numéro QQ et le score moyen du joueur
sélectionnez user_qq, avg(score) comme « score moyen » du groupe de scores by user_qq
3. Filtrer les résultats du groupe
Lorsque vous utilisez la clause GROUP BY, vous pouvez utiliser la clause HAVING pour les statistiques de groupe. Définissez davantage les conditions statistiques, la relation entre la clause HAVING et la clause GROUP BY sont équivalentes à la relation entre la clause WHERE et la clause SELECT
La différence avec la clause WHERE est que dans la clause HAVING elle est agrégée Les résultats statistiques de la fonction sont filtrés conditions.
Exemple : interrogez le numéro QQ, le score total, le score moyen des joueurs dont le score moyen est supérieur à 4000
sélectionnez user_qq, sum(score) comme 'score total', avg(score) comme 'score moyen'' du groupe de scores par user_qq ayant avg(score) > 4000
Exemple : recherchez le score moyen et le score total de tous les utilisateurs, et triez-les dans l'ordre inverse selon le score moyen
sélectionnez user_qq,avg(score) comme « score moyen », sun(score) comme « score total » à partir du groupe de scores par user_qq orde par avg(score) desc
4. Ordre d'exécution de l'instruction SELECT
La clause from spécifie la source de données
La clause Where filtre les enregistrements en fonction des conditions spécifiées
La clause group by divise les données en plusieurs groups
Utilisez les fonctions d'agrégation pour calculer
Utilisez la clause have pour filtrer les regroupements
Utilisez la clause order by pour trier l'ensemble de résultats
Requête à deux connexions1. Connexion multi-tables
Exemple : requête d'informations sur le score, affichage du surnom du joueur, du nom du jeu et du score.
sélectionnez le nom d'utilisateur comme "Pseudo", le jeu comme "nom du jeu", le score comme "score" parmi les utilisateurs.user_qq = scores.user_qq et game.gno= scores.gno
La requête de connexion est divisé en deux types : connexion interne et connexion externe
Caractéristiques de la jointure interne : Les deux tables connectées ont un statut égal
S'il n'y a pas de données correspondantes dans une table dans l'autre table, pas de connexion sera faite
Directement après la clause from Si plusieurs noms de table apparaissent, cette méthode de connexion est une jointure interne, qui est une jointure interne implicite
Afficher le format de jointure interne : sélectionnez col_list dans la table 1[ inner] rejoignez table2 sur table1.col=table2.clo1
Exemple : interrogez les informations sur le score, affichez le surnom du joueur, le nom du jeu et le scoresélectionnez le nom d'utilisateur comme 'surnom', g_name comme' nom du jeu', score comme' frame .gno =scores.gno rejoindre les utilisateurs en interne sur score.user_qq=user.user_qq
s u scores de jointure interne s sur s.user_qq = u.user_qq groupe par u.user_qq, user_name
Exemple : interroger le score moyen de plus de 3500 informations de score, affiche le surnom du joueur, le score total, le score moyen et selon les scores moyens par ordre décroissant
‐ à trier par ordre décroissant
groupe par user_qq Le le statut des deux tables connectées est inégal. La table de base de l'une d'entre elles Chaque donnée de la table de base doit apparaître Même s'il n'y a aucune donnée correspondant dans l'autre table, elle doit être remplie. avec NULLLa table de gauche est la table de base lorsque la table de gauche est connectée Lorsque la table de droite est connectée à la table de droite est la table de base
La première table de la phrase est 'left. table', et la dernière table est 'table de droite' Format de jointure externe : SELECT COL_LIST FROM TABLE1 LEFT/RIGHT[OUTER] JOIN TABLE2 ON TABLE1.COL=TABLE2.COL Exemple : Interrogez les informations de score de tous les joueurs du jeu n°5 sélectionnez le nom d'utilisateur comme « surnom » et gno comme « numéro de jeu », le score comme « score » des utilisateurs U qui ont quitté rejoindre les scores S sur U.user_qq=S. user_qq et S.gno=5
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!