1. Classifique os resultados da consulta (ordenar por)
Use a cláusula order by
para classificar por um ou mais atributos Ordem ascendente
: ASC (valor padrão) Ordem descendente: DESC
当排序列含有NULL时,认为NULL最小
ASC: Tuplas com valor nulo na coluna de classificação são exibidas primeiro
DESC: Tuplas com valor nulo na coluna de classificação são exibidas exibido por último
[Exemplo] Consulte o número de alunos e as notas dos alunos que fizeram o curso C3 e os resultados da consulta serão organizados em ordem decrescente de pontuação.
SELECT Sno,Grade
FROM sc
WHERE Cno='C3'
ORDER BY Grade DESC;
[Exemplo] Consultar a situação de todos os alunos, os resultados são dispostos em ordem crescente de turma, e os alunos da mesma turma são dispostos em ordem decrescente de aniversário.
SELECT *
FROM Stu
ORDER BY Sclass ASC, Sbirth DESC;
2. Limite o número de resultados da consulta exibidos (LIMIT)
Use a frase LIMIT m,n na cláusula SELECT.
Formato:
LIMIT [m,]n | n OFFSET m
Explicação: m representa o deslocamento, que é obtido do m-ésimo registro, e a primeira linha padrão é 0
n representa o número de linhas a serem obtidas
- limit N: retorna N registros
- offset M: Pular registros M, padrão M=0, não parece funcionar sozinho
- limit N,M : equivalente ao limite M offset N , começando do Nth registro, retorna M registros
[exemplo] consulta o nome do aluno dos 3 primeiros registros na tabela Stu
SELECT Sname
FROM Stu
LIMIT O,3;
或:LIMIT 3 OFFSET 0
3. Definir consulta (COUNT)
Funções agregadas comuns | Função |
---|---|
AVG() | retorno médio |
CONTAR() | Retorna o número de linhas |
PRIMEIRO() | Retorna o valor do primeiro registro |
DURAR() | Retorna o valor do último registro |
MAX() | retornar o valor máximo |
MIN() | retorno mínimo |
SOMA() | soma de retorno |
[Exemplo] Consultar a nota máxima dos alunos que fazem o curso C2. |
SELECT Cno, max(Grade)
FROM SC
WHERE Cno= 'C2';
Consulta para calcular o total de alunos da turma 1401
SELECT COUNT(*)
FROM Stu
WHERE Sclass='计算1401';
4. Consulta de grupo (agrupar por)
Formato gramatical:
GROUP BY 字段名 [HAVING 条件表达式]
[WITH ROLLUP]
WITH ROLLUP pode obter as mesmas estatísticas com base em dados estatísticos agrupados, adicionando uma linha total
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。
[Exemplo 29] Realizar consulta de grupo de acordo com o gênero da tabela de alunos.
SELECT *
FROM Stu
GROUP BY Ssex;
[Exemplo] Consultar a quantidade de alunos matriculados em cada curso.
SELECT COUNT(*)
FROM sc
GROUP BY Cno;
[Exemplo] Consultar alunos que fizeram pelo menos 3 cursos
SELECT Sno, COUNT(*)
FROM sc
GROUP BY Sno HAVING COUNT(*)>=3;
A diferença entre a frase HAVING e a cláusula WHERE:
- A cláusula WHERE atua na tabela ou view básica, da qual são selecionadas as tuplas que atendem às condições;
- A frase HAVING atua sobre grupos, dos quais é selecionado o grupo que satisfaz a condição.