- 创建视图view1,其内容包括20岁以上所有学生学号、姓名和年龄;
create view v1
as
select sno,sname,sage
from student
where sage > 20; - 创建视图view2,其内容包括20岁以上所有学生学号、姓名和年龄,并使用with check option;
create view v2
as
select sno,sname,sage
from student
where sage > 20
with check option; - 创建视图view3,其内容包括学生学号、姓名、课程号和成绩;
create view v3
as
select student.sno,sname,cno,grade
from student join sc
on student.sno = sc.sno; - 创建视图view4,其内容包括每门课程的平均成绩;
create view v4
as
select cno,avg(grade)
from sc
group by cno; - 为view1添加记录:学号11,姓名tom,年龄:18;
mysql> insert into v1
-> values(‘11’,‘tom’,18);
Query OK, 1 row affected (0.03 sec) - 查看view1的内容;
select * from v1; - 为view2添加记录:学号12,姓名jerry,年龄:19;结果如何?
mysql> insert into v2
-> values(‘12’,‘jerry’,19);
ERROR 1369 (HY000): CHECK OPTION failed ‘xkdb.v2’ - 为view3添加内容:学号:13,姓名:mary、课程号:c01,成绩:85;结果如何?
mysql> insert into v3
-> values(‘13’,‘mary’,‘c01’,85);
ERROR 1394 (HY000): Can not insert into join view ‘xkdb.v3’ without fields list - 为view4添加内容:平均成绩:85,结果如何?
mysql> insert into v4
-> values(‘c03’,85);
ERROR 1471 (HY000): The target table v4 of the INSERT is not insertable-into - 为学生表的学号列创建唯一的升序索引ix_sno;
create unique index ix_sno on student(sno asc); - 删除学生表的索引ix_sno;
drop index ix_sno on student;