(MySQL)笔记——实训五

题目

在这里插入图片描述
对XSCJ数据库完成以下视图操作。

1.创建XSCJ数据库上的CS_KC视图,包括计算机专业各学生的学号、其选
修的课程号及成绩。保证对该视图的修改都符合专业名为计算机这个条件。
	create or replace view CS_KC 
		as
		select XS.s_no,k_no,score 
		from XS ,XS_KC
		where  XS_KC.s_no=XS.s_no and s_pro='计算机'
		with check option;
2.创建XSCJ数据库上的计算机专业学生的平均成绩视图CS_KC_AVG,包括
学号(在视图中列名为num)和平均成绩(在视图中列名为score_avg)。
(提示: CS_KC_AVG视图可以利用CS_KC视图导出)
create or replace view CS_KC_AVG(num,score_avg)
		as
		select s_no,round(avg(score))
		from CS_KC
		group by s_no;
3.在视图CS_KC中查找计算机专业的学生学号和选修的课程号。
select s_no,k_no
	from CS_KC;

4.查找平均成绩在80分以上的学生的学号和平均成绩。
(提示:先创建学生平均成绩视图,再对视图进行查询)
select num, score_avg
	from CS_KC_AVG
	where score_avg >80;

5.创建视图CS_XS, 视图中包含数学专业的学生信息,并向CS_XS视图中插
入一条记录: ('081107', '李牧','数学','男', '1990-10-21', 50, NULL, NULL)。
create or replace view CS_XS
		as
		select * from XS
		where s_pro ='数学'
		with check option;
insert into CS_XS
		values('081107','李牧','数学','男','1990-10-21',50,NULL,NULL);
6.将CS_XS 视图中所有学生的总学分增加8。
	update CS_XS
		set s_credit=s_credit+8;
7.将CS_KC视图中学号为081101的学生的101课程成绩改为90。
update CS_KC
		set score = 90
		where s_no='081101';

8.删除CS_XS中男同学的记录。
	delete from CS_XS
		where s_gender = '男';

9.将CS_XS视图修改为只包含计算机专业学生的学号、姓名和总学分。
	alter view CS_XS
	as
	select s_no,s_name,s_credit
	from XS
	where s_pro = '计算机';
10. 将CS_XS视图删除。
	drop view CS_XS;

笔记

1.创建

create [or replace]//替换
	view 视图名 [(字段名列表)]
		as
			select语句
		[with check option];

2.修改视图
2.1 修改视图指修改数据库中已经存在的视图的定义
使用CREATE OR REPLACE VIEW语句修改视图

create or replace
			view 视图名 [(字段名列表)]
			as
				select语句
			[with check option];

使用ALTER语句修改视图

	alter view 视图名[(字段名列表)]
		aS
		select语句
		[with check option];

3.删除视图

DROP VIEW视图名1[视图名2]......;

4.通过视图插入数据
使用insert语句可以通过视图向基表中插入一条数据。

	insert [ into ]
		视图名[ (字段名1,字段名2......) ]
		values (1,2......);

5.通过视图修改数据
使用update语句可以通过视图修改基表中的数据。

Update 视图名
		SET 字段名1 =新值1 [,字段名2=新值2...]
		[WHERE 条件] ;

6.通过视图删除数据
如果视图来源于单个基表,使用delete语句可以通过视图删除基表中的数据。

Delete
		From 视图名
		[WHERE 条件];

7、总结讨论:当视图中包含包含哪些情况,视图的更新不能被执行?

创建视图的语句中使用了with check option,没有符合视图定义中where子句的条件
视图依赖于多张基表时插入数据
视图的字段中使用了聚合函数
视图的字段中使用了数学表达式
在定义视图的select语句中使用了distinct,group by,order by,having子句
  • 10
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值