课 程 推 荐 我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库教程合集 👈👈 MySQL数据库教程:👉👉 MySQL数据库教程合集 👈👈 优 质 资 源 下 载 :👉👉 资源下载合集 👈👈 优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集 👈👈 .
MySQL_视图
- 视图
视图
- 视图的引入
- 视图的作用
- 创建视图
- 查看视图
- 修改视图
- 更新视图
- 删除视图
- 视图的引入
- 视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
- 数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
- 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
- 视图的作用
- 使操作简便化;
- 增加数据的安全性;
- 提高表的逻辑独立性;
- 创建视图
- 语法
CREATE [ ALGORITHM ={ UNDEFIEND | MERGE | TEMPTABLE }] VIEW 视图名 [ ( 重命名字段名) ] AS SELECT 语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
- 说明
- ALGORITHM是可选参数,表示视图选择的算法;
- “视图名”参数表示要创建的视图的名称;
- “属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与 SELECT 语句中查询的属性相同;
- SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中;
- WITH CHECK OPTION是可选参数,表示更新视图时要保证在该视图的权限范围之内;
- CASCADED是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;
- LOCAL 表示更新视图时,要满足该视图本身的定义条件即可;
- ALGORITHM 包括 3 个选项 UNDEFINED、MERGE和TEMPTABLE
- UNDEFINED选项表示MySQL将自动选择所要使用的算法;
- MERGE选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;
- TEMPTABLE 选项表示将视图的结果存入临时表,然后使用临时表执行语句;
- 示例
- 在单表上创建视图
CREATE OR REPLACE VIEW v1(编号,书名,作者) AS SELECT id,bookname,author FROM t_book
- 在多表上创建视图
CREATE OR REPLACE VIEW v2(书名,分类) AS SELECT t1.bookname,t2.booktypename FROM t_book t1,t_booktype t2 WHERE t1.booktypeid=t2.id
- 查看视图
- DESCRIBE 语句查看视图基本信息
DESCRIBE V1; 简写:DESC V1
- SHOW TABLE STATUS 语句查看视图基本信息
Show Table Status Like 'V1'
- SHOW CREATE VIEW 语句查看视图详细信息
Show Create View v1
- 在 views 表中查看视图详细信息
- 修改视图
- CREATE OR REPLACE VIEW 语句修改视图
CREATE OR REPLACE [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }] VIEW 视图名 [( 属性清单 )] AS SELECT 语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
- ALTER 语句修改视图
ALTER [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }] VIEW 视图名 [( 属性清单 )] AS SELECT 语句 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
- 更新视图
- 更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚拟的表,其中没有数据。通过视图更新时,都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。超出了范围,就不能更新。
- 插入(insert into)
- 仅限于单表视图,并且视图字段与表字段完全一致
insert into 视图名 values(值1,值2,值3,....值n)
- 更新(update)
update 视图名 set 字段名='值' wher 条件表达式
- 删除(delete)
delete from 视图名 where 条件表达式
- 删除视图
- 删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
- 语法
DROP VIEW [ IF EXISTS ] 视图名列表 [ RESTRICT | CASCADE ] -- IF EXISTS:如果视图存在,则删除 -- RESTRICT:确保只有不存在相关视图和完整性约束的表才能删除 -- CASCADE:任何相关视图和完整性约束一并被删除