Lección 8 de la base de datos MySQl ------- consulta de comando SQL ------- elemento vital principal

Prólogo del autor

 Bienvenidos pequeños lindos a venir y aprender de mi gtiee Qin Boss (qin-laoda) - Gitee.com

———————————————————————————————

Tabla de contenido

Consulta de datos
        condición
        Operadores logicos
        consulta difusa
        consulta de rango en
        juicio vacio
UNIÓN
 para ordenar
polimerización
Agrupación: agrupar por

————————————————————————————

autor de pequeñas tonterías

Recientemente, Xiaocutie pudo haber descubierto que la parte anterior de mi blog estaba repetida. Esto es lo que escribí a propósito. Hay tres ventajas:

1. La pequeña monada puede volver a revisarlo después de verlo.

2. Cutie puede encontrar sus propias deficiencias de acuerdo con esta parte y puede analizar más a fondo la declaración sql

3. De hecho, también tengo la costumbre de revisar el blog anterior, por lo que escribir de esta manera puede consolidar aún más el conocimiento del día anterior.

Adición, eliminación, modificación y consulta de SQL

        Agregar, eliminar, modificar datos

--增加数据
insert into 表名 (`字段名1`,`字段名2`)value('内容1','内容2');
--删除数据
delete from 表名 where  条件;

--修改数据
update  表名 set `字段名`=内容  where  条件;

Consulta de datos

alias de tabla

--方法1
select * from 表名  as 表别名;
--方法2
select * from 表名 表别名;


ver un campo

--方法1
select 表名.`字段名`from 表名;

--方法2
select `字段名` from 表名;

--方法3(注意一下,如果表取了别名,使用这个方法就必须使用表别名)
select 表别名.`字段名` from 表名   as  表别名 ;

alias de campo

--方法1
select `字段名` as 字段别名 from 表名;

--方法2
select 表名.`字段名`as 字段别名 from 表名;
--方法3
select  表别名.`字段名` as `字段别名` from 表名 as 表别名;

ver las primeras líneas

select * from 表名 limit 数字;

Deduplicación

-- 方法1
select distinct  * from  表名;

-- 方法2
select distinct  `字段名` from 表名;

condición

Tenga en cuenta que name representa el nombre del campo, table_name representa el nombre de la tabla

operador de comparación

-- 等于
select * from table_name where id = 3;
-- 大于
select * from table_name where id = 3;
-- 大于等于
select * from table_name where id >= 3;
-- 小于
select * from table_name where id < 3;
-- 小于等于
select * from table_name where id <= 3;
-- 不等于
select * from table_name where id != 3;
select * from table_name where id <> 3;
Operadores logicos
-- 与
select * from table_name where id > 3 and gender = '男';
-- 或
select * from table_name where id > 3 or gender = '男';
y tiene mayor prioridad que o, pero se pueden agregar paréntesis para dar prioridad
consulta difusa
La consulta difusa debe usarse con like
-- 下划线 _ 匹配任意一个字符
select * from table_name where name like '周_';
-- % 匹配任意多个字符
select * from table_name where name like '%周';
consulta de rango en
-- 取id为1、4、10的人员数据
select * from table_name where id in (1,4,10);
select * from table_name where id=1 or id=4 or id=10;

en medio y

-- between 取连续的数据
select * from table_name where id between 6 and 20;
select * from table_name where id >= 6 and id <=20;
-- 不同的数据库,sql中between的边界可能不同,有些是包头包尾,有些是包头去尾,或者是不包头也不
包尾
juicio vacio
-- NULL
select * from table_name where name is null;
-- 非空
select * from table_name where name is not null;
prioridad
-- 当无法判断条件运行的优先时,可以使用小括号
select * from table_name where id > 10 and name is null or gender = '男';
select * from table_name where id > 10 and (name is null or gender = '男');

No hay fotos aquí, habrá fotos más tarde.

Unión

La consulta mencionada anteriormente es para consultar el contenido de una tabla. ¿Qué debo hacer si un colega busca varias tablas? Esto requiere el uso de nuion.

 En el proceso de empalme, a las dos tablas asociadas con UNION no les importa si los nombres de los campos son iguales. Sin embargo, se requiere que el formato y el tipo de los campos correspondientes sean consistentes, y la cantidad de campos también debe ser consistente .

La comprensión simple es:

1. Al empalmar dos tablas, el número de campos empalmados debe ser el mismo

2. Al empalmar dos tablas, los tipos de datos correspondientes a los campos empalmados deben ser los mismos

int y date no se pueden convertir entre sí, pero en mysql

--拼接显示前10行
select `id`,`name` from 表名 
union
select `zi`, `title` from 表名 limit 10;

distinto (deduplicación)

De hecho, union también tiene su propio efecto de deduplicación, pero en algunas bases de datos, es necesario escribir distintos


select `id`,`name` from 表名
union distinct 
select `id`, `title` from 表名 limit 10

 all : Devuelve todos los conjuntos de resultados, incluidos los datos duplicados.

select `id`,`name` from 表名
union all
select `id`, `title` from 表名 limit 10;

Ordenar    por

El valor predeterminado es ascendente (de menor a mayor)

--写法1
select * from city  where order by `id`;
--写法2
select * from city  where order by `id` asc;

ordenar por identificación

Descendente (de mayor a menor)

select * from city  where order by `id` desc;

Múltiples campos para ordenar
select * from city order by `pid`desc, `id`asc;

Significa que el campo pid se ordena primero. Después de la ordenación, si hay datos con el mismo pid, se realizará la ordenación de id. Si no hay datos con el mismo pid, no se realizará la ordenación de id.
 

 polimerización

Estadísticas
-- 统计总数
select count(*) from table_name;
select count(0) from table_name;
-- 统计id大于3的人数
select count(0) from table_name where id >3;
--计算某个字段的数据量
select conut(`字段名`) from 表名 ;

Las pequeñas bellezas cuidadosas encontrarán que count() puede completar *, números y nombres de campo. Permítanme explicarlos uno por uno.

count(`field name`): Cuente este campo. Si hay un valor nulo en este campo, no se contará. Simplemente se entiende que solo cuenta el número de datos no nulos 

count (*): los valores de campo en cada dato se evaluarán uno por uno, lo que provocará una gran pérdida de rendimiento y la cantidad de datos devueltos

count (número): no recorrerá ni juzgará los campos de cada dato uno por uno, siempre que se cuente cada dato escrito en la tabla de datos, por lo que se recomienda utilizar conut (número) en lugar de contacto (*),

Tenga en cuenta que los números en conut(número) son arbitrarios

valor máximo

-- 最大值
select max(id) from table_name;
-- 性别为女的最大ID
select max(id) from table_name where gender='女';

 

valor mínimo

-- 最小值
select min(id) from table_name;
-- 性别为男的最小ID
select min(id) from table_name where gender='男';

 

suma suma()

-- 求和
select sum(age) from table_name;
-- 性别为男的年龄总值
select sum(age) from table_name where gender='男';

Recuerda que contar y sumar no son lo mismo, contar es el cálculo de la cantidad, suma es el cálculo de la suma

 

promedio promedio ()

-- 平均值
select avg(age) from table_name;
-- 性别为男的年龄平均值
select avg(age) from table_name where gender='男';
select sum(age)/count(0) from table_name where gender='男';

 El promedio también se puede escribir así

select sum(`字段名`)/count(`字段名`) from 表名 ;

 Agrupación: agrupar por

Tenga en cuenta qué campo está agrupado, solo puede ver ese campo, cuando el campo escrito no participa en la agrupación, se informará un error

Los resultados de la consulta se agrupan por campos, y aquellos con los mismos valores de campo forman un grupo. Se puede utilizar para la agrupación de un solo campo o la agrupación de varios campos

Un entendimiento simple es que lo mismo es un grupo, por ejemplo, hay muchas personas en una clase. Agrupar por intereses, las mismas aficiones que un grupo,

-- 性别分组
select gender from table_name group by gender;
-- 利用分组去重
select id, name from table_name group by id, name;
-- 这里的去重是利用group by进行去重,它的效率会比distinct快,但是要求将进行去重的字段全部写入
--分组内

 

El uso de la agrupación también producirá un efecto de deduplicación,

Después de calcular la agrupación, el número de personas en cada grupo

select `字段名`,count(0)from 表名 group by `字段名`;

Si desea agregar la condición de juicio where, debe escribirla frente al grupo por 

 select * from city where `id`> 3 order by `id`;
Empalme de final de palabra después de agrupar
-- 分组后的字段拼接
select gender, group_concat(name) from table_name group by gender;
select gender, concat(name) from table_name group by gender;

 El llamado empalme de campos significa que después de agrupar, podemos entenderlo como la recopilación de ciertas características de los miembros del grupo.

select `pid` ,group_concat(`name`),count(0) from(select * from city limit 4)as a  group by `pid` order by `pid`;

 El significado entre paréntesis es obtener los primeros cuatro datos en la tabla de la ciudad, alias como a, y luego agrupar el campo pid de la tabla a, y luego ordenar en orden ascendente y empalmar el campo de nombre,

-- 分组后的聚合
-- 各个性别的人数
select gender, count(0) from table_name group by gender;
-- 各个性别的平均年龄
select gender, avg(age) from table_name group by gender;

con coalescencia acumulada()

suma parcial

-- 使用coalesce代替空值
select coalesce(gender, 'total'), count(0) num from table_name group by gender -
- with rollup;

with rollup se usa para la agregación parcial, que puede contar la cantidad de valores del mismo campo y nombrarlo con nulo

coalesce (nombre de campo, 'nombre') cambia el valor vacío en el nombre de campo a nombre

 Filtrado de resultados teniendo

-- 分组后的条件筛选
-- 各个性别的平均年龄大于10的数据
select gender, avg(age) from table_name group by gender having avg(age) >10;
-- 各个性别的平均年龄大于10的人数
select gender, count(0) from table_name group by gender having avg(age) >10;

donde es para filtrar el valor inicial

tener es filtrar el valor del resultado

 Resumir

Si se escribe la condición where, debe escribirse antes de que se filtren los resultados, como antes del grupo por, porque where es el valor inicial para filtrar, y escribir where after es equivalente a filtrar los resultados.

Supongo que te gusta

Origin blog.csdn.net/m0_69984273/article/details/131732924
Recomendado
Clasificación