Consulta de tabla única de selección de serie MySQL de declaración DML

Consulta de tabla única de selección de serie MySQL de declaración DML

Operación y Mantenimiento YouthO & M Youth

Descripción de la serie de artículos

Los artículos de la serie MySQL incluyen instalación de software, uso específico, respaldo y recuperación, etc., que se utilizan principalmente para registrar notas de estudio personales La versión principal de MySQL utilizada es 5.7.28 y la versión del sistema del servidor es CentOS 7.5. Este capítulo es para el contenido de consulta de una tabla única selecta. Este capítulo utiliza la tabla de la ciudad en world.sql y la tabla de estudiantes de construcción propia, entre las cuales world.sql se puede descargar en el sitio web oficial de mysql. Nota: Los datos mundiales son 19xx, los datos no coinciden con los actuales.

La estructura de la tabla de estudiantes es la siguiente:

Consulta de tabla única de selección de serie MySQL de declaración DML
①sno: número de estudiante
②sname: nombre del estudiante
③sage: edad del estudiante
④ssex: género
⑤status: status

La estructura de la tabla de la ciudad es la siguiente:

Consulta de tabla única de selección de serie MySQL de declaración DML
①ID: número de serie
②Nombre: nombre de la ciudad
③CountryCode: código del país
④Distrito: provincia / estado
⑤Población: población

Acerca de SELECT

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

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

seleccione el uso

0 1 usado solo

SELECCIONAR solo

① Consultar toda la información de la tabla


select * from student;

Consulta de tabla única de selección de serie MySQL de declaración DML
② Consultar información de columna especificada


select sname from student;

Consulta de tabla única de selección de serie MySQL de declaración DML
③Propósito de cálculo
Consulta de tabla única de selección de serie MySQL de declaración DML

0 2 donde declaración condicional

El formato de la declaración where es el siguiente:


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

donde comparar consulta de condición de juicio


Los símbolos de juicio de comparación de uso común incluyen:>,> =, <, <=, =,! =, Not, in, not in, between y, etc.

① Consultar la información de la fila cuyo sname es yunwei


select * from student where sname='yunwei';

Consulta de tabla única de selección de serie MySQL de declaración DML

② Consultar los nombres de los estudiantes cuyo sno sea menor a 5


select sno,sname from student where sno<5;

Consulta de tabla única de selección de serie MySQL de declaración DML

③ Consultar datos de filas cuyo sno es 5-10


select * from student where sno between 5 and 10;

Consulta de tabla única de selección de serie MySQL de declaración DML
④ Consultar datos con un sno de 5 o 7


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

Consulta de tabla única de selección de serie MySQL de declaración DML


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

not:非、不

in、not in :在、不在

donde como consulta difusa


① Consultar la fila del nombre del estudiante cuya columna de nombre contiene zhang


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

Consulta de tabla única de selección de serie MySQL de declaración DML

② Consultar las filas que comienzan con a en la columna sname


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

Consulta de tabla única de selección de serie MySQL de declaración DML

③ Consulte la línea que termina con i en la columna sname


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

Consulta de tabla única de selección de serie MySQL de declaración DML

④ Consultar la columna cuyo segundo carácter es h en la columna sname


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

Consulta de tabla única de selección de serie MySQL de declaración DML

⑤ Consultar la columna cuyo segundo carácter no sea h en la columna sname


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

Consulta de tabla única de selección de serie MySQL de declaración DML


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

_:匹配一个字符

donde conector lógico


Los símbolos de conexión lógica incluyen principalmente: y, o, unión

① Consultar información sobre ciudades con una población de más de 100 w en China


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

Consulta de tabla única de selección de serie MySQL de declaración DML

② Consultar la información de la ciudad de Guangdong o Guangxi


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

Consulta de tabla única de selección de serie MySQL de declaración DML


select * from city where district='guangxi';

Consulta de tabla única de selección de serie MySQL de declaración DML


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

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

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

0 3 agrupar por


Agrupar por debe usarse junto con where en la mayoría de los casos. Agrupar por es principalmente adecuado para agrupar. Agrupar por debe combinarse con funciones de agregación. Las funciones de agregación comúnmente utilizadas son: max (), min (), avg (), count (), suma (), group_concat (), DISTINCT ()

Los pasos de uso principal de agrupar por:
①Encontrar la condición de agrupación (qué columna se usa como columna de agrupación)
②Utilizar la función de agregación apropiada (cómo calcular)

agrupar por suma


①Calcular la población de cada país


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

Consulta de tabla única de selección de serie MySQL de declaración DML

②Calcular la población total de cada provincia en China


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

Consulta de tabla única de selección de serie MySQL de declaración DML

agrupar por conteo


①Cuenta el número de ciudades de cada país


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

Consulta de tabla única de selección de serie MySQL de declaración DML

②Cuenta el número de ciudades de cada provincia en China


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

Consulta de tabla única de selección de serie MySQL de declaración DML

0 4 teniendo

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

tener tener


① Estadísticas de la población total de cada provincia en China, mostrando solo las provincias con una población total superior a 500w


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

Consulta de tabla única de selección de serie MySQL de declaración DML

0 5 ordenar por


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

ordenar por


① Estadísticas de la población total de cada provincia en China, mostrando solo la información de que la población es mayor a 500w, y ordenada de menos a más


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

Consulta de tabla única de selección de serie MySQL de declaración DML

0 6 límite de paginación


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

límite límite de paginación


① Estadísticas de la población total de cada provincia en China, mostrando solo la información de que la población es mayor a 500w, y ordenada de mayor a menor, mostrando solo las cinco primeras


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

Consulta de tabla única de selección de serie MySQL de declaración DML

0 7 Alias ​​y deduplicación


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

seleccionar alias


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

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

Consulta de tabla única de selección de serie MySQL de declaración DML

seleccionar desduplicación


distinct是select中去重语句

①Imprima todos los códigos de país sin repetirlos


select distinct(countrycode) from city;

Consulta de tabla única de selección de serie MySQL de declaración DML

0 8 Descripción del caso


Estadísticas de China, la población total de cada provincia, el número de ciudades, la lista de nombres de ciudades


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

Si hace lo mismo, enhorabuena, recibirá un mensaje de error de la siguiente manera:


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
这是什么原因呢?首先我们看看我们上面的指令想做出来的结果是怎么样的

Consulta de tabla única de selección de serie MySQL de declaración DML
¡pero! MySQL no admite la visualización de resultados de uno a muchos, entonces, ¿cómo lo manejamos? En este momento, puede utilizar la función agregada group_concat para convertir varias filas de datos en una fila para lograr el efecto de fila a fila.
Consulta de tabla única de selección de serie MySQL de declaración DML

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

Consulta de tabla única de selección de serie MySQL de declaración DML

Con mapa mental personal

Consulta de tabla única de selección de serie MySQL de declaración DML

Supongo que te gusta

Origin blog.51cto.com/15082392/2656068
Recomendado
Clasificación