Experimento de base de datos de operación de vista de sqlserver

Cree una vista de estudiantes cuyo número de departamento sea 01;

create view department
as select *
from student
where clno='01';

Cree una vista con el número de curso 001 y genere el número de estudiante, el nombre, el nombre del curso y las calificaciones de los estudiantes que han tomado este curso;

crear vista class_001
como select sc.sno,sname,cname,score
from estudiante,sc,curso
donde curso.cno='001' y curso.CNo=sc.CNo y
sc.SNo=estudiante.SNo;

Use la vista creada en 2 para consultar los nombres de los estudiantes que reprobaron el examen del curso con el número de curso 001;

seleccione sname
de class_001
donde puntuación <60;

Cree una vista del estudiante de apellido Wang, genere el número y el nombre del estudiante, y solicite el uso posterior de CON OPCIÓN DE VERIFICACIÓN [CON OPCIÓN DE VERIFICACIÓN significa que al usar la vista para realizar la actualización (ACTUALIZAR), insertar (INSERTAR) y eliminar (ELIMINAR ) operaciones, es necesario asegurarse de que el elemento actualizado El grupo satisfaga la condición del predicado en la definición de la vista, es decir, la expresión condicional en la declaración de la imagen];

cree la vista xing_wang
como seleccione sno, sname
de Student
donde sname como '王%'
con la opción de verificación;

Cree una vista del estudiante de apellido Wang, emita el número y el nombre del estudiante y solicite no usar CON OPCIÓN DE VERIFICACIÓN;

cree la vista xing_wang2
como seleccione sno, sname
de Student
donde sname como '王%';

Inserte el registro (00051, Li Ming) en la vista establecida en 4 e inserte (00052, Li Ming) en la vista establecida en 5, luego verifique la diferencia y verifique los cambios en la tabla Student y las dos vistas en al mismo tiempo, luego inserte (00053, Wang Ming) en la vista creada en 4, y verifique los cambios de la tabla Student y los cambios de las dos vistas;

Insertar en la vista creada en 4 (00051, Li Ming)

insert 
into xing_wang 
values('00051','Li Ming');--failure
--El intento de inserción o actualización ha fallado porque la vista de destino o una vista abarcada por la vista de destino especificada CON OPCIÓN DE VERIFICACIÓN, y uno o más resultados las filas de la operación no cumplen las restricciones de CHECK OPTION.

Insertar en la vista creada en 5 (00052, Li Ming)

insertar 
en valores xing_wang2 
('00052','Li Ming');--Éxito

Insertar en la vista creada en 4 (00053, Wang Ming)

insertar 
en 
valores xing_wang2('00053','Wang Ming');--éxito

Cree una vista del nombre del curso, la identificación del estudiante electivo y las calificaciones de los cursos impartidos por el Sr. Zhang San;

cree la vista zhangsan_t
como seleccione curso.cname,sc.SNo,sc.Puntuación
de curso,sc,Profesor
donde curso.CTno=profesor.Tno y profesor.TName='张三' y curso.CNo=sc.CNo;

De acuerdo con la vista integrada en 7, vea si se pueden completar las siguientes operaciones: (1) agregue 1 a una de las calificaciones de los estudiantes, (2) elimine una fila de datos, (3) inserte una fila de datos;

--(1) Sumar 1 a la calificación de uno de los estudiantes;

actualizar zhangsan_t
set Puntuación = Puntuación+1
donde sno='00001';

--(2) Eliminar una fila de datos;

delete 
from zhangsan_t
where sno='00002';
--La vista o función 'zhangsan_t' no se puede actualizar porque la modificación afectará a varias tablas base.

--(3) Insertar una fila de datos;

insertar
en
los valores de zhangsan_t ('estructura de datos', '00007', '77');
--La vista o función 'zhangsan_t' no se puede actualizar porque la modificación afectará a varias tablas base.

Cree una vista de la identificación de estudiante y el promedio de calificaciones de un estudiante;

crear vista stu_sno_score
como seleccionar sno,avg(score) promedio de calificación -- la creación de la vista o función falló porque no se especificó un nombre de columna para la columna 2.
del grupo sc por sno;

Eliminar la vista creada por 1;

departamento de vista de gota;

Cree una vista del número de estudiante, el nombre del estudiante y el total de créditos que ha tomado cada estudiante, y cifre la vista al crearla (sugerencia: use CON CIFRADO);

cree la vista stu_message2 CON CIFRADO
como select Student.sno,sname,总学分
    from student,(select sno,sum(course.ccredits) 总学分 
        from sc,course 
        where sc.CNo=course.CNo 
        group by sno) sc1
    donde estudiante. SNo=sc1.SNo;

Use el procedimiento almacenado sp_helptext para ver las vistas creadas por 9 y 11;

EJECUTIVO sp_helptext'stu_sno_score';--9

EJECUTIVO sp_helptext'stu_message';--11

Use la ventana para modificar directamente en la vista creada en 9, y el contenido requerido se cambia al número de estudiante, nombre, número de curso, nombre del curso y calificación del estudiante.

Supongo que te gusta

Origin blog.csdn.net/m0_64206989/article/details/129956446
Recomendado
Clasificación