Note/数据库导论/笔记/数据库笔记06——视图——2022-04-05.md

154 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 视图
## 一、视图概述
虚拟表,是从数据库中一个或多个表中导出来的
简单,安全性,权限限制
## 二、创建视图create view
```mysql
create view 视图名 as 查询语句;
示例:
create view vt as select quantity,price,quantity*price from t;
```
![image-20220405082050293](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405082050293.png)
```mysql
create view 视图名(表中列新名称) as 查询语句;
示例:
create view vt2(qty,p,total) as select quantity,price,quantity*price from t;
```
![image-20220405082320391](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405082320391.png)
```mysql
在多个表中创建视图
create view vt4 as select stu.s_id,name,glass from stu join info on stu.s_id=info.a_id;
```
## 三、查看视图
### 1.describe查看视图基本信息
```mysql
desc vt4;
```
![image-20220405084010690](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405084010690.png)
### 2.show table status like'视图名'语句查看视图的基本信息
查询视图信息:
```mysql
show table status like 'vt4';
```
![image-20220405085355433](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405085355433.png)
查询结果comment值为view说明该为视图其他大部分信息为null说明是一个虚表
查询表信息:
```mysql
show table status like'stu';
```
![image-20220405085422810](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405085422810.png)
查询结果包含了存储引擎、行数等信息comment信息为空这是表和视图查询结果的区别
### 3.show create view 视图名:语句查看视图的详细信息(视图名、创建视图的语句等信息)
```mysql
show create view vt4;
```
![image-20220405090735295](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405090735295.png)
### 4.在views表中查询所有视图
```mysql
select * from information_schema.views;
```
## 四、修改视图
### 1.create ro replace view
```mysql
create ro replace view 视图名 as 查询语句;
示例:
create ro replace view vt as select * from t;
```
![image-20220405091444983](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405091444983.png)
### 2.alter view
```mysql
alter view 视图名 as 查询语句;
示例:
alter view vt as select price from t;
```
![image-20220405091450188](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405091450188.png)
###
## 五、更新视图(相当于更新基本表)
# 1.update
```mysql
update 视图名 set 字段名=新值;
示例:(表中数据跟随更改)
update vt set price=30;
```
![image-20220405091758090](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405091758090.png)
### 2.insert
```mysql
insert into 视图名 values(数据);
示例:
insert into vt values(80);
```
![image-20220405092415253](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405092415253.png)
### 3.delect
```mysql
delete from 视图名 where 条件;
示例:
delete from vt where price=80;
```
![image-20220405092640643](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405092640643.png)
## 六、删除视图
```mysql
drop view 视图名;
添加判断
drop view if exists vt;
```
![image-20220405093346162](https://yovinchen-1308133012.cos.ap-beijing.myqcloud.com/image-20220405093346162.png)
## 七、综合案例