oracle可以联查到mysql吗_oracle数据库多表联合查询

高级查询(多表连接查询):

等值连接    select s.sname,e.cno,e.degree from student s,score e where s.sno=e.sno;

左外连接 left join ...on   左外连接on后面的等值连接表,左边的表全显示,右边的如果没记录用空补全

select * from t_student t left join t_stu_cour ts on s.sno=sc.sno;

右外连接 right join ...on  右外连接on后面的等值连接表,以右边的表为主全显示

select * from t_student t right join t_stu_cour ts on s.sno=sc.sno;

(+)修饰符的使用(将内连接变为外连接,以某一个表为标准显示所有结果)

select s.sname,e.cno,e.degree from student s,score e where s.sno=e.sno(+);

数据字典的使用   设置个查询范围的表,再用等值查询嵌套两个查询(用于把某些代码翻译成汉字)

selece t.*,(select ds.name from dic_sex ds where ds.code=t.sex)from z_student t;

自连接(自己骗一下自己)  用自己的子列=父列,有关联关系才可以:

select d1.id,d1.dis_name,d2.id,d2.dis_name from district_all d1,dustrict_all d2 where d1.id=d2.parentid;

connect by prior 连接条件 start with 开始条件

select * from district_all d connect by prior d.id=d.parentid start with d.dis_name like ‘%山东%’

伪列:level,rownum

层次查询 level

select f.*,level from food f connect by prior f.code=f.pcode start with f.name like '%饮料%';

select f.*,level from food f connect by f.code= prior f.pcode start with f.name like '%馒头%';

分页查询 rownum

select * from (select f.*,rownum ru from food f where rownum <=13) fd where fd.ru > 7;

随机数:

dbms_random.random         随意输出任意数字,无大小限制

dbms_random.value          0-1之间随机数

update t_student s set s.sbirthday=sysdate-(365*s.sage+dbms_random.value);

dbms_random.value(m1,m2)   m1-m2定义之间的随机数

update t_student s set s.sage=round(dbms_random.value(20,30));

trigger 触发器

触发器是一种存储过程, 当用户进行增删改的操作的时候(没有select !!!)oracle数据库会自动启动触发器中的程序

creat or replace trigger test

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值