Red de conocimiento informático - Problemas con los teléfonos móviles - laboratorio de SQL: consulta de tabla - avanzado

laboratorio de SQL: consulta de tabla - avanzado

¿CREAR?BASE DE DATOS?InformaciónEscuela?;

¿Crear?tabla?Departamento

( IDDep?int?primaria?key, NombreDep?varchar(20)?NOT?NULL

);

¿Crear?tabla?Estudiante?

(StuID?char(10)?constraint?pkStuID?primary?key constraint?chkStuID?check(StuID?like?' [A,B,Z][0-9][0-9][ 0-9][0-9][0-9][0-9]'), StuName?varchar(20)?not?null , StuAge?int?restricción?chkStuAge?check(StuAge?entre?y?100), StuSex?char(2)?constraint?chkStuSex?check(StuSex?in('masculino','femenino')) restricción?defStuSex? ¿Stugrade?float?constraint?chkStugrade?check(Stugrade?entre?0?y?100)?DepID?int?constraint?fkDepID?foreign?key?references?Department(DepID),

);

¿Crear?

¿Restringir la clave principal de pkStuCourse (StuID, CourseID)? CourseID)? ¿Puntuación?float?constraint?chkScore?check(Puntuación?entre?0?y?100)

); --P:

--Escribe la siguiente declaración de consulta

--. -1. Mostrar los campos de identificación del estudiante, nombre, número de departamento y nombre del departamento del Departamento de Ciencias de la Computación.

SELECCIONAR?SS.STUID,?SS.STUNAME,?DD.DEPID,?DD.DEPNAME DE?ESTUDIANTE?SS,?DEPARTAMENTO?DD DONDE?SS.DEPID?=?DD.DEPID

AND?DD.DEPNAME?=?Departamento de Ciencias de la Computación';

-2. Muestra los nombres, títulos de los cursos y calificaciones de los estudiantes del Departamento de Ciencias de la Computación.

SELECCIONE?SS.STUNAME,?CC.COURSENAME,?SSCC.SCORE FROM?STUDENT?SS,?DEPARTAMENTO?DD,?SC?SSCC,?CURSO?CC DONDE?SS.DEPID?=? DD.DEPID

Y?SS.STUID?=?SSCC.STUID

Y?SSCC.COURSEID?=?CC.COURSEID

Y?DD. DEPNAME?=?Departamento de Ciencias de la Computación';

--3. Haga coincidir la tabla de estudiantes y la tabla de departamento como la tabla principal. Cuando hay estudiantes que pertenecen al departamento correspondiente, se mostrará el nombre del departamento, el número de estudiante y el nombre del estudiante del departamento; si no hay estudiantes en un departamento, se mostrará una entrada vacía que contiene el nombre del departamento, el número de estudiante y el nombre del estudiante; se mostrará.

SELECCIONAR?DD.DEPNAME,?SS.STUID,?SS.STUNAME FROM?DEPARTMENT?DD,?STUDENT?SS --Unirse a la izquierda WHERE?DD.DEPID?=?SS.DEPID( );

- -4. Utilice una subconsulta para encontrar los nombres de los estudiantes en la misma ciudad que "Tom".

SELECT?SS.STUNAME FROM?STUDENT?SS WHERE?SS.STUCITY?=?(SELECT?STUCITY?FROM?STUDENT?WHERE?STUNAME?=?" Tom");

--5. Utilice subconsulta para buscar los nombres de los estudiantes que han tomado el curso "Base de datos".

SELECCIONAR?STUNAME DE?ESTUDIANTE DONDE?ESTUDIO?EN

(SELECCIONAR?ESTUDIO DE?SC?SSCC DONDE?SSCC.CURSEID?=

(SELECCIONAR ?COURSEID?DROM?COURSE?WHERE?COURSENAME?=?' Database'));

--6. /p>

SELECCIONAR ?DD.DEPID, ?DD.DEPNOMBRE DE?DEPARTAMENTO ?DD, ?ESTUDIANTE ?ST DONDE ?DD.DEPID?=?ST.DEPID GRUPO?POR?ST.DEPID

HAVING?AVG (ST.STUGRADE)?(SELECT?AVG(SS.STUGRADE)?FROM?STUDENT?SS);

--Consulta el número y número de estudiantes que obtuvieron calificaciones no inferiores a. 80 puntos en cualquier curso Nombre.

SELECT?SS.STUID,?SS.STUNAME FROM?STUDENT?SS ¿DÓNDE?SS.STUID?NOT?IN

(SELECT?SSCC.STUID?FROM?SC?SSCC ?WHERE?SSCC. SCORE?lt;?80);

--8. Consultar el nombre del estudiante con mayor puntaje en el curso "Principios de Bases de Datos"

SELECT? SS1.STUNAME DE?ESTUDIANTE?SS1,?SC?SSCC1,?CURSO?CC1 ¿DÓNDE?SS1.STUID?=?SSCC1.STUID

Y?SSCC1.COURSEID?=?CC1.COURSEID

AND ?CC1.COURSENAME?=?Principio de base de datos'

AND?SSCC1.SCORE?=?(SELECT?MAX(SSCC.SCORE)

FROM?SC? SSCC,?CURSO?CC

donde ?SSCC.COURSEID?=?CC.COURSEID y ?CC.COURSENAME?=?PRINCIPIOS DE BASE DE DATOS'

GRUPO?POR?SSCC.COURSEID) ;

--9.Establezca las calificaciones de todos los estudiantes en el Departamento de Ciencias de la Computación en 0.

ACTUALIZAR?SC?SSCC1

SET?SSCC1.SCORE ?=?0 ¿DÓNDE?SSCC1 .STUID?STUID(SELECCIONAR?SS.STUID DE?ESTUDIANTE?SS,?DEPARTAMENTO?DD

DÓNDE?SS.DEPID?=?DD.DEPID Y?DD.DEPNAME ?=?Departamento de Informática');

-10. Consulta a todos los estudiantes que no son "Departamento de Informática" y son menores de la edad mínima del "Departamento de Informática".

SELECCIONAR?ST.* DE?ESTUDIANTE?ST,?DEPARTAMENTO?DE DONDE?ST.DEPID?=?DE.DEPID

Y?DD.DEPNOMBRE?lt;gt; ?Departamento de Informática'

AND?ST.STUID?lt;gt;?(SELECT?MIN(SS.STUAGE) FROM?STUDENT?SS,?DEPARTMENT?DD

DÓNDE ?SS.DEPID?=?DD.DEPID AND?DD.DEPNAME?=?Departamento de Informática');

A ver si es tan agotador como quieres