最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL学习笔记之视图_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 20:07:36
文档

MySQL学习笔记之视图_MySQL

MySQL学习笔记之视图_MySQL:视图是对磁盘上保存的表数据的抽象,即抽取一个表或多个表的部分行或列的数据,展示给使用者。 首先列举下MySQL中最简单的对视图操作的语法: 1、创建视图: create view 视图名 as select语句 例如: create view v_fruit as
推荐度:
导读MySQL学习笔记之视图_MySQL:视图是对磁盘上保存的表数据的抽象,即抽取一个表或多个表的部分行或列的数据,展示给使用者。 首先列举下MySQL中最简单的对视图操作的语法: 1、创建视图: create view 视图名 as select语句 例如: create view v_fruit as

视图是对磁盘上保存的表数据的抽象,即抽取一个表或多个表的部分行或列的数据,展示给使用者。

首先列举下MySQL中最简单的对视图操作的语法:

1、创建视图:

create view 视图名 as

select语句

例如:

create view v_fruit as

select name,place,weight from t_fruit

where weight<=12;

据我所知,“as”后面的语句肯定都是以“select”开头的,可以理解成视图的创建结果就是一张新的表格,表格里面有哪些东西呢,就是select语句的结果;另外这张新的“表格”的字段与“select”后面的名字对应,在上例中就是name,place,weight,但是也可以用as或省略as的别名形式,改变新“表格”的字段名,例如:

create view v_fruit as

select name myname,place as myplace,weight from t_fruit

where weight<=12;

这样,“新表格”的包含的所有字段名就是myname,myplace,weight

另外,指定视图的字段名可以不用在select后面加as的方法,直接在“视图名”后面加上“(字段1,字段2,...)”的方法,但是括号里面的个数必须跟实际select出来的字段个数一样

例如以下实现一样的字段名设定效果:

create view v_fruit(myname,myplace,weight) as

select name,place,weight from t_fruit

where weight<=12

with check option;

上面的视图是在一张表的基础上创建的,也可以根据多张表连接查询,或者根据其他的视图创建,即"from"后面可以跟表名,也可以跟视图名,但是千万不能跟子查询!

例如下面的写法是错的:

create view v as

select id,name,place from (select * from t_fruit)

where id>3;

当然,“where”后面跟上子查询是没有问题的。

2、使用视图:

视图一旦创建,操作起来就跟表格一样,爱怎么玩就怎么玩,至少你往编辑器里面输语句,肯定不会报错。

实际执行阶段就不一样了,对于select from的查询操作,肯定不会出任何问题;但是对于增、删、改,因为视图实际存储的只是定义,这三个操作会改动底下的实际的表格,而你看到的view,里面的数据可能来源于好几个表格,也有可能是通过和、平均数等计算得到的,一旦insert、delete或者update,改动就会特别复杂。为了保险起见,对于一些情况,增删改直接会被MySQL系统判定为误操作,无法成功。这里修改失败的情况特别多,只列举几个,比如改动涉及到两个或两个以上的表会失败,改动后not null的列没有值会失败,view的列值通过sum、count等计算得到的会失败。

还有一个问题要注意,如果底下的table的字段发生变动,比如说字段被删除、重命名等,视图操作就很容易出现错误。因为视图在定义时,select后面的字段名就定死了,不会随着表格字段的变动而变动,即使是select *,也会把*直接替换为相应的固定字段。比如一个view里面本来关联了A,B,C三个字段,现在table把字段C重命名为D,那么view对C字段的使用就会出错。

3、修改视图:

有两种方法,一种是常规的alter,另一种可以跟创建视图的共用

①alter方法,只需把创建时的create改成alter就行,比如:

alter view v_fruit as

select place as myplace,weight from t_fruit

where weight<=12;

②第1点创建视图里面漏了没说,实际上存在创建和修改视图可以共用的方法:create or replace,只要把create换成这3个单词,其他不要变

create or replace view v_fruit as

select place as myplace,weight from t_fruit

where weight<=12;

4、删除视图:

drop view 视图名;

或者

drop view 视图1,视图2,...

如果某个视图不存在,则会报错,但是其他存在的视图会被正常删除。

为了防止报错,可以加上“if exists”关键字

drop view if exists 视图名;

5、查看视图各字段的定义:

describe 视图名;

或者

desc 视图名;

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

MySQL学习笔记之视图_MySQL

MySQL学习笔记之视图_MySQL:视图是对磁盘上保存的表数据的抽象,即抽取一个表或多个表的部分行或列的数据,展示给使用者。 首先列举下MySQL中最简单的对视图操作的语法: 1、创建视图: create view 视图名 as select语句 例如: create view v_fruit as
推荐度:
标签: 笔记 mysql 视图
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top