Base de datos MySQL _ consulta de datos _ paginación, consulta de enlace

Base de datos MySQL

Paginación

Consigue algunas filas

  • Cuando la cantidad de datos es demasiado grande, es muy problemático ver los datos en una página.

gramática

select * from 表名 limit start,count

Descripción

  • Desde el principio, obtenga datos de recuento
--限制查询出来的个数
select * from students where gender=1 limit 2;

--查询前5个数据
select * from students limit 0, 5;

--查询6-10(包含)的数据
select * from students limit 5, 5;



--每页显示2个,第1个页面
select * from students limit 0, 2;

--每页显示2个,第2个页面
select * from students limit 2, 2;

--每页显示2个,第3个页面
select * from students limit 4, 2;

--每页显示2个,第4个页面
select * from students limit 6, 2;    -- ---> limit (第n页-1)*每个的个数,每一页的个数;

--每页显示2个,显示第6也的信息,按照年龄从小到大排序
--错误的查询方法1:select * from students limit 2*(6-1), 2;
--错误的查询方法2:select * from students limit 10, 2 order by age asc;

select * from students order by age asc limit 10, 2;

select * from students where gender=2 order by height desc limit 0, 2;

Consulta de enlace

  • Cuando la columna del resultado de la consulta proviene de varias tablas, debe unir las varias tablas en un conjunto de datos grande y luego seleccionar la columna adecuada para devolver
  • Por lo general, se utiliza para consultas de varias tablas, pero es casi inútil cuando se trata de consultas de una sola tabla.

mysql admite tres tipos de consultas de conexión, a saber:

  • Consulta de combinación interna: el resultado de la consulta son los datos que coinciden con las dos tablas

unir internamente

  • Los enlaces externos se dividen en "enlace izquierdo y enlace derecho"

    • Consulta de combinación izquierda: el resultado de la consulta son los datos que coinciden con las dos tablas, los datos únicos de la tabla de la izquierda y los datos que no existen en la tabla de la derecha se rellenan con nulo.

    unirse a la izquierda

    • Consulta de combinación derecha: el resultado de la consulta son los datos que coinciden con las dos tablas, los datos exclusivos de la tabla de la derecha y los datos que no existen en la tabla de la izquierda se rellenan con nulo.

    unirse a la derecha

gramática

select * from 表1 inner或left或right join 表2 on 表1.列 = 表2.列

Ejemplo de consulta de enlace interno:

  • llevar交集
--查询 有能够对应班级的学生以及班级信息
select * from students inner join classes on students.cls_id=classes.id;

--按照要求显示姓名、班级
select students.*,classes.name from students inner join classes on students.cls_id=classes.id;

select students.name,classes.name from students inner join classes on students.cls_id=classes.id;

--给数据表起名字
select s.name,c.name from students as s. inner join classes as c on s.cls_id = c.id;

--查询 有能够对应班级的学生以及班级信息,显示学生的所有信息,只显示班级名称
select s.*,c.name from student as s inner join classes as c on s.cls_id=c.id;

--在以上的查询中,将班级姓名显示在第1列
select c.name,s.* from students as s inner join classes as c on s.cls_id=c.id;

--查询 有能够对应班级的学生以及班级信息,按照班级进行排序
select c.name,s.* from students as s inner join classes as c on s.cls_id=c.id order by c.name;

--当是同一个班的时候,按照学生的id进行从小到大排序
select c.name,s.* from students as s inner join classes as c on s.cls_id=c.id order by c.name,s.id;

Ejemplo de consulta de enlace izquierdo:

  • En la tabla de la izquierda, tome la tabla como punto de referencia para obtener los datos; si no puede obtenerlos, el valor predeterminado esNULL
--查询每位学生对应的班级信息
select * from students as s left join classes as c on s.cls_id=c.id;

--查询没有对应班级信息的学生
select * from students as s left join classes as c on s.cls_id=c.id having c.id is null;

select * from students as s left join classes as c on s.cls_id=c.id where c.id is null;
  • Se puede usar havingy wherese puede lograr, pero la diferencia entre los dos ¿dónde está?
    • Si el resultado se juzga a partir de la tabla original, utilice where
    • Si el nuevo resultado de la búsqueda se considera un conjunto de resultados, el resultado se juzga en el conjunto de resultados, luego use having

Ejemplo de consulta de enlace derecho:

  • En la tabla de la derecha, tome la tabla como punto de referencia para obtener los datos. Si no puede obtenerlos, el valor predeterminado esNULL
  • En circunstancias normales, no se usa comúnmente, porque los nombres de las dos tablas se intercambian y la combinación izquierda también se puede usar para completar

Supongo que te gusta

Origin blog.csdn.net/weixin_42250835/article/details/90423457
Recomendado
Clasificación