首页 > 数据库 >多mysql实例库联合查询

多mysql实例库联合查询

时间:2022-11-28 17:34:45浏览次数:81  
标签:name 数据库 查询 实例 user mysql 个库 id

注意:myemployees库和shoppingCart库在同一台物理主机,如果不在同一台物理主机该怎么办呢?下面我会介绍到。

情况一2个库在同一台物理主机

联合查询(不同的2个库,myemployees库和shoppingCart库),这2个库在同一台物理主机上,都在我本机。

1 2 3 4 5 6 7 8 #联合查询(不同的2个库,myemployees库和shoppingCart库) SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02; # SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION ALL SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;

情况二2个库不在同一台物理主机(即2个库分别在不同的物理主机)

为了演示效果,我这里使用我的虚拟机,我虚拟机里安装了Linux系统(centos),Linux系统中已经安装了MySql数据库,MySql数据库服务已经启动了,所有的环境已经全部弄好了。

我的Linux系统(centos)的ip是192.168.117.66。

我打算我本地的author表和远程的user表进行联合查询。

在linux中输入SHOW CREATE TABLE `user`;这句话得到的结果后,我们把

1 2 3 4 CREATE TABLE IF NOT EXISTS `user` (   `id` INT(11) DEFAULT NULL,   `name` VARCHAR(20) DEFAULT NULL )

这段代码拷贝到我本地的数据库中,并且在末尾加上

1 ENGINE =FEDERATED CONNECTION='mysql://root:[email protected]:3306/testDB/user';这句话。

1 2 3 4 CREATE TABLE IF NOT EXISTS `user` (   `id` INT(11) DEFAULT NULL,   `name` VARCHAR(20) DEFAULT NULL )ENGINE =FEDERATED CONNECTION='mysql://root:[email protected]:3306/testDB/user';

其实上面的那段语句,说白了,就是在我本地的数据库中建了一个远程数据库的连接的快捷方式(远程数据库的连接快捷方式),类似于什么呢?就类似于我们window操作系统中的桌面上的桌面快捷方式,我们双击一下桌面上的某个软件图标就能打开该软件,一样的道理嘛。

执行上面的语句即可。

对了,还有一点要注意:

你要查一下,你本地的mysql数据库的FEDERATED引擎有没有开启。

1 SHOW ENGINES;

如果FEDERATED是NO的话,说明没有开启,需要你去修改一下mysql数据库的配置文件。

修改本地mysql数据库的配置文件,在配置文件末尾加上federated,如下图:

如果你是windows系统的话,就修改my.ini文件,如果你用的是Linux系统的话,就修改my.cnf文件。

修改完配置文件后记得重启一下mysql的服务。

linux重启mysql服务,service mysqld restart

windows重启mysql服务,在dos窗口中,输入net stop mysql服务名,然后再输入net start mysql服务名

OK,全部搞定后,执行如下sql语句,即可看到跨库查询的查询结果。

1 2 3 4 # SELECT id, aname FROM author UNION SELECT id, `name` FROM `user`;

1 SELECT * FROM author INNER JOIN  `user`;

以上这种跨服务器跨库的查询,需要注意如下几点: 

1.该跨库查询方式不支持事务,最好别使用事务。

2.不能修改表结构。

3.MySQL使用这种跨库查询方式,远程数据库目前仅支持MySQL,其他数据库不支持。

4.表结构必须和目标数据库表完全一致。

原文:https://www.jb51.net/article/239190.htm

标签:name,数据库,查询,实例,user,mysql,个库,id
From: https://www.cnblogs.com/axin85/p/16932796.html

相关文章

  • Linux:CentOS release 8.5 安装Mysql5.7
    添加Mysqlyum存储库下载安装软件包#下载软件包wgethttps://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm#安装软件包rpm-Uvhmysql80-commun......
  • springboot+mysql+mybatis逆向工程
     最近一直再做hibernate相关的工作,想捡起遗忘了一年的mybatis,就在自己的demo项目中引入了一下,记录下过程,这里只生成mapper和model和mapper.xml一、引入依赖  ......
  • Swift基础之init方法,实例(对象)方法,类(静态)方法的使用(多标签Demo)
    Xcode更新过后,有些方法都进行了改变,Demo中有变化的都进行了简单的标记,具体以后遇见再说创建一个UIView类,用init方法创建两种类型,显示多标签,创建静态方法进行调用,创建类方法......
  • Java实现递归查询树结构
        我们在实际开发中,肯定会用到树结构,如部门树、菜单树等等。Java后台利用递归思路进行构建树形结构数据,返回给前端,能以下拉菜单等形式进行展示。今天,咱们就来说......
  • MYSQL-8.0.31 windows免安装 版安装 方法
    1从官方下载绿色安装包 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-winx64.zip2解压到C:\mysql-8.0.31-winx64\建立data目录新建m......
  • MySQL数据库:8、多表查询的方法与思路
    目录一、多表查询思路数据准备1、笛卡尔积1、1.代码实践1、2.笛卡尔积进阶操作2、连表操作2、1.内连接2、2.左连接2、3.右连接2、4.全连接3、子查询3、1.子查询代码实践一......
  • greatdb实例的启停
    启动守护进程启动,也可以greatdbd启动greatdbd_safe--defaults-file=/greatdb/conf/greatdb3306.cnf--user=greatdb&关闭--(1)登录数据库后输入命令:shutdown--(......
  • MySQL多表查询及pymysql简单使用
    目录多表查询的两种方法小知识点补充说明可视化软件Navicat多表查询练习题python操作MySQLpymysql补充说明多表查询的两种方法方式一:连表操作innerjoin内连接 selec......
  • 关于页面输入框的字段限长问题,查询数据库字符集
    关于页面输入框的字段限长如果开发文档或者接口文档没有明确给出字段的限制长度,我们在写页面的时候需要自己去数据库查看字段长度以Oracle数据库为例如果Oracle的字符集......
  • 5个零售业大数据带来巨大收益的实例(译文)
    5个零售业大数据带来巨大收益的实例(译文)注明:此译文已经在小象公众平台发表,转载请注明-小象学院,谢谢合作!作者:ChuckSchaeffer大数据正在为零售商们传递一些可观的成果。Mac......