一分钟带你了解MySQL——玩转视图
一. 视图
什么是视图
视图,虚拟表,从一个表或多个表中查询出来的表,作用和真实表一样,包含一系列带有行和列的数据。视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图可以使用户操作方便,并保障数据库系统安全。
视图特点
优点:
● 简单化,数据所见即所得。
● 安全性,用户只能查询或修改他们所能见到得到的数据。
● 逻辑独立性,可以屏蔽真实表结构变化带来的影响。
缺点:
● 性能相对较差,简单的查询也会变得稍显复杂。
● 修改不方便,特变是复杂的聚合视图基本无法修改。
视图的创建
下面健哥给各位小伙伴介绍视图的创建语法,as后面就是SELECT查询的SQL语句。是不是很简单呢。
语法:CREATE VIEW 视图名 AS 查询数据源表语句;
举个栗子:创建视图。
#创建 v_student 的视图,其视图从 student 表中查询到学生id和名字。
CREATE VIEW v_student AS select SId,Sname from student;
使用视图其实和使用表没啥区别,正常查询就可以了。如下:
#查询 v_student 视图中所有学生。
SELECT * FROM v_student;
视图的修改
语法一的意思是兼具视图创建和修改的功能,视图如果存在就修改,如果视图不存在就创建视图。而语法二只有修改功能。
语法一:CREATE OR REPLACE VIEW 视图名 AS 查询语句;
语法二:ALTER VIEW 视图名 AS 查询语句;
举个栗子:修改视图。
#方式 1:如果视图存在则进行修改,反之,进行创建
CREATE OR REPLACE VIEW v_student AS SELECT SId,Sname,Sage from student;
#方式 2:直接对已存在的视图进行修改
ALTER VIEW v_student AS SELECT SId,Sname,Sage from student;
5. 视图的删除
下面这个最简单的语法就是删除视图的语法。健哥友情提醒,使用起来要小心哦,删了就没了。
DROP VIEW 视图名
举个栗子:删除视图。
#删除v_student视图。
DROP VIEW v_student;
注意:删除视图不会影响原表。
6. 视图的注意事项
注意:
● 视图不会独立存储数据,原表发生改变,视图也发生改变。没有优化任何查询性能。
● 如果视图包含以下结构中的一种,则视图不可更新。
○ 聚合函数的结果。
○ DISTINCT 去重后的结果。
○ GROUP BY 分组后的结果。
○ HAVING 筛选过滤后的结果。
○ UNION、UNION ALL 联合后的结果。
猜你喜欢LIKE
相关推荐HOT
更多>>servlet底层原理是什么?
1、ServletAPI核心类与接口2、Servlet类处理请求的流程创建servlet类的步骤:创建一个命名为TestServlet继承javax.servlet.http.HttpServlet类详情>>
2023-05-30 10:41:22多线程的优势与劣势分别是什么?
多线程是指在同一个程序中,同时运行多个线程,每个线程都可以独立执行不同的任务,相互之间不会干扰。多线程的优势和劣势如下:优势:提高程序...详情>>
2023-05-30 10:32:12设计模式之生产者与消费者的代码实现
本文主要讲述生产者和消费者模式,文中会使用通俗易懂的案例,使你更好地学习本章知识点并理解原理,做到有道无术。什么是生产者和消费者模式生...详情>>
2023-05-30 10:25:46从零开始学Java之interface接口
一.接口简介简介Java中的接口(interface)类似于是一种特殊的抽象类,它也是众多抽象方法的集合。接口的定义方式、组成部分都与抽象类相似,却比...详情>>
2023-05-29 11:26:17热门推荐
如何进行mysql数据备份?
沸什么是servlet的生命周期?servlet请求处理流程是怎样的?
热servlet底层原理是什么?
热怎样编写java程序?
新多线程的优势与劣势分别是什么?
ssm框架的作用与原理是什么?
设计模式之生产者与消费者的代码实现
接口和抽象类有什么区别?4个方面对比
从零开始学Java之interface接口
从零开始学Java之Java中的内部类是怎么回事?
一分钟带你了解MySQL——基础与介绍
在java中,super关键字怎样使用
什么是事件流以及事件流的传播机制 ?
弹性盒有哪些属性是在父元素身上?