12.mysql 基础之视图

定义视图是封装了基表的select语句,不是真实存储数据。

创建表:

create table emploee
(
id int primary key,
name varchar(20),
gender char(1),
saraly decimal(10,2),
department_id  int,
manger_man  varchar(10)
)

create table departments
(dept_id int primary key,
 dept_name varchar(20)
 
)

创建视图方式一:

create  or replace view emp_v1
as 
select  id,name,saraly from emploee

创建视图方式二:

create  or replace view emp_v2(id,name_v2,sal_v2)
as 
select  id,name,saraly from emploee

创建视图 :多表查询

create  or replace view emp_v3
as 
select  e.id,e.name,e.saraly,d.dept_name  from emploee e join departments d on
e.id=d.dept_id

查看视图:

desc emp_v3

视图插入数据:

insert into emp_v1 
values(106,'jack',5000),
(107,'rose',8000)
视图修改数据:

update emp_v1 set saraly =5500 where id =101 

视图删除数据:

delete from emp_v1 where id =101 

视图查询数据:

select * from  emp_v1 

修改视图方式一:

create  or replace view emp_v1
as 
select  id,name,saraly from emploee where saraly >1000

修改视图方式二

alter view emp_v1 
as 
select  id,name,saraly from emploee where saraly <9000

删除视图:

drop view emp_v1

修改失败情况:

create  or replace view emp_v4(dept_id,max_salay)
as 
select department_id ,max(saraly) from emploee4 group by department_id 

insert into emp_v4 values(70,8000) #原表中没有最大薪资字段

 

注:1) 对视图修改数据,相当于对基表修改数据,视图按要求显示字段,可以用来控制权限

       2)小的项目直接对表操作,复杂的项目才考虑视图, 而且如果表字段经常变更,维护成本很高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值