mysql实验8_mysql数据库实验8

- 这一次实验讲的是视图及简单的操作。

视图一经定义以后,就可以像表一样被查询、修改、删除和更新。所以我们也可以来进行增改删查操作。

select语句:用来创建视图的,可在SELECT语句中查询多个表或视图。

WITH CHECK OPTION:指出在可更新视图上所进行的修改都要符合select_statement所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。

OR REPLACE:给定了OR REPLACE子句,语句能够替换已有的同名视图。

3.假设当前数据库是YGGL,创建xscj数据库上的cs_kc视图,包括通信工程专业的学生的学号、姓名、其选修的课程号及成绩。要保证对该视图的修改都符合专业名为“通信工程”这个条件。使用show语句查询所创建的视图,并使用select语句查询该视图内容。

create or replace view xscj.cs_kc

as

select xs.学号,姓名,课程号,成绩

from xscj.xs,xscj.xs_kc

where xs.学号=xs_kc.学号 and xs.专业名='通信工程'

with check option;

show tables from xscj;

select * from cs_kc;

4. 在视图cs_kc中查找学生学号和平均成绩。

select 学号,avg(成绩)

from cs_kc

group by 学号;

5. 创建xscj数据库上的通信工程专业学生的选修课程门数视图cs_kc_c,包括学号(在视图中列名为num)和课程门数(在视图中列名为kc_c),并通过查询视图验证结果。

use xscj

create view cs_kc_c(num,kc_c)

as

select 学号,count(课程号)

from cs_kc

group by 学号;

select * from cs_kc_c;

6. 创建视图cs_xs,视图中包含出生日期是1994的学生信息,并向cs_xs视图中插入一条记录:(‘081256’,‘张三’,‘通信工程’,1,‘1994-10-21’,50,NULL,NULL)。使用select语句查询视图和原表的内容。

create or replace view cs_xs

as

select *

from xs

where 出生日期 regexp '^1994'

with check option;

insert into cs_xs

values('081256','张三','通信工程',1,'1994-10-21',50,NULL,NULL);

select * from cs_xs;

select * from xs;

7. 查找平均成绩在85分以上的学生的学号和平均成绩。

create view xs_kc_avg ( num,score_avg )

as

select 学号, avg(成绩)

from xs_kc

group by 学号;

8. 将cs_kc视图中学号为081220同学的成绩修改为90,姓名为王五,并使用select语句验证结果。

update cs_kc

set 成绩=90

where 学号='081220' ;

update cs_kc

set 姓名='王五'

where 学号='081220' ;

select * from cs_kc;

9. 删除cs_xs中张三同学(学号’081256’)的记录。

delete from cs_xs

where 学号 = '081256';

10. 将cs_xs视图修改为只包含通信工程专业学生的学号、姓名和总学分三列。

alter view cs_xs

as

select 学号,姓名,总学分

from xs

where 专业名 = '通信工程';

11. 删除视图cs_xs。

drop view cs_xs;

12. 创建YGGL数据库上的视图ds_view,视图包含departments表的全部列。

create or replace view yggl.ds_view

as

select *

from yggl.departments

with check option;

13. 创建视图employees_view,视图包含员工的号码、姓名和实际收入。

create view employees_view(员工号码,姓名,实际收入)

as

select employees.employeeid,name,(inCome-outCome)

from employees,salary

where employees.employeeid=salary.employeeid;

14. 创建视图employees_all_view,包含员工的号码、姓名、所在的部门名称和实际收入。

create view employees_all_view(员工号码,姓名,所在部门,实际收入)

as

select employees.employeeID,name,departmentName,(inCome-outCome)

from employees,salary,departments

where employees.employeeID=salary.employeeID

and employees.departmentID=departments.departmentID;

15. 从视图ds_view中查询出部门号为4的部门名称。

select departmentname from ds_view

where departmentid='4';

16. 从视图employees_view中查询出姓名为“李丽”的员工的实际收入。

select 实际收入 from employees_view

where 姓名='李丽';

17. 向视图ds_view中插入一行数据:6,财务部,财务管理。

.insert into ds_view values('6','财务部','财务管理');

18. 修改视图ds_view,将部门5的部门名称修改为“生产部”

update ds_view set departmentname='生产部'

where departmentid='5';

19. 修改视图employees_view中号码为000001的员工的姓名为“王五”。

update employees_view

set 姓名 ='王五'

where 员工号码='000001';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值