跨数据库查询?如何实现ACCESS数据库跨库查询
大家好,如果您还对跨数据库查询不太了解,没有关系,今天就由本站为大家分享跨数据库查询的知识,包括如何实现ACCESS数据库跨库查询的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
两张表在不同的数据库,如何关联查询
mysql支持多个库中不同表的关联查询,你可以随便链接一个数据库
然后,sql语句为:
select* from db1.table1 left join db2.table2 on db1.table1.id= db2.table2.id
只要用数据库名加上"."就能调用相应数据库的数据表了.
数据库名.表名
扩展资料mysql查询语句
1、查询一张表: select* from表名;
2、查询指定字段:select字段1,字段2,字段3....from表名;
3、where条件查询:select字段1,字段2,字段3 frome表名 where条件表达式;
例:select* from t_studect where id=1;
select* from t_student where age>22
4、带in关键字查询:select字段1,字段2 frome表名 where字段 [not]in(元素1,元素2);
例:select* from t_student where age in(21,23);
select* from t_student where age not in(21,23);
5、带between and的范围查询:select字段1,字段2 frome表名 where字段 [not]between取值1 and取值2;
例:select* frome t_student where age between 21 and 29;
select* frome t_student where age not between 21 and 29;
mysql如何实现跨数据库查询并按where子
1、where型子查询
(把内层查询结果当作外层查询的比较条件)
#不用order by来查询最新的商品
select goods_id,goods_name from goods where goods_id=(select max(goods_id) from goods);
#取出每个栏目下最新的产品(goods_id唯一)
select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id);
2、from型子查询
(把内层的查询结果供外层再次查询)
#用子查询查出挂科两门及以上的同学的平均成绩
思路:
#先查出哪些同学挂科两门以上
select name,count(*) as gk from stu where score< 60 having gk>=2;
#以上查询结果,我们只要名字就可以了,所以再取一次名字
select name from(select name,count(*) as gk from stu having gk>=2) as t;
#找出这些同学了,那么再计算他们的平均分
select name,avg(score) from stu where name in(select name from(select name,count(*) as gk from stu having gk>=2) as t) group by name;
3、exists型子查询
(把外层查询结果拿到内层,看内层的查询是否成立)
#查询哪些栏目下有商品,栏目表category,商品表goods
select cat_id,cat_name from category where exists(select* from goods where goods.cat_id= category.cat_id);
如何实现ACCESS数据库跨库查询
有两种办法实现跨库查询
方法1)
将外数据库表链接到本数据库,然后就像使用本数据库表一样使用这些链接表进行查询了。
方法2)
在查询语句里使用in关键字+数据库存储路径,来查询外部ACCESS数据库表。
例如:
select a.* from members a,
(SELECT* from customers in"C:\Users\Lenovo_user\Desktop\db1.mdb")b
where a.m_name=b.name;
这个例子使用in关键子,将本数据库表与桌面上的外部数据库db1.mdb中表进行对等连接,返回相关的记录集。
如何跨实例查询sql
Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP
EXEC sp_addlinkedserver
@server='DBVIP',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc="/Server2"--要访问的服务器
EXEC sp_addlinkedsrvlogin
'DBVIP',--被访问的服务器别名
'false',
NULL,
'sa',--帐号
'thankyoubobby'--密码
Select* from DBVIP.pubs.dbo.orders
--查看当前链接情况:
select* from sys.servers;
--使用 sp_helpserver来显示可用的服务器
Exec sp_helpserver
--删除已经存在的某个链接
Exec sp_droplinkedsrvlogin服务器别名,Null
Exec sp_dropserver服务器别名
--使用sp_addlinkedserver来增加链接
EXEC sp_addlinkedserver
@server='192.168.2.66',--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.2.66'--要访问的服务器
--使用sp_addlinkedsrvlogin来增加用户登录链接
EXEC sp_addlinkedsrvlogin
'192.168.2.66',--被访问的服务器别名(如果上面sp_addlinkedserver中使用别名JOY,则这里也是JOY)
'false',
NULL,
'sa',--帐号
'test123'--密码
使用举例(访问目标服务器上的数据库Music,查看其中表test的内容):
如果建立链接时的别名是目标服务器IP,即192.168.2.66
则:
select* from [192.168.2.66].[Music].dbo.test
如果建立链接时的别名是JOY,
则:
select* from [JOY].[Music].dbo.test
可能会遇到的问题:
exec sp_dropserver'JOY'执行失败,
报错信息:仍有对服务器'JOY'的远程登录或链接登录。
解决方法:
exec sp_droplinkedsrvlogin'JOY',null
exec sp_dropserver'JOY'
OK,本文到此结束,希望对大家有所帮助。