`
endual
  • 浏览: 3557714 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mysql视图的理解和使用

 
阅读更多

CREATE TABLE tb_x

(

  xid       INT         NOT NULL AUTO_INCREMENT ,

  xname     VARCHAR(50) NOT NULL,

  xloaction VARCHAR(40) NOT NULL,

  PRIMARY KEY (xid)  

 

)

 

CREATE TABLE tb_y

(

  yid       INT         NOT NULL AUTO_INCREMENT ,

  yname     VARCHAR(50) NOT NULL,

  yloaction VARCHAR(40) NOT NULL,  

  PRIMARY KEY (yid)  

)

 

CREATE TABLE tb_z

(

  zid       INT         NOT NULL AUTO_INCREMENT ,

  zname     VARCHAR(50) NOT NULL,

  zloaction VARCHAR(40) NOT NULL  ,

    PRIMARY KEY (zid)  

)

 

INSERT INTO tb_x (xname,xloaction) VALUES ("xn1","xl1"),("xn2","xl2"),("xn3","xl3"),("xn4","xl4"),("xn5","xl5"),("xn6","xl6"),("xn7","xl7"),("m1","n1"),("cc1","yy1")

INSERT INTO tb_y (yname,yloaction) VALUES ("yn1","yl1"),("yn2","yl2"),("yn3","yl3"),("yn4","yl4"),("yn5","yl5"),("yn6","yl6"),("yn7","yl7"),("m1","n1"),("cc1","yy1")

INSERT INTO tb_z (zname,zloaction) VALUES ("zn1","zl1"),("zn2","zl2"),("zn3","zl3"),("zn4","zl4"),("zn5","zl5"),("zn6","zl6"),("zn7","zl7"),("m1","n1"),("cc1","yy1")

 

SELECT * FROM tb_x ;

SELECT * FROM tb_y ;

SELECT * FROM tb_z ;

 

 

SELECT tb_x.xid ,tb_y.yid, tb_z.zid FROM tb_x,tb_y,tb_z WHERE tb_x.xname = tb_y.yname AND tb_x.xname = tb_z.zname

SELECT * FROM tb_x,tb_y,tb_z WHERE tb_x.xname = tb_y.yname AND tb_x.xname = tb_z.zname

 

例如上面的例子中,

A要用的是最后一个语句SELECT * FROM tb_x,tb_y,tb_z WHERE tb_x.xname = tb_y.yname AND tb_x.xname = tb_z.zname 产生的数据,找出里面包含yy的行的数据。

B也要用到最后一个语句SELECT * FROM tb_x,tb_y,tb_z WHERE tb_x.xname = tb_y.yname AND tb_x.xname = tb_z.zname 产生的数据,找出里面包含m的行的数据。

C也来一个,同样要用的上面的语句的查询结果,是不是一件很麻烦的事情。(自己多添加三个表一样的数据)

 

这样就出现了虚拟的表,就叫视图。

 

视图是虚拟的表,与包含数据表的不一样,视图只包含使用动态检索数据的查询。

 

 

为上面要使用视图

1.简化了SQL语句

2.重用SQL语句

3.使用表的组成部分而不是整个表

4.保护数据,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限

5.更改数据格式和表示,视图可返回与底层表的表示和格式不同的数据

 

在视图创建之后,可用与表基本相同的方式的用他们的,可以视图执行SELECT语句,过滤,排序,将视图连接到其他视图或者是表中,甚至

可以添加和更新数据(有特定的限制)。

 

视图本身是不包含数据的,只是来查看存储在别处的数据的一种设施,因为他们返回的数据是从其他表中的检索出来的,在添加或者更改这些表中的数据时,视图将

返回改变过的数据

 

视图的一些规则

1.名字唯一

2.对于创建的视图数目是没有限制的

3.为了创建视图,必须具有足够的访问权限

4.视图是可以嵌套的,也就是可以利用从其他视图中检索数据的查询来构造一个视图

5.order by 可以用再视图中,但如果从该视图检索数据SELECT中也含有ORDER BY,那么视图中的ORDER BY将被覆盖

6.视图不能索引,也不能有关联的触发器或者是默认值

7.视图可以和表一起使用。

 

CREATE VIEW pros AS 

SELECT * FROM tb_x,tb_y,tb_z WHERE tb_x.xname = tb_y.yname AND tb_x.xname = tb_z.zname //创建视图

 

SHOW CREATE VIEW pros; //查看视图的语句

 

DROP VIEW pros //删除视图的语句

 

SELECT * FROM pros; //使用视图,就像一张表一样了

 

可以这么理解,将SELECT语句的查询结果封装成了视图,那么用户可以直接使用SELECT查询的结果了

分享到:
评论

相关推荐

    MySql视图顺序整理工具

    在这个场景中,"MySql视图顺序整理工具"是一个专为MySQL视图设计的应用程序,旨在帮助用户更有效地管理和组织Navicat中的视图SQL。 Navicat是一款流行的数据库管理工具,支持多种数据库系统,包括MySQL。在Navicat...

    国家开放大学 形考答案 mysql 实验训练4:视图和索引的构建与使用

    本资源为 MySQL 实验训练第四课,主要涵盖视图和索引的构建与使用。实验目的是基于已有的汽车用品网上商城数据库 Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立、视图的查询、视图的...

    在Navicat中创建MySQL动态视图的方法

    通过Navicat创建MySQL动态视图不仅简化了复杂的多表查询操作,还提高了数据管理的灵活性和效率。掌握这一技能对于数据库管理员来说是非常有价值的。希望本文能够帮助您更好地理解和利用Navicat中的这一强大功能。

    MySQL数据库应用 实验训练4:视图和索引的构建与使用

    MySQL数据库中的视图和索引是两...综上所述,这个实验训练全面覆盖了视图的创建、查询、更新和删除,以及索引的创建、使用和管理。通过实践,学生将深化对MySQL数据库管理和优化的理解,提高其在实际场景中的应用能力。

    利用视图提高MySQL查找效率.doc

    在MySQL数据库中,视图是一种极其重要的工具,它允许用户以一种抽象和简化的方式来操作数据库。视图可以被理解为数据库中的虚拟表,虽然它不实际存储任何数据,但可以根据预定义的SQL SELECT语句来动态获取所需的...

    mysql-视图详解.doc

    例如,`UPDATE`和`DELETE`语句可能因`WITH CHECK OPTION`的存在而受限,而`INSERT`语句则通常不允许直接在视图上执行,除非在创建时使用了`WITH CHECK OPTION`并满足特定条件。 删除视图使用`DROP VIEW`语句,例如...

    通过MSQL通过视图访问ORACLE中的表

    首先,我们要理解MySQL和Oracle之间的数据集成。由于它们是两个不同的数据库系统,直接的SQL查询并不能实现跨库操作。但是,可以通过中间层服务,如ODBC(Open Database Connectivity)或JDBC(Java Database ...

    MySql视图创建更改销毁和显示

    ### MySQL视图创建、更改、销毁及显示 在MySQL数据库管理中,视图是一个非常重要的概念,它不仅可以简化复杂的查询操作,还能增强数据的安全性。本文档将围绕以下几个方面进行详细探讨:如何使用`CREATE VIEW`或`...

    用power Designer生成mysql表关系视图的方法

    在介绍如何使用Power Designer工具生成MySQL数据库表关系视图之前,我们需要了解Power Designer和MySQL的ODBC驱动的背景知识。 Power Designer是一款由Sybase公司开发的强大的数据库设计工具,它支持数据建模,从...

    MYSQL视图化数据库稳定版

    在给定的“MYSQL视图化数据库稳定版”中,我们聚焦的是一个包含视图化界面的MySQL版本,这使得数据库管理和操作变得更加直观和便捷。这个版本被认为是“最好用”且“最新”的,意味着它可能集成了最新的功能改进和...

    MySQL SQL高级特性 字段约束-索引-视图-外键学习实践

    在本部分内容中,重点介绍了NULL和NOT NULL修饰符的使用和区别。在MySQL中,NULL意味着该字段可以没有值,即空值;而NOT NULL修饰的字段则必须在插入记录时给出值,不能为NULL。对于NOT NULL字段的效率之所以比NULL...

    mysql视图用户管理.pdf

    【MySQL视图用户管理】 ...综上所述,MySQL视图用户管理涉及视图的创建、查询、更新和删除,以及用户和角色的管理与权限控制。在实际应用中,这些技能对于实现数据库的安全性和高效管理至关重要。

    推荐-mysql视图用户管理.docx

    【MySQL视图用户管理】 MySQL视图是一种虚拟的表,它并不存储数据,而是基于一个或多个表的查询结果。视图可以简化复杂的查询,提供数据的安全性,并且可以隐藏基础表的结构。在本实验中,我们学习如何在SQL Server...

    第10章MySQL视图.docx

    MySQL视图是数据库管理系统中的一个重要概念,它提供了一种方式来组织和抽象数据库中的数据,使得数据查询和管理更为简洁和高效。本章主要探讨了MySQL视图的特性、优点以及使用规则。 首先,理解视图与表的区别是至...

    透视数据之美:深入理解MySQL中的视图

    ### 透视数据之美:深入理解 MySQL 中的视图 在当今的数据驱动时代,数据库系统扮演着至关重要的角色。...通过本文的学习,希望能够帮助大家更好地理解和运用 MySQL 视图,进而提升数据库操作的效率和灵活性。

    国家开放大学 MySQL数据库应用 实验训练4:数据库系统维护

    这些操作可以帮助学生掌握视图的使用和维护。 三、索引的概念和作用 索引是一种数据结构,它可以提高查询速度和数据检索效率。在本实验中,我们学习了索引的概念和作用,并且掌握了索引的创建和删除操作。 四、...

    MySQL数据库:数据视图的修改和删除.pptx

    综上所述,对MySQL数据库中的数据视图进行修改和删除,是数据库管理的重要环节。`ALTER VIEW`允许我们根据需要调整视图的结构,而`DROP VIEW`则提供了方便的视图清理机制。理解并熟练掌握这两者,可以帮助我们更好地...

    mysql视图用户管理.doc

    MySQL视图用户管理是数据库系统中重要的安全控制和数据访问机制。在MySQL中,视图是一种虚拟表,它不存储实际的数据,而是基于一个或多个表的查询结果。视图可以简化复杂的查询,隐藏敏感信息,以及提供权限控制的...

    mysql视图之创建视图(CREATE VIEW)和使用限制实例详解

    MySQL中的视图是一种虚拟表,它不存储实际的数据,而是基于一个或多个表的查询结果。在MySQL 5.x版本之后,视图的功能更加完善,符合SQL:2003...理解视图的创建方法和使用限制,对于优化数据库操作和管理至关重要。

Global site tag (gtag.js) - Google Analytics