在Oracle数据库中如何把两张表关联起来,多对一或者一对一一对多。请写明语句 谢谢!!!

在Oracle数据库中如何把两张表关联起来,多对一或者一对一一对多。请写明语句 谢谢!!!,第1张

有两种办法:

第一种方法是通过外键:

假设有两张表,

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表了。

呵呵

你提供的4张表都没有 PAGE_NAME 这个字段。

我猜应该是在IP_PAGE_URL_T里吧?

SQL如下:

SELECT A.PAGE_ID,C.PAGE_NAME,B.OPE_ID,B.OPE_NAME,D.OPE_GROUP_NAME

FROM IP_OPE_PAGE_T A,

IP_OPE_LIST_T B,

IP_PAGE_URL_T C,

IP_OPE_GROUP_T D

WHERE A.OPE_ID = B.OPE_ID

AND B.OPE_GROUP_ID = D.OPE_GROUP_ID

AND A.PAGE_ID = C.PAGE_ID

-- insert 

create or replace trigger trigger_insert_class

after insert or update OF age on table_name_a

for each row

--PRAGMA AUTONOMOUS_TRANSACTION  

begin

   --if inserting then

      if :NEW.age >=1 and :NEW.age <=5 then

        insert into  table_name_a(class) values ('youeryuan')

       elsif :NEW.age >=6 and :NEW.age <=12 then

         insert into  table_name_a(class) values ('xiaoxue')

       end if  

 end 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6769500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存