MySql创建视图

深藏阁楼爱情的钟 2022-06-05 00:27 374阅读 0赞

文章转载于:https://www.cnblogs.com/sening/p/4526163.html

MySql创建视图

(1).第一类:create view v as select * from table;

(2).第二类:create view v as select id,name,age from table;

(3).第三类:create view v[vid,vname,vage] as select id,name,age from table;

如果涉及到数据量过大,业务逻辑需要跨表查询等等也可建立一个跨表的视图,有三种情况:

一、基于同一数据库

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

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

二、基于不同数据库

这种情况只比上面的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. (1).登录Mysql;
  2. (2).mysql>show engines;
  3. (3).如果显示为no,在配置文件中添加:federated (在my.ini),重新启动mysql服务。

2、创建远程表

  1. mysql>CREATE TABLE federated\_table (
  2. id INT(20) NOT NULL AUTO\_INCREMENT,
  3. name VARCHAR(32) NOT NULL DEFAULT '',
  4. other INT(20) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (id)
  6. )
  7. ENGINE=FEDERATEDDEFAULT
  8. CHARSET=utf8
  9. CONNECTION='mysql://fed\_user@remote\_host:9306/federated/test\_table';

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

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

3、建立视图

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

发表评论

表情:
评论列表 (有 0 条评论,374人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL 创建视图

    创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 基本语法 可以使用 CREATE VIEW 语句来创建视图。