以下实验内容基于eshop数据库:
1.向members表中增加一条记录:
‘fengxk’,‘冯向克’,‘男’,‘1978-06-28’,‘北京市’,5000.0,‘fxk0628’
2. 将members表中“liuzc518”的会员密码修改为“liuzc110518”,并查看该表中的记录改变情况;
3.在members表中创建地址为“河南平顶山”的会员的视图V_addr,且更新数据时自动检查条件;
4.在orders表中创建购买了商品号为“0910810004”商品的视图V_buy;
5.在members和orders表上创建“河南平顶山”的会员购买了商品号为“0240810333”商品的视图V_addr_buy;
6.在视图V_addr上查询性别为“男”的会员信息;
7.在视图V_addr中增加一条记录('zhangsan','张三','1988-06-28','男','北京',50000.0,'zhangsan0 628'),根据运行结果排错;
8.将视图V_addr中会员号为“liuzc518”的会员的密码修改为“liuzc0518”,并查看members中记录的改变情况;
9.在V_addr中删除会员号为“fengxk”的记录,并查看members中记录的改变情况;
10.删除视图V_addr_buy、V_buy和V_addr;
11.对比视图和表的异同点。
--1.向members表中增加一条记录:‘fengxk’,‘冯向克’,‘男’,‘1978-06-28’,‘北京市’,5000.0,‘fxk0628’
insert
members(M_account,M_name,M_sex,M_birth,M_address,M_salary,M_password)
values('fengxk','冯向克','男','1978-06-28','北京市',5000.0,'fxk0628')
--2. 将members表中“liuzc518”的会员密码修改为“liuzc110518”,并查看该表中的记录改变情况;
update members
set M_password='liuzcll0518'
where M_password='liuzc518'
--3.在members表中创建地址为“河南平顶山”的会员的视图V_addr,且更新数据时自动检查条件;
create view V_addr
AS
select M_account,M_name,M_sex,M_birth,M_address,M_salary,M_password
from members
where M_address='河南平顶山'
--4.在orders表中创建购买了商品号为“0910810004”商品的视图V_buy;
create view V_buy(商品编号,会员账号,商品号,商品销量,商品生产日期,商品确认状态,商品支付状态,商品发货状态)
as
select P_no,M_account,P_no,O_quantity,O_date,O_confirm_state,O_pay_state,O_send_state
from orders
where P_no='0910810004'
--5.在members和orders表上创建“河南平顶山”的会员购买了商品号为“0240810333”商品的视图V_addr_buy;
create view V_addr_buy(会员账号,会员名,会员性别,会员生日,会员家庭住址,会员月薪,会员密码,会员所购买商品号)
as
select members.M_account,members.M_name,members.M_sex,members.M_birth,members.M_address,members.M_salary,members.M_password,orders.P_no
from members,orders
where members.M_account=orders.M_account
and members.M_address='河南平顶山'
and orders.P_no='0240810333'
--6.在视图V_addr上查询性别为“男”的会员信息;
select *
from V_addr
where 会员性别='男'
--7.在视图V_addr中增加一条记录('zhangsan','张三','1988-06-28','男','北京',50000.0,'zhangsan0 628'),根据运行结果排错;
insert V_addr
values ('zhangsan','张三','1988-06-28','男','北京',50000.0,'zhangsan0628')
--8.将视图V_addr中会员号为“liuzc518”的会员的密码修改为“liuzc0518”,并查看members中记录的改变情况;
update V_addr
set 会员账号='liuzc0518'
where 会员账号='liuzc518'
--9.在V_addr中删除会员号为“fengxk”的记录,并查看members中记录的改变情况;
delete V_addr
where 会员账号='fengxk'
--10.删除视图V_addr_buy、V_buy和V_addr;
drop view V_addr_buy,V_buy,V_addr
--11.对比视图和表的异同点。
数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作
表是数据库中数据存储的基础,而视图只是为了满足某种查询要求而建立的一个对象。