我的MYSQL学习心得

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

我的MYSQL学习心得(十一)视图我的MYSQL学习心得(一)简单语法

我的MYSQL学习心得(二)数据类型宽度

我的MYSQL学习心得(三)查看字段长度

我的MYSQL学习心得(四)数据类型

我的MYSQL学习心得(五)运算符

我的MYSQL学习心得(六)函数

我的MYSQL学习心得(七)查询

我的MYSQL学习心得(八)插入更新删除

我的MYSQL学习心得(九)索引

我的MYSQL学习心得(十)自定义存储过程和函数

我的MYSQL学习心得(十二)触发器

我的MYSQL学习心得(十三)权限管理

我的MYSQL学习心得(十四)备份和恢复

我的MYSQL学习心得(十五)日志

我的MYSQL学习心得(十六)优化

我的MYSQL学习心得(十七)复制

这一篇《我的MYSQL学习心得(十一)》将会讲解MYSQL的视图

使用视图的理由是什么?

1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。

之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。

2、查询性能提高

3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。

这是在实际开发中比较有用的

4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。

创建视图

创建视图的语法

CREATE[OR REPLACE][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] VIEW view_name [(column_list)]

AS select_statement

[WITH [CASCADED | LOCAL]CHECK OPTION]

其中,CREATE:表示新建视图;

REPLACE:表示替换已有视图

ALGORITHM :表示视图选择算法

view_name :视图名

column_list:属性列

select_statement:表示select语句

[WITH [CASCADED | LOCAL] CHECK OPTION]参数表示视图在更新时保证在视图的权限范围之内

可选的ALGORITHM子句是对标准SQL的MySQL扩展。

ALGORITHM可取三个值:MERGE、TEMPTABLE或UNDEFINED。

如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的)。算法会影响MySQL 处理视图的方式。

对于MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。

对于TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。

对于UNDEFINED,MySQL自己选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,

这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。

LOCAL和CASCADED为可选参数,决定了检查测试的范围,默认值为CASCADED。

脚本视图的数据来自于两个表

CREATE TABLE student (stuno INT ,stuname NVARCHAR(60))

CREATE TABLE stuinfo (stuno INT ,class NVARCHAR(60),city NVARCHAR(60))

INSERT INTO student VALUES(1,'wanglin'),(2,'gaoli'),(3,'zhanghai')

INSERT INTO stuinfo

VALUES(1,'wuban','henan'),(2,'liuban','hebei'),(3,'qiban','shandong')

-- 创建视图

CREATE VIEW stu_class(id,NAME,glass) AS SELECT

student.`stuno`,student.`stuname`,stuinfo.`class`

FROM student ,stuinfo WHERE student.`stuno`=stuinfo.`stuno`

SELECT*FROM stu_class

查看视图

查看视图必须要有SHOW VIEW权限

查看视图的方法包括:DESCRIBE、SHOW TABLE STATUS、SHOW CREATE VIEW DESCRIBE查看视图基本信息

DESCRIBE 视图名

DESCRIBE stu_class

结果显示了视图的字段定义、字段的数据类型、是否为空、是否为主/外键、默认值和额外

信息

DESCRIBE一般都简写成DESC

SHOW TABLE STATUS语句查看查看视图基本信息

查看视图的信息可以通过SHOW TABLE STATUS的方法

SHOW TABLE STATUS LIKE'stu_class'

Name Engine Version Row_format Rows Avg_row_length

Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum

Create_options Comment

--------- ------ ------- ---------- ------ --------------

----------- --------------- ------------ --------- --------------

----------- ----------- ---------- --------- --------

-------------- -------

stu_class (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) (NULL) VIEW

COMMENT的值为VIEW说明该表为视图,其他的信息为NULL说明这是一个虚表,如果

是基表那么会基表的信息,这是基表和视图的区别

相关文档
最新文档