1、创建两张测试表,
create table test_cj(name VARCHAR(20), remark varchar2(20))
create table test_kc(name VARCHAR(20), remark varchar2(20))
2、插入测试数据
insert into test_cj values('xh','cj_1')
insert into test_cj values('kcdh','cj_2')
insert into test_cj values('cj','cj_3')
insert into test_kc values('kcdh','kc_1')
insert into test_kc values('kcm','kc_2')
3、查询两张表的总记录数,select t.*, rowid from test_cj t union all select t.*, rowid from test_kc t,
4、编写sql,两张表进行关联,select t.name, t.remark, b.remark from test_cj t, test_kc b where t.name=b.name,可以发现关联出kcdh的记录,
有两种办法:第一种方法是通过外键:
假设有两张表,
A表(AId,AName) B(BId,BName)表 ,要想把这两者关联起来的话。可以通过外键来关联,在B表或者A表中添加一个外键。这里就以B表把B(BId,AId(外键),BName),这样通过外键两张表就可以联系起来了,例如我们在查询的时候通过AId就可以关联查询两张表的数据了。
第二种方法就是增加一张表:
还是拿A表(AId,AName) B(BId,BName)表来举例把,
我们可以增加个C表来联系AB表之间的关系
C表中只要放AB表的主键就行了
C(AId,BId),这样我们就可以通过C表来关联AB表了。
呵呵
数据库中把两个表关联起来的语句使用的连接语句链接分为内连接,外连接,交叉连接等,外连接分为左外,右外连接
案例:
内链接
select * from student a
inner join stumarks b
on a.stuid=b.stuid
外连接
select * from student a
left join stumarks b
on a.stuid=b.stuid
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)