mysql基础_视图
2023/5/21 1:22:25
本文主要是介绍mysql基础_视图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
介绍
MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。
优点
-
定制用户数据,聚焦特定的数据
-
简化数据操作
-
提高数据的安全性
-
共享所需数据
-
更改数据格式
-
重用 SQL 语句
语法
创建视图
create view library2_view as select * from library2;
其中library2_view是视图名称,,使用的时候自己起名字,as后面的语句是DQL语句。
删除视图
drop view library2_view;
其中library2_view是视图名称,使用的时候自己起名字
实操
对视图的操作会影响到原来表中的数据,看一下下面的例子,可以打开命令行跟着敲,印象会更深刻。
准备数据:
先在mysql中创建一个数据库,复制下面的命令,在自己电脑上的某个位置创建sql文件,粘贴命令,使用**source **创建表结构和数据
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for library -- ---------------------------- DROP TABLE IF EXISTS `library`; CREATE TABLE `library` ( `id` int(0) NOT NULL AUTO_INCREMENT, `name` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `description` varchar(1000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of library -- ---------------------------- INSERT INTO `library` VALUES (1, '南图', '啊啊啊啊'); INSERT INTO `library` VALUES (2, '北图', '啊啊啊啊'); INSERT INTO `library` VALUES (3, '教师之家', '啊啊啊啊'); INSERT INTO `library` VALUES (4, '什么', '什么鬼'); INSERT INTO `library` VALUES (5, '什么', '什么鬼'); INSERT INTO `library` VALUES (6, '什么', '什么鬼'); SET FOREIGN_KEY_CHECKS = 1;
小插曲
如果发现导入表后查看数据时,数据是乱码,而用navicat显示时却发现正常,输入下面命令即可解决。
set character_set_results=GBK;
创建视图
create view library_view as select * from library;
查询
select * from library_view;
发现跟原来表中的数据一样。
插入
insert into library_view(id,name,description) values(7,'你是','你是谁');
插入中文是可能会报1366错误,这是因为有中文,直接使用下面的命令,再次插入发现成功。
set names gbk;
再次查看原来表中的数据,发现插入成功。
修改
update library_view set description = '你' where name = '什么';
删除
delete from library_view;
发现原来表中的数据全部清空
在实际开发中的作用
视图大多在于一些复杂的sql语句身上,就好比关联表定义表的别名,然后方便去关联条件。如权限管理,用户需要关联角色、权限。那么写sql就较长看起来也复杂一点,那使用视图就可以方便去操作,直接调用视图即可查看。再比如采购人员,可能需要一些与其有关的数据,而与他无关的数据,对他没有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视图,以后他在查询数据时,只需要使用 select * from 视图的名称 就可以了。
这篇关于mysql基础_视图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-12部署MySQL集群项目实战:新手入门教程
- 2024-10-12部署MySQL集群教程:新手入门指南
- 2024-10-12MySQL读写分离教程:入门与实践指南
- 2024-10-12部署MySQL集群学习:从入门到实践指南
- 2024-10-12部署MySQL集群入门教程
- 2024-10-11MySQL集群部署学习:入门教程
- 2024-10-11MySQL集群部署入门教程
- 2024-10-11初学者指南:部署MySQL集群
- 2024-10-09MySQL教程:初学者必备指南
- 2024-09-21MySQL集群部署资料:新手入门教程