Preguntas de práctica de base de datos 4 - consulta simple SQL (incluidas las respuestas)

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

Supongo que te gusta

Origin blog.csdn.net/ssdssa/article/details/108985057
Recomendado
Clasificación