必威体育Betway必威体育官网
当前位置:首页 > IT技术

【MySQL】跨库join

时间:2019-10-14 12:42:14来源:IT技术作者:seo实验室小编阅读:80次「手机版」
 

目标:数据库A中的表可以join数据库B中的表。

环境:windows系统,免安装版mysql-5.7.22。

需求:数据库中表很多,将表按业务划分到不同的数据库,保存表之间必要的关联关系

一、开启FEDERATED引擎

执行命令:SHOW ENGINES;,查看mysql数据库中Federated引擎是否开启。下图所示,为未开启。

这里写图片描述

修改mysql文件夹根目录的my.ini文件(linux系统修改my.cnf文件):新添加一行,内容为federated,如下图所示:

这里写图片描述

重启MySQL

这里写图片描述

再次执行命令:SHOW ENGINES;,可以看到Federated引擎已开启。

这里写图片描述

二、新建两个数据库:A和B

A库中添加一张student表:

CREATE TABLE student(
    id VARCHAR(10) NOT NULL DEFAULT '' comment '主键id',
    student_name VARCHAR(10) DEFAULT NULL COMMENT '学生姓名',
    school_id VARCHAR(10) NOT NULL DEFAULT '' COMMENT '学校id',
    PRIMARY KEY(id) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生表';

B库中添加一张school表:

CREATE TABLE school(
    id VARCHAR(10) NOT NULL DEFAULT '' COMMENT '主键id',
    school_name VARCHAR(10) DEFAULT NULL COMMENT '学校名称',
    PRIMARY KEY(id) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学校表';

三、表中添加数据

在数据库A中添加一行数据:

id = 1 
student_name = 琚建飞
school_id = 1

在数据库B中添加一行数据:

id=1
school_name = 廊坊师范

四、在数据库A中建立远程表

CREATE TABLE school (
  `id` varchar(10) NOT NULL DEFAULT '' COMMENT '主键id',
  `school_name` varchar(10) DEFAULT NULL COMMENT '学校名称',
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 
    COMMENT='学校表-远程表' CONNECTION='mysql://root:root@localhost:3306/b/school';
-- root:root   远程数据库的账号和密码
-- localhost:3306  远程数据库的ip和端口
-- b  远程数据库的名称
-- school 远程数据库的表名称

五、执行join操作

SELECT s.id, s.student_name, sc.school_name 
FROM student s JOIN school sc ON s.school_id = sc.id

操作结果:

这里写图片描述

本地表和远程表

  1. 对本地表进行更新操作,远程表也会同步更新。
  2. 删除本地表,远程表不会删除。
  3. 远程表结构修改,本地表不会更新。

相关阅读

SQL server 2016数据库 下载安装

SQL server 2016数据库 下载安装 1:获取安装包 获取安装包 点击进去如下图:复制链接到迅雷中下载 2:下载的 SQL server 2016如下图

python编程基础:图形库之Pillow使用方法

PIL vs Pillow PIL: Python Imaging Library,是python的图像处理库。由于PIL不兼容setuptools,再加上更新缓慢等因素,Alex Clark等

mysql笛卡儿积

1.笛卡儿积数学理解 A={2,3} ;B= {0,2,4} AxB = {(2,0),(3,0),(2,2),(3,2),(2,4),(3,4)},则AxB的结果集既是笛卡儿积; 但其不满足交换率

MySQL数据库索引

目录 索引是什么 索引有哪些结构 数据库有哪些索引 唯一索引 聚簇索引与非聚簇索引 全文索引 使用索引一定能提高查询性能吗? 哪些

mysql插入数字都变成2147483647的解决方法

(2011-10-18 16:57:43) 转载▼标签: mysql 数据库 2147483647 杂谈 分类:php基础 在用Excel导入数据的时候,碰到11位的数字都变成2

分享到:

栏目导航

推荐阅读

热门阅读