mysql视图创建

mysql视图创建

什么是视图?
视图就是数据库的虚拟表,不存储数据。在使用中,其实就可以当作普通表一样。
视图的作用?
设计视图是为了简化sql查询,比如student表有100个字段,我经常需要查询其中的20个字段,每次查询都写sql未免太麻烦,所以我们可以将查询这20个字段的sql建立一张视图student_view,以后查询直接可以select * from student_view;是不是方便了很多呀?

创建sql

一、基于同一数据库

这种情况较为简单,只需简单的一行sql命令,如下:

create view 视图名 as 查询语句;

例:create view v as (select * from table1) union all (select * from table2);

创建或替换视图:

create or replace view 视图名 as 查询语句;

二、基于不同数据库

这种情况只比上面的sql语句多一个数据库的名字,如下:

create view 数据库1.v as (select * from 数据库1.table1) union all (select * from 数据库2.table2);

create view 数据库2.v as (select * from 数据库1.table1) union all (select * from 数据库2.table2);

如果执行第一个sql将在数据库1下建立视图,反之亦然;

三、基于不同服务器

这种情况稍微麻烦一点,需要先建立一个远程表来访问远程服务器的数据表,然后再对这个刚建立的远程表和本地表进行视图,步骤如下:

1、查看MySql是否支持federated引擎

(1).登录Mysql;    

(2).mysql>show engines;

(3).如果显示为no,在配置文件中添加:federated (在my.ini),重新启动mysql服务。

2、创建远程表

 mysql>CREATE TABLE federated_table (

               id  INT(20)  NOT NULL AUTO_INCREMENT,  

              name  VARCHAR(32) NOT NULL DEFAULT '',  

              other  INT(20) NOT NULL DEFAULT '0',   

              PRIMARY KEY  (id)

             )

             ENGINE=FEDERATEDDEFAULT

             CHARSET=utf8

             CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

CONNECTION可以按如下方式进行配置:

  (1).CONNECTION='mysql://username:password@hostname:port/database/tablename'

  (2).CONNECTION='mysql://username@hostname/database/tablename'

  (3).CONNECTION='mysql://username:password@hostname/database/tablename'

3、建立视图

create view 本地数据库.v as (select * from 本地数据库.table1) union all (select * from 远程数据库.test_table);

***查询视图 ***

select * from 视图名;

查询有哪些视图

show tables in vcsaas [ like ‘%view%’] ; -------可以模糊查询。

删除视图
drop view 视图名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值