Requête de table unique de sélection de série MySQL de l'instruction DML

Requête de table unique de sélection de série MySQL de l'instruction DML

Fonctionnement et entretien YouthO & M Youth

Description de la série d'articles

Les articles de la série MySQL incluent l'installation de logiciels, l'utilisation spécifique, la sauvegarde et la restauration, etc., qui sont principalement utilisés pour enregistrer des notes d'étude personnelles.La version principale de MySQL utilisée est la 5.7.28 et la version du système serveur est CentOS 7.5. Ce chapitre concerne le contenu de la requête de table unique sélectionnée. Ce chapitre utilise la table city dans world.sql et la table student auto-construite, parmi lesquelles world.sql peut être téléchargé sur le site officiel de mysql. Remarque: les données mondiales sont 19xx, les données ne correspondent pas à celles actuelles.

La structure de la table des élèves est la suivante:

Requête de table unique de sélection de série MySQL de l'instruction DML
①sno: numéro de l'élève
②sname: nom de l'élève
③sage: âge de l'élève
④ssex: genre
⑤status: status

La structure de la table des villes est la suivante:

Requête de table unique de sélection de série MySQL de l'instruction DML
①ID: numéro de série
②Nom: nom de la ville
③CountryCode: code du pays
④District: province / état
⑤Population: population

À propos de SELECT

按照传统的SQL分类,select属于DML,但是由于select作为最常用的语句,有很多人将它和show语句分为DQL。

无论select是属于DML还是DQL,它都是SQL语言里最重要、最常见的语句,可以配合where、group by、order by等一起使用。

sélectionner l'utilisation

0 1 utilisé seul

SELECT seul

①Rechercher toutes les informations de la table


select * from student;

Requête de table unique de sélection de série MySQL de l'instruction DML
②Rechercher les informations de colonne spécifiées


select sname from student;

Requête de table unique de sélection de série MySQL de l'instruction DML
③Fin du calcul
Requête de table unique de sélection de série MySQL de l'instruction DML

0 2où instruction conditionnelle

Le format de l'instruction where est le suivant:


select 指定列1,指定列2 from 表名 where 条件;

où comparer la requête de condition de jugement


Les symboles de jugement de comparaison couramment utilisés incluent:>,> =, <, <=, =,! =, Pas, dans, pas entre, entre et, etc.

①Rechercher les informations de ligne dont le sname est yunwei


select * from student where sname='yunwei';

Requête de table unique de sélection de série MySQL de l'instruction DML

②Rechercher les noms des élèves dont le sno est inférieur à 5


select sno,sname from student where sno<5;

Requête de table unique de sélection de série MySQL de l'instruction DML

③Query row data dont sno est 5-10


select * from student where sno between 5 and 10;

Requête de table unique de sélection de série MySQL de l'instruction DML
④Query data avec sno de 5 ou 7


select * from student where sno in(3,5);

Requête de table unique de sélection de série MySQL de l'instruction DML


总结
>、<、=、!=:大于、小于、等于、不等于

not:非、不

in、not in :在、不在

où comme une requête floue


① Interrogez la ligne de nom de l'élève dont la colonne de nom contient zhang


select * from student where sname like "%zhang%";

Requête de table unique de sélection de série MySQL de l'instruction DML

② Interrogez les lignes commençant par un dans la colonne sname


select * from student where sname like "a%";

Requête de table unique de sélection de série MySQL de l'instruction DML

③ Interrogez la ligne se terminant par i dans la colonne sname


select * from student where sname like "%i";

Requête de table unique de sélection de série MySQL de l'instruction DML

④ Interrogez la colonne dont le deuxième caractère est h dans la colonne sname


select * from student where sname like "_h%";

Requête de table unique de sélection de série MySQL de l'instruction DML

⑤ Interrogez la colonne dont le deuxième caractère n'est pas h dans la colonne sname


 select * from student where sname not like "_h%";

Requête de table unique de sélection de série MySQL de l'instruction DML


like通配符
%:匹配零个或者多个字符

_:匹配一个字符

où connecteur logique


Les symboles de connexion logique comprennent principalement: et, ou, union

①Rechercher des informations sur les villes de plus de 100w en Chine


select * from city where countrycode='CHN' and population>1000000;

Requête de table unique de sélection de série MySQL de l'instruction DML

②Recherchez les informations sur la ville de Guangdong ou Guangxi


select * from city where district='guangdong' or district='guangxi';

Requête de table unique de sélection de série MySQL de l'instruction DML


select * from city where district='guangxi';

Requête de table unique de sélection de série MySQL de l'instruction DML


总结
and:与,两个条件同时满足的数据会被选中

or:或,满足一个或一个以上的数据会被选中

union:类似或,上下两个语句满足一个即选中

0 3 grouper par


Grouper par doit être utilisé en conjonction avec where dans la plupart des cas. Grouper par convient principalement au regroupement. Grouper par doit être combiné avec des fonctions d'agrégation. Les fonctions d'agrégation couramment utilisées sont: max (), min (), avg (), count (), somme (), group_concat (), DISTINCT ()

Les étapes principales d'utilisation du groupe en:
①Trouvez la condition de regroupement (quelle colonne est utilisée comme colonne de regroupement)
②Utilisez la fonction d'agrégation appropriée (comment calculer)

grouper par somme


①Calculer la population de chaque pays


select CountryCode,sum(Population) from city group by countrycode;

Requête de table unique de sélection de série MySQL de l'instruction DML

②Calculez la population totale de chaque province en Chine


# 由于省的人口总数=sum(城市人口) 有重复列的为省,所以分组列应该为省
select District,sum(population) from city where countrycode='CHN' group by district;

Requête de table unique de sélection de série MySQL de l'instruction DML

grouper par nombre


① Comptez le nombre de villes dans chaque pays


select CountryCode,count(district) from city group by Countrycode;

Requête de table unique de sélection de série MySQL de l'instruction DML

②Compte le nombre de villes dans chaque province en Chine


select District,count(name) from city where countrycode='CHN' group by district;

Requête de table unique de sélection de série MySQL de l'instruction DML

0 4 ayant

having与where类似,having属于后过滤,一般需要在group by + 聚合函数后,再做过滤时使用。

avoir avoir


①Statistiques de la population totale de chaque province en Chine, ne montrant que les provinces avec une population totale supérieure à 500w


select District,sum(population) from city where countrycode='CHN' group by district having sum(population)>5000000;

Requête de table unique de sélection de série MySQL de l'instruction DML

0 5 ordre par


order by排序,order by 排序的列 DESC 倒序 ,没有DESC为正序。

commandé par


①Statistiques de la population totale de chaque province en Chine, montrant uniquement les informations indiquant que la population est supérieure à 500w, et triées du moins au plus


select District,sum(population) from city where countrycode='CHN' group by district having sum(population)>5000000 order by sum(population);

Requête de table unique de sélection de série MySQL de l'instruction DML

0 6 limite de pagination


limit分页显示结果集 一般配合order by使用,limit x -- 前x个,x,y表示开始为x,往再显示后面y个。

limite limite de pagination


①Statistiques de la population totale de chaque province de Chine, ne montrant que les informations indiquant que la population est supérieure à 500w, et triées du plus au moins, ne montrant que les cinq premiers


select District,sum(population) from city where countrycode='CHN' group by district having sum(population)>5000000 order by sum(population) DESC limit 5;

Requête de table unique de sélection de série MySQL de l'instruction DML

0 7 Alias ​​et déduplication


别名:给列取一个别名,有时候列名太长,可以取个简单易懂的别名做后续的处理和展示。
去重:去掉重复的值,重复的只显示一个

sélectionner un alias


给列取别名,可以在列后面直接添加一个别名,或者使用as 添加一个别名

select countrycode '国家代码',name as '城市名' from city where district='guangdong';

Requête de table unique de sélection de série MySQL de l'instruction DML

sélectionnez la déduplication


distinct是select中去重语句

①Imprimez tous les codes de pays sans les répéter


select distinct(countrycode) from city;

Requête de table unique de sélection de série MySQL de l'instruction DML

0 8 Description du cas


Statistiques Chine, la population totale de chaque province, le nombre de villes, la liste des noms de villes


SELECT District,SUM(Population),COUNT(id),NAME FROM world.`city` WHERE CountryCode='CHN' GROUP BY District;

Si vous faites de même, félicitations, vous recevrez un message d'erreur comme suit:


ERROR 1055 (42000): Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'world.city.Name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
这是什么原因呢?首先我们看看我们上面的指令想做出来的结果是怎么样的

Requête de table unique de sélection de série MySQL de l'instruction DML
mais! MySQL ne prend pas en charge l'affichage des résultats un-à-plusieurs, alors comment y faire face? À ce stade, vous pouvez utiliser la fonction d'agrégation group_concat pour convertir plusieurs lignes de données en une seule ligne afin d'obtenir l'effet de ligne en ligne.
Requête de table unique de sélection de série MySQL de l'instruction DML

 District,SUM(Population),COUNT(id),group_concat(NAME) FROM world.`city` WHERE CountryCode='CHN' GROUP BY District;

Requête de table unique de sélection de série MySQL de l'instruction DML

Avec carte mentale personnelle

Requête de table unique de sélection de série MySQL de l'instruction DML

Je suppose que tu aimes

Origine blog.51cto.com/15082392/2656068
conseillé
Classement