oracle/sql常用命令

1.查看表结构

1) describe 表名;

2) set long = 6000; select DBMS_METADATA.GET_DLL('TABLE','表名') from dual;

2.in/not in 与 exists/not exists的区别

in是把外表和内表做hash连接,exists是对外表做loop循环,每次loop循环在对内表进行查询,如果两个表大小相当,效率相差不大

使用子查询时碰到一个小表和一个大表时,用in的时候使用小表做子查询,用exists的时候使用大表做子查询

如果使用not in时,那么内、外表都进行全表扫描,没有用到索引,而not exists依然可以用到索引;所以,无论哪个表大,not exists都比not in要快

且使用not in时在表中有null时会报逻辑错误,所以尽量不要使用not in

3.oracle数据库查询至少有一个员工的所有部门

1)select dname from dept where deptno in (select deptno from emp group by deptno having(count(deptno)>1));
2)select dname from dept where deptno in (select deptno from emp);

3)select * from dept where exists (select deptno from emp where dept.deptno=emp.deptno);

4,将两列相加的sql语句

select sal,comm,(sal+comm) as salary from emp; 这样salary就等于sal + comm了;


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值