第6次作业-索引和视图
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/uzz/cs3 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/uzz/cs3/homework/13061 |
这个作业的目标 | <第6次作业-索引和视图 > |
1.使用SQL语句ALTER TABLE分别删除studentsdb数据库的student_info表、grade表、curriculum表的主键索引。
alter table student_info
drop primary key
alter table grade
drop primary key
alter table curriculum
drop primary key
2.使用SQL语句为curriculum表的课程编号创建唯一性索引,命名为cno_idx。
CREATE UNIQUE INDEX cno_idx on curriculum(课程编号)
3.使用SQL语句为grade表的“分数”字段创建一个普通索引,命名为grade_idx。
CREATE INDEX grade_idx on grade(分数)
4.使用SQL语句为grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_sid_cid_idx。
CREATE UNIQUE INDEX grade_sid_cid_idx on grade(学号,课程编号)
5.查看grade表上的索引信息。
SHOW INDEX FROM grade
6.使用SQL语句删除索引grade_idx。再次查看grade表上的索引信息。
DROP INDEX grade_idx on grade
show index from grade
7.使用SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。
CREATE VIEW v_stu_c as
select s.学号,姓名,g.课程编号 from student_info s,grade g, curriculum c
where s.学号=g.学号 and g.课程编号=c.课程编号
select * from v_stu_c
where 学号='0003'
8.基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图包括所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的课程平均分。
CREATE view v_stu_g AS SELECT s.学号,姓名,课程名称,分数
from student_info s,curriculum c,grade g
where s.学号=g.学号
select avg(分数) from v_stu_g
WHERE 学号='0001'
9.使用SQL语句修改视图v_stu_g,显示学生的学号、姓名、性别。
alter view v_stu_g as select 学号,姓名,性别 from student_info
10.利用视图v_stu_g为student_info表添加一行数据:学号为0010、姓名为陈婷婷、性别为女。
insert into v_stu_g
values('0010','陈婷婷','女')
11.利用视图v_stu_g删除学号为0010的学生记录。
delete from v_stu_g
where 学号='0010'
12.利用视图v_stu_g修改姓名为张青平的学生的高等数学的分数为87。
update grade set 分数=87
where 学号=(select 学号 from v_stu_g where 姓名='张青平')
and 课程编号=(select 课程编号 from curriculum where 课程名称='高等数学')
13.使用SQL语句删除视图v_stu_c和v_stu_g。
drop view v_stu_c
drop view v_stu_g
本文作者:王歡樂樂樂樂樂樂le
本文链接:https://www.cnblogs.com/w-h-l/p/17778307.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步