MySQL视图篇,视图的优缺点以及创建视图

2025-10-25 13:20:46

1、优点

简单化,数据所见即所得

安全性,用户只能查询或修改他们所能见到得到的数据

逻辑独立性,可以屏蔽真实表结构变化带来的影响

MySQL视图篇,视图的优缺点以及创建视图

2、缺点

性能相对较差,简单的查询也会变得稍显复杂

修改不方便,特变是复杂的聚合视图基本无法修改

MySQL视图篇,视图的优缺点以及创建视图

1、创建用户表

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(50) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

插入演示用户数据

INSERT INTO `t_user` VALUES ('1', '甲');

INSERT INTO `t_user` VALUES ('2', '乙');

INSERT INTO `t_user` VALUES ('3', '丙');

INSERT INTO `t_user` VALUES ('4', '丁');

INSERT INTO `t_user` VALUES ('5', '戍');

INSERT INTO `t_user` VALUES ('6', '己');

INSERT INTO `t_user` VALUES ('7', '庚');

INSERT INTO `t_user` VALUES ('8', '辛');

INSERT INTO `t_user` VALUES ('9', '壬');

INSERT INTO `t_user` VALUES ('10', '癸');

MySQL视图篇,视图的优缺点以及创建视图

2、创建用户信息表

DROP TABLE IF EXISTS `t_user_info`;

CREATE TABLE `t_user_info` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `uid` int(11) DEFAULT NULL,

  `age` varchar(20) DEFAULT NULL,

  `sex` varchar(20) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

插入演示信息数据

INSERT INTO `t_user_info` VALUES ('1', '1', '11', '男');

INSERT INTO `t_user_info` VALUES ('2', '2', '12', '女');

INSERT INTO `t_user_info` VALUES ('3', '3', '13', '男');

INSERT INTO `t_user_info` VALUES ('4', '4', '14', '女');

INSERT INTO `t_user_info` VALUES ('5', '5', '15', '男');

INSERT INTO `t_user_info` VALUES ('6', '6', '16', '女');

INSERT INTO `t_user_info` VALUES ('7', '7', '17', '男');

INSERT INTO `t_user_info` VALUES ('8', '8', '18', '女');

INSERT INTO `t_user_info` VALUES ('9', '9', '19', '男');

INSERT INTO `t_user_info` VALUES ('10', '10', '20', '女');

MySQL视图篇,视图的优缺点以及创建视图

1、语法结构:

{ CREATE|REPLACE } [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

VIEW view_name [{column_list}]

AS SELECT_STATEMENT

[WITH [CASCADED | LOCAL |] CHECK OPTION]

释义:

CREATE|REPLACE  : 【创建|替换已创建的】视图

ALGORITHM : 视图算法 1.UNDEFINED 系统自动选择算法 2.MERGE使用的视图语句与视图定义合并起来 3.TEMPTABLE 结果存入临时表,然后用临时表执行语句

view_name : 视图名称

column_list : 属性列

SELECT_STATEMENT :SELECT语句

[WITH [CASCADED | LOCAL |] CHECK OPTION] 表示视图在更新时保证在视图的权限范围内 1.CASCADED 默认值 更新视图时要满足所有相关视图和表的条件,LOCAL表示更新视图时满足该视图本身定义的条件即可。

MySQL视图篇,视图的优缺点以及创建视图

2、示例1:在单表中创建视图

创建视图

CREATE VIEW test_view_1 AS SELECT `name` FROM t_user;

查询视图

SELECT * FROM test_view_1;

MySQL视图篇,视图的优缺点以及创建视图

MySQL视图篇,视图的优缺点以及创建视图

3、示例2:指定视图字段名

创建视图

CREATE VIEW test_view_2(username) AS SELECT `name` FROM t_user;

查询视图

SELECT * FROM test_view_2;

MySQL视图篇,视图的优缺点以及创建视图

MySQL视图篇,视图的优缺点以及创建视图

4、示例3:在多表中创建视图

创建视图

CREATE VIEW test_view_3 (username, userage, usersex) AS SELECT

    t_user.`name`,

    t_user_info.age,

    t_user_info.sex

FROM

    t_user,

    t_user_info

WHERE

    t_user.id = t_user_info.uid;

查询视图

SELECT * FROM test_view_3;

MySQL视图篇,视图的优缺点以及创建视图

MySQL视图篇,视图的优缺点以及创建视图

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢