保藏本站 保藏本站
188bet注册网主页 - 软件测验 - 常用手册 - 站长东西 - 技能社区
主页 > 数据库 > MySQL > 正文

主页 - PHP - 数据库 - 操作体系 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS指令 - jQuery - CSS款式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

MySQL入门教程(七)之视图

相关阅览:

MySQL入门教程(五)之表的创立、修正和删去

视图是从一个或多个表中导出来的虚拟表。视图就像一个窗口,经过这个窗口能够看到体系专门供给的数据。

1、视图简介

1.1 视图的意义

视图是从一个或多个表中导出来的虚拟表,还能够从现已存在的视图的基础上界说。
数据库中只寄存视图的界说,而不寄存视图中的数据,这些数据仍寄存在本来的表中。一旦表中的数据发作改动,显现在视图中的数据也会相应改动。
MySQL的视图并不支撑输入参数的功用,即交互性上较差,但关于改动不是很大的操作,运用视图能够很大程度上简化用户的操作。

1.2 视图的作用

视图起着类似于挑选的作用,具体可概括为

(1)所见即所需,使操作简略化
(2)经过视图,用户只能查询和修正指定的数据,然后约束了用户的权限,增加了数据的安全性
(3)视图能够屏蔽原有表结构改动带来的影响,然后提高了表的逻辑独立性。

2、创立视图

MySQL中,创立视图是经过Creat View句子完成的,具体为

检查图片

其间,Algorithm为视图挑选的算法;特点清单指定了视图中各个特点的名词,默许状况下与Select句子中查询的特点相同;Select句子是一个完好的查询句子,表明从某个表中查出某些满意条件的记载并将这些记载导入到视图中;With Check Option表明更新视图时要确保在该视图的权限规模之内,CASCADED表明更新视图时要满意一切相关视图和表的条件,为默许值,Local表明更新视图时要满意该视图自身的界说即可;留意在运用创立视图时最好加上With Check Option,并选取默许的CASCADED参数。然后确保从视图派生出来的新视图在更新后能够考虑其父视图的约束条件,即更谨慎。

(1)关于Algorithm中的三个选项,Undefined选项表明MySQL将主动挑选所要运用的算法,Merge选项表明将运用视图的句子与视图界说兼并起来,使得视图界说的某一部分替代句子的对应部分,Temptable选项表明将视图的成果存入暂时表,然后运用暂时表履行句子。

(2)需求留意的是,在创立视图之前,需求检查是否具有Create view的权限和查询触及的列的Select权限,这些权限保存在MySQL数据库下面的user表中,能够适用select句子查询,具体为

select select_priv, create_view_priv from mysql.user where user='用户名'

其间,用户名参数表明要查询哪个用户是否具有Drop权限,在我的体系中,只要root用户。

下面是一个从department表和worker表上创立一个名为worker_view1的视图的事例

检查图片

3、检查视图

检查视图有必要要有show view的权限,相同保存在user表中。

检查视图的办法包括describe句子、show table status句子、show create view句子和查询information_schema数据库下的views表等。

3.1 describe句子检查简略信息

检查视图的describe句子和检查表的句子是相同的,由于视图是一种特别的表,根本形式为

describe 视图名;

3.2 show table status句子检查根本信息

根本形式为

Show Table Status Like ‘视图名';

3.3 show create view句子检查具体信息

根本形式为

Show create view 视图名;

3.4 在views表中检查具体信息

MySQL中,一切视图的界说都存在information_schema数据库下的views表中,查询此表即可检查到数据库中一切视图的具体信息。

根本形式为

select * from information_schema.views;

其间*表明查询一切的列的信息。

明显用此句子检查到的是一切的视图,不方便查阅,一般查询具体信息时用3.3法即可。

4、修正视图

当根本表的某些字段发作改动时,有必要修正视图的界说来坚持视图和根本表之间的一致性。

4.1 Create or replace view句子

此句子很好用,在存在视图状况下可对视图进行修正,在没有视图状况下,能够创立视图,具体语法为

检查图片

实际上,感觉此句子便是从头界说了个视图并覆盖了原始图。<??#65533;"http://www.touzhuwang75.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMyBpZD0="42-alter句子">4.2 Alter句子

回忆前面,alter句子不只能够创立索引,修正表的界说,在此处,还能够修正视图的界说。
根本形式为

检查图片

5、更新视图

更新视图是指经过视图来刺进、更新和删去表中的数据。
更新视图时,只能更新权限规模内的数据。
实际上对视图的更新最终都是完成在根本表上的。

留意以下状况不能更新视图:

(1)视图中包括sum(),count(),max()和min()等函数

(2)视图中包括union,union all,distinct,group by和having等关键字

(3)常量视图,即视图中的某个字段时常量类型

(4)视图中的select中包括子查询

(5)由不行更新的视图导出的视图

(6)创立视图时,algorithm挑选了temptable类型,即体系默许暂时表是不行更新的

(7)视图对应的表上存在没有默许值的列,且该列没有包括在视图中。由于,在更新视图时,这个没有默许值的记载将没有值刺进,也没有NULL值刺进,体系不允许这种状况呈现

由于视图的更新存在许多约束,一般,最好把视图作为查询数据的虚拟表,而不要经过视图来更新数据,很简略形成更新失利。

6、删去视图

删去视图只会删去视图的界说,并不会删去数据。DROP View句子可用来删去视图,但用户有必要具有drop的权限,具体操作为

drop view [if exists] 视图名列表 [restrict|cascade]

其间,if exists用来判别视图存在,存在才履行;在视图名列表中不同视图称号之间经过逗号离隔。

以上所述是小编给我们介绍的MySQL入门教程(七)之视图,期望对我们有所协助!

mysql登录报错提示:ERROR 1045 (28000)的处理办法
本文剖析了mysql登录报错提示:ERROR1045(28000)的处理办法。共享给我们供我们参阅,具体如下:一、问题:公司linux体系的mysql数据库root用户设置过暗码,

Windows下MySQL 5.6装置及装备具体图解(大图版)
一、装置前的预备1、下载装置程序包,可到MySQL官方网站www.mysql.com下载,如图1-1:图1-1下载后的装置文件如图1-2所示:图1-2二、装置1、双击下载的装置

在Linux体系装置Mysql教程
导言现在由于项目的需求在建立Mysql的集群,从最简略的开端,先装置一个Mysql在linux体系下。过程:第一步:装置:tarmysql-5.5.48-linux2.-x86_64.tar.gzCopy到指

本周排行

更新排行

强悍的草根IT技能社区,这儿应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 touzhuwang75.com. All Rights Rreserved  京ICP备05050695号