您的位置:首页 > 数据库 > MySQL

MySQL学习之视图

2016-08-19 10:58 218 查看
学习峰哥java教程自学笔记: 
http://www.java1234.com/javaxuexiluxiantu.html 
/*

说明:

1,视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。 

2,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。 

3,使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

作用:

1,使操作简便化; 

2,增加数据的安全性; 

3,提高表的逻辑独立性

创建视图(单表、多表):

CREATE[ALGORITHM={UNDEFIEND |MERGE |TEMPTABLE }] VIEW 视图名 [( 属性清单) ] ASSELECT 语句 [WITH[ CASCADED|LOCAL]CHECKOPTION ];

ALGORITHM 是可选参数,表示视图选择的算法; “视图名”参数表示要创建的视图的名称; “属性清单”是可选参数,其指定了视图中各种属性的

名词,默认情况下与 SELECT 语句中查询的属性相同; SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这

些记录导入视图中; WITHCHECKOPTION 是可选参数,表似乎更新视图时要保证在该视图的权限范围之内;

ALGORITHM 包括 3 个选项 UNDEFINED、MERGE 和 TEMPTABLE。其中,UNDEFINED 选项表示 MySQL 将 自动选择所要使用的算法;MERGE 选项表示

将使用视图的语句与视图定义合并起来,使得视图定义的某一部分 取代语句的对应部分;TEMPTABLE 选项表示将视图的结果存入临时表,然后使

用临时表执行语句;CASCADED 是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL 表示更新视图时,要 满足

该视图本身的定义条件即可;

查看视图:

1DESCRIBE 语句查看视图基本信息 

2SHOWTABLESTATUS 语句查看视图基本信息 

3SHOWCREATEVIEW 语句查看视图详细信息 

3 在 views 表中查看视图详细信息

修改视图:

1 CREATEORREPLACEVIEW 语句修改视图

CREATEOR REPLACE[ALGORITHM={UNDEFINED |MERGE |TEMPTABLE }] VIEW 视图名 [( 属性清单 )] ASSELECT 语句 [WITH [CASCADED|LOCAL]CHECKOPTION ];

2 ALTER 语句修改视图

ALTER [ALGORITHM={UNDEFINED |MERGE |TEMPTABLE }] VIEW 视图名 [( 属性清单 )] ASSELECT 语句 [WITH [CASCADED|LOCAL]CHECKOPTION ];

更新视图(插入、更新、操作):

更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚 拟的表,其中没有数据。通过视图更新时,

都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。 超出了范围,就不能更新。

删除视图:

删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据; DROPVIEW [IFEXISTS] 视图名列表 [RESTRICT|CASCADE ]

*/

CREATE VIEW v1 AS SELECT * FROM t_book;

CREATE VIEW v2 AS SELECT bookName,author FROM t_book;

CREATE VIEW v3(b,p) AS SELECT bookName,price FROM t_book;

CREATE VIEW v4 AS SELECT bookName,bookTypeName FROM t_book,t_booktype WHERE t_book.`bookTypeId`=t_booktype.`id`;

CREATE VIEW v5 AS SELECT tb.bookName,tby.bookTypeName FROM t_book tb,t_booktype tby WHERE tb.`bookTypeId`=tby.`id`;

SELECT * FROM v1;

SELECT * FROM v2;

SELECT * FROM v3;

SELECT * FROM v4;

SELECT * FROM v5;

DESCRIBE v5;

SHOW TABLE STATUS LIKE 'v5';

SHOW TABLE STATUS LIKE 't_book';

SHOW CREATE VIEW v5;

SELECT * FROM v1;

SELECT * FROM v1 WHERE bookName LIKE 'java very good';

CREATE OR REPLACE  VIEW v1(bn,bp) AS SELECT bookName,price FROM t_book;

ALTER VIEW v1 AS SELECT * FROM t_book;

 

INSERT INTO v1 VALUES(NULL,'java good',120,'feng',1); 

UPDATE v1 SET bookName='java very good',price='10' WHERE bookName LIKE 'java good';

DELETE FROM v1 WHERE bookName LIKE 'java very good';

DROP VIEW IF EXISTS v4;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: