mysql视图view 自增id_MySQL学习笔记之MySQL视图(view)

本文详细介绍了MySQL视图的概念、作用和操作,包括创建、查看、修改及删除视图。视图作为虚拟表,提供简洁的查询接口,增强数据安全性,并能隔离表结构变化对用户的影响。通过示例展示了如何创建和使用带有可选参数的视图,以及DML操作对基表数据的影响。
摘要由CSDN通过智能技术生成

一、基本概念

视图(view)是一种虚拟存在的表,作为一个select语句保存在数据字典中,其本身并不包含任何数据。视图的数据来自定义视图的查询中使用的表,使用视图动态获取数据。

基表:创建视图时使用到的表叫基表。

视图数据的变化会影响基表的数据,基表数据的变化也会影响视图的数据。

视图有什么用?为什么要使用视图呢?

视图主要有以下几点优点:

1)简单:由于视图的是由基表创建产生的,所以你不需要关心后面对应的表的结构、关联条件和筛选条件,基表的数据是已经是过滤好的复合条件的结果集。

2)安全:视图中的数据字段只是使用者被允许访问查询的字段,而表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。

3)数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,基表增加列对视图没有影响;基表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。

使用视图的大部分情况是为了保障数据安全性,提高查询效率。

二、视图操作

1)基本语法:create view view_name as 查询语句

例:创建一个获取所有学生各科成绩的视图

mysql> create view students_grade as select st.*,sc.score,su.name as 科目 from students st left join score sc on st.id=sc.student_id left join subject su on sc.subject_id=su.id;

Query OK, 0 rows affected (0.01 sec)

2)查看视图信息:

mysql> show create view students_grade \G;

*************************** 1. row ***************************

View: students_grade

Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `students_grade` AS select `st`.`id` AS `id`,`st`.`name` AS `name`,`st`.`gender` AS `gender`,`st`.`age` AS `age`,`sc`.`score` AS `score`,`su`.`name` AS `科目` from ((`students` `st` left join `score` `sc` on((`st`.`id` = `sc`.`student_id`))) left join `subject` `su` on((`sc`.`subject_id` = `su`.`id`)))

character_set_client: utf8mb4

collation_connection: utf8mb4_0900_ai_ci

1 row in set (0.00 sec)

有关视图的信息保存在information_schema数据库中的views表中,可以通过SQL语句查看视图信息

mysql> select * from information_s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值