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