-
mysql中的视图
2018-10-30 20:52:21视图:为了提高复杂SQL语句的复用性和表操作的安全性,在具体操作表前,有时候要求操作者只能操作...行和列数据来自定义视图的查询所引用的基本表,并在具体引用视图时动态生成。 视图使程序员只关心感兴趣的某...-
视图:为了提高复杂SQL语句的复用性和表操作的安全性,在具体操作表前,有时候要求操作者只能操作部分字段,而不是全部字段,mysql数据库管理系统提供了视图特性。所谓视图,本质上是一张虚拟表,其内容与真实表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中已存储数据值得形式存在。行和列数据来自定义视图的查询所引用的基本表,并在具体引用视图时动态生成。
-
视图使程序员只关心感兴趣的某些特定数据和它们所负责的特定任务。这样程序员只能看到视图中所定义的数据,而不是试图所引用表的数据,从而提高数据库中数据的安全性。
-
视图的特点:
- 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。
- 视图是由基本表(实表)产生的表(虚表)。
- 视图的建立和删除不影响基本表。
- 对视图内容的更新(添加、删除和修改)直接影响基本表。
- 当视图来自多个基本表时,不允许添加和删除数据。
-
创建视图:虽然试图可以看成是一种虚拟表,但是其在物理上是不存在的,即数据库管理系统没有专门的位置为视图存储数据。则根据视图的概念可以发现其数据来源于查询语句,因此,创建视图的语法为:CREATE VIEW view_name AS 查询语句,例如:CREATE VIEW view_select AS SELECT id,name FROM users;视图创建成功后即可进行查询视图操作:SELECT *FROM view_select;执行此操作后就会在视图中显示users表中的id和name字段的所有信息。可以创建多种形式的视图,如:
- (1)封装实现查询常量的视图:CREATE VIEW view_name SELECT number(常量);
- (2)封装使用聚合函数(SUM、MIN、MAX、COUNT)查询语句的视图:CREATE VIEW view_name AS SELECT COUNT(name) FROM users;
- (3)封装了实现排序功能(ORDER BY)查询语句的视图:CREATE VIEW view_name AS SELECT name FROM users ORDER BY id DESC;
- (4)封装了实现表内连接查询的语句。
- (5)封装了实现表外连接(LEFT JOIN和RIGHT JOIN)查询语句的视图。
- (6)封装了实现子查询相关查询语句的视图。
- (7)封装了实现记录联合(UNION和UNION ALL)查询语句的视图。
-
查看视图
- SHOW TABLES;可以查看表明和视图名;
- SHOW TABLES STATUS FROM VIEW;查看数view据库里视图和表的详细信息。
- SHOW CREATE VIEW view_name;查看关于视图的定义信息。
-
删除视图:DROP VIEW view_name;
-
修改视图
- 在先要修改视图的一些信息时我们可以先将原先的视图进行删除,然后在创建一个满足要求的新的视图,这样是完全可行的,但这样也是繁琐的。于是,mysql为了便于用户修改视图,提供了可替换的创建视图语法:CREATE OR REPLACE VIEW view_name AS SELECT name FROMR users;把原先在users表上创建的视图修改。
- 通过ALTER语句修改视图:ALTER VIEW view_name AS SELECT name FROM users;
-
通过视图操作基本表
- 查询:SELECT *FROM view_name;
- 插入:INSERT INTO view_name (id,name,price) VALUES(11, ‘pear4’, 12);
- 删除:DELETE view_name WHERE name =‘apple’;
- 更新:UPDATE view_name SET price=3.5 WHERE name = ‘pear1’;
-
-
mysql中视图的本质、作用、特点和视图可否更新
2020-08-17 16:33:55视图的本质、作用、语法、特点和视图的更新 ...视图使用者只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。 视图的特点 a.视图的列可以来自不同的表,是表的抽象和在逻辑意视图的本质、作用、语法、特点和视图的更新
视图的本质
视图是一种虚拟表,是数据逻辑,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以储存的数据值形式存在。行和列数据来自定义视图的查询所引用基本表(物理表)。
视图的作用
提高复杂SQL语句的复用性和表操作的安全性, 简化sql查询,提高开发效率。
视图使用者只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。视图的特点
a.视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
b.视图是由基本表(实表)产生的表(虚表)。
c.视图的建立和删除不影响基本表。
d.对视图内容的更新(添加,删除和修改)直接影响基本表。
e.当视图来自多个基本表时,不允许添加和删除数据。视图的更新
视图一般不可更新
可更新的情况:基本表的行列子集视图。
不可更新的情况:视图的属性来自函数,表达式,视图中有聚集函数,distinct项,视图中有嵌套查询,视图来自两个基表(join关联)。语法格式
CREATE [OR REPLACE] [ALGORITHM={UNDEFIEND | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
创建视图的语句,是由多条子句构成的参数说明
1、CREATE,表示创建视图的关键字
2、OR REPLACE,如果给定了此子句,表示该语句能够替换已有视图
3、ALGORIGHM,可选参数,表示视图选择的算法
4、UNDEFIEND,表示MySQL将自动选择,所有使用的算法
5、MERGE,表示将使用视图的语句,与视图定义合并起来,使得视图定义的某一部分,取代语句的对应部分
6、TEMPTABLE,表示将视图的结果存入临时表,然后使用临时表执行语句
7、View_name,表示要创建的视图名称
8、Column_list,可选参数,表示属性清单,指定了视图中各个属性的名称,默认情况下,与SELECT语句中查询的属性相同
9、AS,表示指定视图要执行的操作
10、SELECT_statement,是一个完整的查询语句,表示从某个表或视图中查出,某些满足条件的记录,将这些记录导入视图中
11、WITH CHECK OPTION,可选参数,表示创建视图时,要保证在该视图的权限范围之内
12、CASCADED,可选参数,表示创建视图时,需要满足跟该视图有关的,所有相关视图和表的条件,该参数为默认值
13、LOCAL,可选参数,表示创建视图时,只要满足该视图本身定义的条件即可创建视图时,要求具有针对性视图的CREATE VIEW权限,以及针对由SELECT语句选择的每一列上的某些权限
对于,在SELECT语句中,其他地方使用的列,必须具有SELECT权限,如果,还有OR REPLACE子句,必须在视图上具有DROP权限 -
电大数据库系统与应用,形考册第6章,习题与参考答案.doc
2020-01-22 11:57:591下列关于视图的说法正确的是B A视图与基本表一样也存储数据 B对视图的操作最终都转换为对基本表的操作 C视图的数据源只能是基本表 D所有视图都可以实现对数据的增删改查操作 2在视图的定义语句中只能包含A A数据... -
mysql数据库中视图的作用_mysql数据库:视图的作用详解
2021-02-10 07:33:41一、定义视图是从一个或者几个基本表(或视图)导出的表。视图像是一个窗口(或透视镜),你只能看到你感兴趣的并且是允许你看到的东西。视图仅仅是用来查看存储在别处数据的一种设施。本身并不包含数据。因此他返回的...一、定义
视图是从一个或者几个基本表(或视图)导出的表。视图像是一个窗口(或透视镜),你只能看到你感兴趣的并且是允许你看到的东西。视图仅仅是用来查看存储在别处数据的一种设施。本身并不包含数据。因此他返回的数据是从其他基本表检索出来的,基本表数据改变,视图看检索(看到)的数据也就变了。
执行create view 语句的结果只是把视图存入数据字典,其中的select子句并不执行。仅当对视图操作(增删改查等)才执行select子句
二、一般格式
create view [([,]…]
as
[with check option]
【注:方便阅读,写成小写,关键字建议大写。】
三、视图的意义
1,提高了数据的安全性,有定义可以看出,用户只能访问与自己相关的数据。
2,提高了数据的独立性。这个是下面需要解释的。
以上就介绍了MySQL的相关知识,希望对MySQL有兴趣的朋友有所帮助。了解更多内容,请关注职坐标数据库MySQL频道!
-
MySQL中的视图操作
2016-05-24 14:14:29在具体操作表前,有时候要求只能操作部分字段,而不是全部字段。...行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。 视图使程序员只关心感兴趣的某些特定数据和他们所负责在具体操作表前,有时候要求只能操作部分字段,而不是全部字段。为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。视图本质上是一种虚拟表,其内容和真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。
视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务。这样程序员只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高数据库中数据的安全性。
视图特点:
视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系;
视图是由基本表(实表)产生的表(虚表);
视图的建立和删除不影响基本表;
对视图内容的更新(添加、删除和修改)直接影响基本表;
当视图来自多个基本表时,不允许添加和删除数据。
1.创建视图
CREATE VIEW view_selectproduct
AS
SELECT id,name
FROM t_product;
视图的功能实际上是封装查询语句。
(1)封装实现查询常量语句的视图,即所谓的常量视图。
CREATE VIEW view_test1
AS
SELECT 3.1415926
(2)封装使用聚合函数(SUM、MIN、MAX、COUNT)查询语句的视图
CREATE VIEW view_test2
AS
SELECT COUNT(name)
FROM t_student;
(3)封装实现排序功能(ORDER BY)查询语句的视图
CREATE VIEW view_test3
AS
SELECT name
FROM t_student
ORDER BY id DESC;
(4) 封装实现表内连接查询语句的视图
CREATE VIEW view_test4
AS
SELECT s.name
FROM t_student as s, t_group as g
WHERE s.group_id =g.id AND g.id=2;
(5)封装了实现表外连接(LEFT JOIN 和 RIGHT JOIN)查询语句的视图。
CREATE VIEW view_test5
AS
SELECT s.name
FROM t_student as s LEFT JOIN t_group as g ON s.group_id=g.id
WHERE g.id=2;
(6)封装了实现子查询相关查询语句的视图。
CREATE VIEW view_test6
AS
SELECT s.name
FROM t_student AS s
WHERE s.group_id IN (SELECT id FROM t_group);
(7)封装了实现记录联合(UNION和UNION ALL)查询语句的视图。
CREATE VIEW view_test7
AS
SELECT id,name FROM t_student
UNION ALL
SELECT id,name FROM t_group;
2.查看视图
SHOW TABLES (需要选中数据库)查看表和视图
SHOW TABLES STATUS FROM view \G 查看表和视图详细信息语句,view 在这里是数据库名字
SHOW TABLES STATUS
FROM view
LIKE "view_selectproduct" \G #从数据库view中,查看名为view_selectproduct视图的详细信息
SHOW CREATE VIEW viewname #查看视图viewname定义信息
DESC viewname #查看视图viewname设计信息
通过系统表查看视图信息。因为MySQL数据库安装成功后,会自动创建系统数据库information_schema。在该数据库中存在一个包含视图信息的表格views,可以通过查看表格views来查看所有视图的相关信息。
USE information_schema;
SELECT *
FROM views
WHERE table_name='view_selectproduct' \G
3.删除视图
DROP VIEW view_name 【,view_name】....
4.修改视图
CREATE OR REPLACE 语句修改视图
CREATE OR REPLACE VIEW view_selectproduct
AS
SELECT name
FROM t_product;
ALTER语句修改视图
ALTER VIEW view_selectproduct
AS
SELECT name
FROM t_product;
5.利用视图操作基本表
SELECT * FROM view_selectproduct; #检索(查询)数据
视图是“虚表”,对视图数据进行的更新操作,实际上是对其基本表数据进行更新操作。因此对视图数据进行添加、删除和删除操作直接影响数据。但是当视图来自多个基本表时,不允许添加和删除数据。
(1)添加数据操作
INSERT INTO view_product (id,name,price,order_id)
VALUES(11,'PEAR4',12.3,2);
(2) 删除数据操作
DELETE FROM view_product
WHERE name='apple1';
(3)更新数据操作
UPDATE view_product
set price=3.5
WHERE name='pear1';
-
视图
2020-11-03 20:18:59行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。 视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了... -
mysql 对视图的操作_mysql之对视图的操作
2021-01-19 13:17:561. 为什么要使用视图?为了提高复杂SQL语句的复用性和表操作的安全性...行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看... -
MySQL-视图的操作
2017-05-02 16:58:52行和列的数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务。这样程序员只能看到视图所定义的数据,而不是视图所引用 -
mysql不可对视图进行操作_mysql之对视图的操作
2021-01-28 00:35:241. 为什么要使用视图?为了提高复杂SQL语句的复用性和表操作的安全性...行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看... -
MySql 什么是视图
2020-09-27 22:01:26(1)视图和表都是数据库中的对象,视图可以理解成一张虚拟的表,视图本质就是取代了一段SQL查询语句 ...数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以一旦基本表中发 -
MySql基础知识-----视图的操作
2018-05-15 21:52:501.视图简介为了提高复杂SQL语句...行和列数据来自定义视图的查询所引用基本表,并且在具体引用时动态生成。视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务。这样我们只能看到视图中所定义的数据,而... -
MySQL视图全面详解
2020-05-20 23:53:45行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 视图其实就是一个select返回的结果集,用于方便我们查询而创建的"临时表",简化我们的查询语句。 视图的优势 **简单:**使用视图的用户... -
深入解析MySQL视图VIEW
2020-11-07 16:44:57视图数据来自定义视图的查询中使用的表,使用视图动态生成。 基表:用来创建视图的表叫做基表base table Q:为什么要使用视图? A:因为视图的诸多优点,如下 1)简单:使用视图的用户完全不需要关心后面对应的表的... -
视图索引问题
2007-08-06 11:57:00最近和一直在研究如何加快查询数据库的速度,看了网络上说用索引,会加快查询的速度.我就认真看了索引了一些文章,也建立了表索引.但是在建立视图索引的时候遇到问题了, 无法在...同一物理表在该语句中只能出现一次 -
【MySQL】第十二篇:MySQL视图和存储过程
2020-08-08 14:41:49视图数据来自定义视图的查询中使用的表,使用视图动态生成。 基表:用来创建视图的表叫做基表(base table) 1.2、为什么要使用视图 因为视图的诸多优点,如下: 简单:使用视图的用户完全不需要关心后面对应的表的... -
SQL serve 数据库--视图、事物、分离附加、备份还原
2017-03-22 14:33:00视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态生成。...在视图上用户可以使用SELECT语句查询数据库... -
sql server 创建唯一性非聚集索引语句_基于Python的数据分析:数据库索引效率探究(建议收藏)
2020-11-26 04:22:01索引在数据库中是一个很特殊的存在,它的目的就是为了提高数据查询得效率。...聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引,因... -
经典SQL语句大全
2014-12-20 12:00:3015、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ... -
数据库操作语句大全(sql)
2013-08-15 17:25:4215、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ... -
Oracle9i的init.ora参数中文说明
2008-11-07 20:14:11说明: 在 SQL 语句中, 应避免使用繁琐的 NLS_SORT 进程。正常情况下, WHERE 子句中进行的比较是二进制的, 但语言比较则需要 NLSSORT 函数。可以使用 NLS_COMP 指定必须根据NLS_SORT 会话参数进行语言比较。 值范围:... -
MySQL数据库面试题五(2020最新版)
2021-02-18 17:38:13行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。 视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了... -
工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究
2017-02-28 21:22:19安卓上用于加载的Webview视图窗口只是作为类浏览器而存在,在安卓上更是只能同时运行一个Webview。(2)跨域数据交互问题。不同的Webview之间无法共享数据。(3)页面自适应问题。页面难以兼容适应不同分辨率的设备... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。... -
SQL存储过程
2011-06-22 19:17:00存储过程是存储在数据库端的一段可被执行的T-SQL代码,类似于C#中的函数和视图的区别:1、视图只能包含查询语句,存储过程可以做查询、删除、插入、更新 2、视图一般只包含一条查询语句,而存储过程可以有多条语句... -
达梦数据库_SQL语言手册
2020-03-19 16:19:37视图的定义 视图的删除 视图的查询 视图数据的更新 第章嵌入式 前缀和终结符 宿主变量 输入和输出变量 指示符变量 服务器登录与退出 登录服务器 退出服务器 游标的定义与操纵 定义游标语句 打开游标... -
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--详细书签版
2013-02-04 12:43:52Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并在工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家... -
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码
2013-02-04 12:49:33Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并在工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家... -
excel的使用
2012-11-25 17:06:01由于自定义格式中最多只有3个数字段,Excel规定最多只能在前两个数字段中包括2个条件测试,满足某个测试条件的数字使用相应段中指定的格式,其余数字使用第3段格式。如果仅包含一个条件测试,则要根据不同的情况来... -
存储过程的安全及性能优化
2012-03-07 20:53:26扩展存储过程的定义 扩展存储过程是SQL Server中的另一类存储过程,它是以其它语言编写的外部程序,是以动态链接库(DLL)形式存储在服务器上,最终SQLServer就可以动态加载并执行它们 编写好后使用SQLServer...