MySQL视图
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,前言:什么是视图?一张虚表,和真实的表一样。视图包含一系列带有名称的行和列数据。视图是从一个或多个表中导出来的,我们可以通过insert,update,delete来操作视图。当通过视图看到的数据被修
千家信息网最后更新 2026年10月31日MySQL视图
前言:
什么是视图?
一张虚表,和真实的表一样。视图包含一系列带有名称的行和列数据。视图是从一个或多个表中导出来的,我们可以通过insert,update,delete来操作视图。当通过视图看到的数据被修改时,相应的原表的数据也会变化。同时原表发生变化,则这种变化也可以自动反映到视图中。
视图具有以下优点:
- 简单化:看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化操作。经常被使用的查询可以制作成一个视图;
- 安全性:通过视图用户只能查询和修改所能见到的数据,数据库中其他的数据既看不见也取不到。数据库授权命令可以让每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定的行,列上;
- 逻辑数据独立性:视图可帮助用户屏蔽真实表结构变化带来的影响。
视图和表的区别以及联系是什么?
两者的区别:
- 视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化的表,而表不是;
- 视图没有实际的物理记录,而表有;
- 表是内容,视图窗口;
- 表和视图虽然都占用物理空间,但是视图只是逻辑概念存在,而表可以及时对数据进行修改,但是视图只能用创建语句来修改 ;
- 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL 语句的集合。从安全角度来说,视图可以防止用户接触数据表,因而不知道表结构 ;
- 表属于全局模式中的表,是实表。而视图属于局部模式的表,是虚表;
- 视图的建立和删除只影响视图本身,而不影响对应表的基本表。
两者的联系:
视图是在基本表之上建立的表,它的结构和内容都来自于基本表,它依赖基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本的抽象和逻辑意义上建立的关系。
一、创建视图
1、创建单表视图
mysql> create table t(quantity int,price int); Query OK, 0 rows affected (0.01 sec)mysql> insert into t values(3,50); Query OK, 1 row affected (0.00 sec)mysql> create view view_t as select quantity,price,quantity*price as tottal from t;Query OK, 0 rows affected (0.01 sec)mysql> select * from view_t; +----------+-------+-------+| quantity | price | total |+----------+-------+-------+| 3 | 50 | 150 |+----------+-------+-------+1 row in set (0.00 sec)2、创建多表视图
mysql> create table student -> ( -> s_id int(3) primary key, -> s_name varchar(30), -> s_age int(3), -> s_sex varchar(8) -> );Query OK, 0 rows affected (0.01 sec)mysql> create table stu_info -> ( -> s_id int(3), -> class varchar(50), -> addr varchar(100) -> );Query OK, 0 rows affected (0.01 sec)mysql> insert into stu_info values -> (1,'erban','anhui'), -> (2,'sanban','chongqing'), -> (3,'yiban','shangdong');mysql> create view stu_class(id,name,class) as -> select student.s_id,student.s_name,stu_info.class -> from student,stu_info where student.s_id=stu_info.s_id;3、查看视图的相关信息
mysql> desc stu_class;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(3) | NO | | NULL | || name | varchar(30) | YES | | NULL | || class | varchar(50) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec)mysql> show table status like 'stu_class'\G*************************** 1. row *************************** Name: stu_class Engine: NULL Version: NULL Row_format: NULL Rows: NULL Avg_row_length: NULL Data_length: NULLMax_data_length: NULL Index_length: NULL Data_free: NULL Auto_increment: NULL Create_time: NULL Update_time: NULL Check_time: NULL Collation: NULL Checksum: NULL Create_options: NULL Comment: VIEW1 row in set (0.01 sec)mysql> show create view stu_class\G*************************** 1. row *************************** View: stu_class Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `stu_class` AS select `student`.`s_id` AS `id`,`student`.`s_name` AS `name`,`stu_into`.`class` AS `class` from (`student` join `stu_into`) where (`student`.`s_id` = `stu_into`.`s_id`)character_set_client: utf8collation_connection: utf8_general_ci1 row in set (0.00 sec)mysql> select * from information_schema.views where TABLE_SCHEMA='test02'\G4、修改视图
方式一:
mysql> create or replace view view_t as select * from t;Query OK, 0 rows affected (0.00 sec)mysql> select * from view_t; +----------+-------+| quantity | price |+----------+-------+| 3 | 50 |+----------+-------+1 row in set (0.00 sec)方式二:
mysql> alter view view_t(abc) as select quantity from t; Query OK, 0 rows affected (0.00 sec)mysql> desc view_t; +-------+---------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------+------+-----+---------+-------+| abc | int(11) | YES | | NULL | |+-------+---------+------+-----+---------+-------+1 row in set (0.00 sec)5、更新视图
1)update指令更新
mysql> select * from t;+----------+-------+| quantity | price |+----------+-------+| 3 | 50 |+----------+-------+1 row in set (0.00 sec)mysql> select * from view_t;+------+| abc |+------+| 3 |+------+1 row in set (0.00 sec)mysql> update view_t set abc=5;Query OK, 1 row affected (0.01 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> select * from view_t; +------+| abc |+------+| 5 |+------+1 row in set (0.00 sec)mysql> select * from t; +----------+-------+| quantity | price |+----------+-------+| 5 | 50 |+----------+-------+1 row in set (0.00 sec)2)insert指令更新
mysql> select * from t; +----------+-------+| quantity | price |+----------+-------+| 5 | 50 |+----------+-------+1 row in set (0.00 sec)mysql> select * from view_t; +------+| abc |+------+| 5 |+------+1 row in set (0.00 sec)mysql> insert into t values(3,5); Query OK, 1 row affected (0.00 sec)mysql> select * from view_t; +------+| abc |+------+| 5 || 3 |+------+2 rows in set (0.00 sec)mysql> select * from t; +----------+-------+| quantity | price |+----------+-------+| 5 | 50 || 3 | 5 |+----------+-------+2 rows in set (0.00 sec)3) delete指令删除表数据
mysql> create view view_t2(qty,price,total) as select quantity,price,quantity*price from t;mysql> select * from view_t2; +------+-------+-------+| qty | price | total |+------+-------+-------+| 5 | 50 | 250 || 3 | 5 | 15 |+------+-------+-------+2 rows in set (0.00 sec)mysql> delete from view_t2 where price=5; Query OK, 1 row affected (0.00 sec)mysql> select * from view_t2; +------+-------+-------+| qty | price | total |+------+-------+-------+| 5 | 50 | 250 |+------+-------+-------+1 row in set (0.00 sec)mysql> select * from t; +----------+-------+| quantity | price |+----------+-------+| 5 | 50 |+----------+-------+1 row in set (0.00 sec)6、删除视图
mysql> drop view view_t;
视图
数据
数据库
用户
语句
变化
指令
数据表
结构
逻辑
影响
更新
查询
安全
内容
只是
方式
模式
物理
联系
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网新科技
为想互联网科技怎么样
科技创新与互联网经济
互联网科技垄断
互联网科技资迅
有木互联网科技
时间互联网络科技
互联网金融和金融科技
互联网科技素材视频竖屏
农村开互联网科技讲堂
创业天下互联网科技有限公司
厦门比较好的科技互联网公司
互联网还是高科技吗
重庆互联网医院沙龙医盟信息科技
世界互联网领先科技成果获奖
无锡工业互联网科技有限公司
互联网公司高科技产品
中天科技中国工业互联网
湖北辰鑫科技互联网
现代科技的标志之一的互联网
互联网科技公司
厦门中拓互联网络科技有限公司
互联网科技卖菜
互联网科技开发公司
齐家互联网科技
顶级互联网科技成果有哪些
新兴科技互联网创新大赛颁奖典礼
互联网科技与大数据专业
深圳育鹏互联网科技有限公司招聘
互联网企业和网络科技有限公司