Fines experimentales
1. Dominar la gramática básica de la instrucción SELECT y el método
de expresión de las condiciones de consulta ; 2. Dominar las expresiones de las condiciones de consulta y los métodos de uso;
3. Dominar las funciones y los métodos de uso de la cláusula GROUP BY;
4. Dominar las funciones y el uso de la cláusula HAVING Método:
5. Comprender la función y el uso de la cláusula ORDER BY.
1. Enumere todos los estudiantes cuyo apellido no es Liu;
select *
from student
where sname not like '刘%'
2. Enumere los estudiantes cuyo apellido es "Shen" y su nombre completo tiene 3 caracteres chinos;
select *
from student
where sname like '沈%' and LEN(sname)=3
3. Mostrar la información básica de los estudiantes nacidos después de 1985;
select * from student
where year(getdate())-sage>1985
4. Consultar la información básica de todos los cursos cuyo nombre de curso contenga la cadena "datos";
select * from course
where cname like '数据%'
5. Muestre la identificación del estudiante, nombre, sexo, edad y departamento del estudiante cuyo octavo o noveno dígito es 1, 2, 3, 4 o 9;
select * from student
where sno like '_______[12349]%'
and sno like '________[12349]%'
6. Enumere los estudiantes que han tomado el curso '1', en orden descendente de calificaciones;
select sno,grade from sc
where cno='1'
order by grade desc
7. Enumere el número de estudiantes de todos los estudiantes que han tomado los cursos "1" y "2" al mismo tiempo;
select sno from sc
where cno ='1' and
sno in(select sno from sc where cno='2')
8. Enumere toda la información en el programa del curso, organizada en orden ascendente de los cursos previos;
select * from course
order by cpno asc
9. Enumere todos los estudiantes cuya edad está por encima del promedio, en orden descendente de edad;
select * from student
where sage>(select AVG(sage)from student)
order by sage desc
10. Muestre la identificación del estudiante, nombre, sexo, año de nacimiento y departamento de todos los estudiantes en orden ascendente de año de nacimiento, y especifique los encabezados de columna en el conjunto de resultados como "identificación del estudiante, nombre, género, año de nacimiento, departamento";
select sno 学号,sname 姓名,ssex 性别,
YEAR(GETDATE ())-sage 出生年份,
sdept 院系
from student
order by YEAR(GETDATE ())-sage asc
11. Muestre el número de estudiante, el número de curso y las calificaciones de los estudiantes cuyas calificaciones de curso están entre 70 y 80 en orden descendente de número de curso y grado;
select * from sc
where grade>=70 and grade<80
order by cno desc,grade desc
12. Muestre el número total de estudiantes y la edad promedio en la tabla de información del estudiante Los encabezados de las columnas en el conjunto de resultados se designan como "número total de estudiantes, edad promedio";
select COUNT(sno)学生总人数,
AVG(sage)平均年龄
from student
13. Mostrar el número de cursos electivos para cada estudiante cuyo número de cursos electivos sea mayor a 3;
select Sno,COUNT(sno)
from sc
group by sno having COUNT(sno)>3
14. Mostrar el número total de cursos electivos, el puntaje más alto, el puntaje más bajo y el puntaje promedio en orden descendente del número de curso;
select cno,COUNT(*),MAX(grade),
MIN(grade),AVG(grade)
from sc
group by cno
order by cno desc
15. Muestre el número de estudiantes y la calificación promedio de cada estudiante cuyo puntaje promedio sea mayor que el puntaje promedio de los estudiantes "200515001";
select sno,AVG(grade)
from sc
group by sno
having AVG(grade)>(select AVG(grade)
from sc where sno='200515001')
16. Muestra el número y la tasa de aprobación de cada curso electivo;
select COUNT(case when grade>=60
then 1 end)各课程及格人数,
CAST(count(case when grade>=60
then 1 end)/count(*)as float)及格比率
from sc
group by cno
17. Mostrar el número de estudiante con el mayor número de cursos electivos y el número de estudiante con el menor número de cursos electivos;
select sno 学号,COUNT(cno)选修课程数
from sc
group by sno
having COUNT(cno)>=all (select COUNT(cno)
from sc
group by sno)
or COUNT(cno)<=all(select COUNT(cno)
from sc
group by sno)
18. Muestre el número de estudiantes masculinos y femeninos en cada facultad, y los encabezados de las columnas en el conjunto de resultados se designan como "Nombre del departamento, Número de niños, Número de niñas";
select sdept as 院系名称,
COUNT(ssex) as 男生人数
from student
where ssex='男'
group by sdept
19. Enumere el número de estudiantes y las calificaciones promedio de los estudiantes que han reprobado dos o más cursos (incluidos dos);
select sno,AVG(grade)
from sc
where grade<60
group by sno
having COUNT (cno)>=2