Preguntas de práctica de base de datos consulta compleja de 6 bases de datos + índice

1. El propósito del experimento
1. Dominar la sintaxis básica de la instrucción SELECT y el método
de expresión de las condiciones de consulta ; 2. Dominar los tipos y métodos de expresión de las condiciones de consulta;
3. Dominar la expresión y el uso de consultas conjuntas;
4. Dominar la expresión y el uso de consultas anidadas;
5 . Comprender la representación y el uso de consultas de colección.
6. Dominar el uso de la creación de índices de gestión;

(1) Consulte los detalles de los cursos que comienzan con 'DB_' y el tercer último carácter es ';

select * from course
where cname like 'DB\_%s_'

(2) Consultar el nombre y número de estudiante del estudiante cuya segunda palabra en el nombre es 'Yang', así como el número de curso electivo y el nombre del curso;

select sname,student.sno,sc.cno,cname
from student,sc,course
where sname like '_阳%' 
and student.sno=sc.sno
and sc.cno=course.cno

(3) Indique la identificación del estudiante, el nombre, el departamento, el número de curso electivo y las calificaciones de los estudiantes que han tomado "matemáticas" o "inglés universitario";

select student.sno,sname,sdept,sc.cno,grade
from student,sc,course
where student.sno=sc.sno 
and sc.cno=course.cno
and cname in ('数学','大学英语')

(4) Consultar los detalles de todos los estudiantes que carecen de calificaciones;

select * from student,sc,course 
where student.sno=sc.sno 
and sc.cno=course.cno 
and grade is null

(5) Consultar la información de todos los estudiantes que sean diferentes de la edad de "Zhang Li" (asumiendo que el nombre es solo);

select * from student
where sage<>(
select sage from student 
where sname='张力'
)

(6) Consultar la identificación del estudiante, el nombre y el puntaje promedio de los estudiantes cuyo puntaje promedio del curso seleccionado es mayor que el de Zhang Li;

select student.sno,sname,平均成绩=AVG(grade)
from student,sc
where student.sno=sc.sno
group by student.sno,sname 
having AVG(grade)>(
	select AVG(grade)
	from student,sc
	where student.sname='张力' and student.sno=sc.sno
	group by student.sno,sname
)

(7) Enumere los créditos obtenidos por los estudiantes en el orden de "número de estudiante, nombre, facultad y créditos completados". Los créditos completados son la suma de los créditos de los cursos que han superado el examen;

select student.sno,sname,sdept,已修学分=SUM(ccredit)
from student,course,sc
where student.sno=sc.sno and sc.cno=course.cno
group by student.sno,sname,sdept 

(8) Indique la identificación del estudiante, el nombre, el departamento y las calificaciones de los estudiantes que solo toman un curso;

select student.sno,sname,sdept,grade
from sc,student
where student.sno=sc.sno and student.sno in (
select student.sno
from sc,student
where student.sno=sc.sno
group by student.sno
having COUNT (sc.cno)=1) 

(9) Busque la identificación del estudiante, el nombre y la identificación del curso del estudiante que haya tomado al menos un curso electivo que sea el mismo que el curso de tensión;

select student.sno,sname,cno
from student,sc
where student.sno=sc.sno and cno in (
select cno
from sc,student
where student.sno=sc.sno and student.sname='张力'
)

(10) Información básica de los estudiantes que solo toman los dos cursos de "Base de datos" y "Estructura de datos";

select student.sno,sname,Ssex,Sage,Sdept
from student,sc,course
where student.sno=sc.sno and
sc.cno=course.cno and
sc.sno in(select sc.sno from sc,course
where (cname='数据库'or cname='数据结构')and 
sc.cno=course.cno
group by sc.sno
having COUNT(*)=2)
group by student.sno,sname,Ssex,Sage,Sdept
having COUNT(*)=2

(11) Al menos la información básica de los estudiantes que hayan realizado los cursos de "Base de datos" o "Estructura de datos";

select student.sno,sname,sdept,sc.Cno,cname,grade
from student,sc,course
where student.sno=sc.sno 
and sc.Cno=course.cno and
sc.sno in(
select sc.sno from sc,course 
where (cname='数据库'or cname='数据结构')
and sc.Cno=course.cno )

(12) Enumere los detalles de todos los cursos seleccionados, incluido el número de curso, el nombre del curso, el número de estudiante, el nombre y las calificaciones;

select course.cno,cname,student.sno,sname,grade
from student,sc,course
where student.sno=sc.sno
and sc.cno=course.cno
order by course.cno

(13) * Consultar el número de curso y el nombre del curso seleccionado por un solo estudiante;

select sc.cno,cname
from sc,course
where sc.cno=course.cno
group by sc.cno,cname 
having COUNT(sc.sno)=1

(14) * La recuperación de los cursos estudiados incluye la identificación del estudiante y el nombre del curso estudiado por el estudiante 'Zhang Xiangdong';

select Student.Sno,Student.Sname
from Student,SC
where Student.Sno=SC.Sno 
and SC.Cno in (
select SC.Cno
from Student,SC
where Student.Sno=SC.Sno 
and Student.Sname='张向东')

2. Utilice declaraciones T-SQL para lograr las siguientes operaciones:
(1) Cree un índice agrupado único index_sno en la columna sno de la tabla de estudiantes

create unique clustered index index_sno on student (sno)

(2) Cree un índice único no agrupado index_sname en la columna sname de la tabla de estudiantes

create unique NONCLUSTERED index index_sname on student (sname)

(3) Cree un índice no agrupado index_sage en la columna de salvia de la tabla de estudiantes

CREATE NONCLUSTERED INDEX index_sage ON student(sage)

(4) Cree un índice compuesto no agrupado index_sno_cno en la columna sno y la columna cno de la tabla sc

CREATE NONCLUSTERED INDEX index_sno_cno ON sc(sno,cno)

(5) Elimine el índice index_snocno anterior

DROP index index_sno_cno ON sc

Supongo que te gusta

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