mysql查询⼀个数据库_MySQL中进⾏跨库查询的⽅法⽰例前⾔
在MySQL中跨库查询主要分为两种情况,⼀种是同服务的跨库查询;另⼀种是不同服务的跨库查询;它们进⾏跨库查询是不同的,下⾯就具体介绍这两种跨库查询。
⼀、同服务的跨库查询
同服务的跨库查询只需要在关联查询的时候带上数据名,SQL的写法是这样的:SELECT * FROM 数据库1.table1 x JOIN 数据库
2.table2 y ON x.field1=y.field2;例如:
⼆、不同服务的跨库查询
不同服务的跨库查询,直接通过数据名加表明是⽆法进⾏关联的,这⾥需要⽤到MySQL数据库中的federated引擎。具体过程如下:
mysql数据库的方法需求:服务A上的数据库X的表A需要关联服务B上的数据库Y中的表B,查询需要的数据;
1、先查看MySQL数据库是否安装了FEDERATED引擎,通过命令show engines;如下图:
如上图所⽰,MySQL安装了FEDERATED引擎,但Support是No,表⽰没有启⽤,去myf⽂件末加上1⾏FEDERATED,重启MySQL即可。若没有到FEDERATED引擎,则需要去安装了。
2、在服务A上的数据库X中创建⼀个表B,语句如下:CREATE TABLE table_name(……)ENGINE=FEDERATED
CONNECTION='mysql://[username]:[password]@[localtion]:[port]/[db-name]/[table-name]'
说明:通过FEDERATED引擎创建的表只是在本地有表定义⽂件,数据⽂件则存在于远程数据库中,通过这个引擎可以实现远程数据访问功能。换句话说,这种建表⽅式会在服务A上的数据库X中创建了⼀个表结构⽂件(即服务B上的数据库Y的B表的表结构⽂件),表的索引、数据等⽂件还在服务B上的数据库Y中,相当于⼀种快捷⽅式,⽅便关联。
3、在服务A上的数据库X中直接进⾏A表与B表关联,就可以查询出需要的数据了。
这种⽅式有以下⼏点是需要注意的:
1)、该跨库查询⽅式不⽀持事务,最好别使⽤事务。
2)、不能修改表结构。
3)、MySQL使⽤这种跨库查询⽅式,远程数据库⽬前仅⽀持MySQL,其他数据库不⽀持。
4)、表结构必须和⽬标数据库表完全⼀致。
总结
到此这篇关于MySQL中进⾏跨库查询的⽂章就介绍到这了,更多相关MySQL跨库查询内容请搜索脚本之家以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持脚本之家!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论