1. Ordenar los resultados de la consulta (ordenar por)
Use la cláusula order by
para ordenar por uno o más atributos Orden ascendente
: ASC (valor predeterminado) Orden descendente: DESC
当排序列含有NULL时,认为NULL最小
ASC: Las tuplas cuyas columnas de clasificación son valores nulos se muestran primero
DESC: Las tuplas cuyas columnas de clasificación son valores nulos son mostrado al final
[Ejemplo] Consulte los números de estudiantes y las calificaciones de los estudiantes que han tomado el curso C3, y los resultados de la consulta se organizan en orden descendente de puntajes.
SELECT Sno,Grade
FROM sc
WHERE Cno='C3'
ORDER BY Grade DESC;
[Ejemplo] Consulte la situación de todos los estudiantes, los resultados se organizan en orden ascendente de clase y los estudiantes de la misma clase se organizan en orden descendente de cumpleaños.
SELECT *
FROM Stu
ORDER BY Sclass ASC, Sbirth DESC;
2. Limite el número de resultados de consulta mostrados (LIMIT)
Utilice la frase LIMIT m,n en la cláusula SELECT.
Formato:
LIMIT [m,]n | n OFFSET m
Explicación: m representa el desplazamiento, que se toma del m-ésimo registro, y la primera línea predeterminada es 0
n representa el número de filas que se obtendrán
- límite N: devuelve N registros
- offset M: omitir registros M, predeterminado M = 0, no parece funcionar solo
- limit N,M : equivalente a limit M offset N , comenzando desde el N-ésimo registro, devuelve M registros
[ejemplo] consulta el nombre del estudiante de los primeros 3 registros en la tabla Stu
SELECT Sname
FROM Stu
LIMIT O,3;
或:LIMIT 3 OFFSET 0
3. Establecer consulta (COUNT)
Funciones agregadas comunes | Función |
---|---|
PROMEDIO() | promedio de retorno |
CONTAR() | Devuelve el número de filas |
PRIMERO() | Devuelve el valor del primer registro. |
ÚLTIMO() | Devuelve el valor del último registro. |
MÁX.() | devolver el valor máximo |
MIN() | retorno mínimo |
SUMA() | suma devuelta |
[Ejemplo] Consultar el puntaje más alto de los alumnos que toman el curso C2. |
SELECT Cno, max(Grade)
FROM SC
WHERE Cno= 'C2';
Consulta para calcular el número total de estudiantes en la clase 1401
SELECT COUNT(*)
FROM Stu
WHERE Sclass='计算1401';
4. Consulta de grupo (agrupar por)
Formato de gramática:
GROUP BY 字段名 [HAVING 条件表达式]
[WITH ROLLUP]
CON ROLLUP puede lograr las mismas estadísticas sobre la base de datos estadísticos agrupados, agregando una fila total
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。
[Ejemplo 29] Realizar consulta grupal según el género de la tabla de alumnos.
SELECT *
FROM Stu
GROUP BY Ssex;
[Ejemplo] Consultar el número de alumnos matriculados en cada curso.
SELECT COUNT(*)
FROM sc
GROUP BY Cno;
[Ejemplo] Consulta de estudiantes que han tomado no menos de 3 cursos
SELECT Sno, COUNT(*)
FROM sc
GROUP BY Sno HAVING COUNT(*)>=3;
La diferencia entre la frase HAVING y la cláusula WHERE:
- La cláusula WHERE actúa sobre la tabla o vista básica, de la que se seleccionan las tuplas que cumplen las condiciones;
- La frase HAVING actúa sobre grupos, de los cuales se selecciona el grupo que cumple la condición.