数据库常用sql语句



 SELECT *
FROM emp

---LOWER ,INITCAP函数的使用
SELECT ename,LOWER(ename),job,INITCAP(job)
FROM emp
 
---CONCAT,LENGTH,INSTR,SUBSTR函数的使用
SELECT CONCAT(ename,job) nameAndJob,LENGTH(job),INSTR(LOWER (job),'a') "包含a?",job
FROM emp      
WHERE SUBSTR(job,1,4) ='SALE'

--CASE ELSE 表达式用法
SELECT ename,job,sal,
       CASE job WHEN 'SALESMAN' THEN sal*1.25
                WHEN 'CLERK'    THEN sal*1.15
                WHEN 'MANAGER'   THEN sal*0.9
       ELSE sal END "salary"
FROM emp

--DECODE函数表达式
SELECT ename,job,sal,DECODE(job,'SALESMAN',SAL*1.25,
                                'CLERK',   sal*1.15,
                                'MANAGER', sal*0.9,
                                           sal) "salary"
FROM emp                                 
--------------------------------------------
SELECT ename, sal,
       DECODE (TRUNC(sal/2000, 0),
                         0, 0.00,
                         1, 0.09,
                         2, 0.20,
                         3, 0.30,
                         4, 0.40,
                         5, 0.42,
                         6, 0.44,
                            0.45) TAX_RATE
FROM   emp

----------NVL函数的使用(当参数值为null,赋值为0,0为自定义值,可以设置为其他值)
SELECT ename,comm,sal,sal+NVL(comm,0) money
FROM emp

----------NVL2的使用(当comm不为null时,值为sal+comm,当comm为null时,值为sal)
SELECT ename,comm,sal,NVL2(comm,sal+comm,sal) incom
FROM emp

-------ROUND ,TRUNC,MOD函数使用
SELECT ROUND(45.569,2) 四舍五入,TRUNC(45.569,2) 截取,MOD(7,2) 求余
FROM dual


----等值连接(根据emp和dept表的部门编号进行连接)
SELECT *
FROM emp e,dept d
WHERE e.deptno=d.deptno(+)

--左外连接
SELECT *
FROM emp e LEFT OUTER
JOIN dept d
ON e.deptno=d.deptno

----外连接(新添职员孙悟空没有设置部门编号,怎样获取信息)
SELECT e.ename,e.empno,e.sal,e.deptno,d.deptno
FROM emp e,dept d 
WHERE e.deptno=d.deptno(+)

--自连接
SELECT e.ename 职员,e.empno,m.ename 上司,m.empno
FROM emp e, emp m
WHERE e.mgr=m.empno 

--查询树形结构,从高到低查询
select ename,empno,mgr
from emp
start with empno=7839
connect by prior empno=mgr 

 SELECT *
FROM emp

---LOWER ,INITCAP函数的使用
SELECT ename,LOWER(ename),job,INITCAP(job)
FROM emp
 
---CONCAT,LENGTH,INSTR,SUBSTR函数的使用
SELECT CONCAT(ename,job) nameAndJob,LENGTH(job),INSTR(LOWER (job),'a') "包含a?",job
FROM emp      
WHERE SUBSTR(job,1,4) ='SALE'

--CASE ELSE 表达式用法
SELECT ename,job,sal,
       CASE job WHEN 'SALESMAN' THEN sal*1.25
                WHEN 'CLERK'    THEN sal*1.15
                WHEN 'MANAGER'   THEN sal*0.9
       ELSE sal END "salary"
FROM emp

--DECODE函数表达式
SELECT ename,job,sal,DECODE(job,'SALESMAN',SAL*1.25,
                                'CLERK',   sal*1.15,
                                'MANAGER', sal*0.9,
                                           sal) "salary"
FROM emp                                 
--------------------------------------------
SELECT ename, sal,
       DECODE (TRUNC(sal/2000, 0),
                         0, 0.00,
                         1, 0.09,
                         2, 0.20,
                         3, 0.30,
                         4, 0.40,
                         5, 0.42,
                         6, 0.44,
                            0.45) TAX_RATE
FROM   emp

----------NVL函数的使用(当参数值为null,赋值为0,0为自定义值,可以设置为其他值)
SELECT ename,comm,sal,sal+NVL(comm,0) money
FROM emp

----------NVL2的使用(当comm不为null时,值为sal+comm,当comm为null时,值为sal)
SELECT ename,comm,sal,NVL2(comm,sal+comm,sal) incom
FROM emp

-------ROUND ,TRUNC,MOD函数使用
SELECT ROUND(45.569,2) 四舍五入,TRUNC(45.569,2) 截取,MOD(7,2) 求余
FROM dual


----等值连接(根据emp和dept表的部门编号进行连接)
SELECT *
FROM emp e,dept d
WHERE e.deptno=d.deptno(+)

--左外连接
SELECT *
FROM emp e LEFT OUTER
JOIN dept d
ON e.deptno=d.deptno

----外连接(新添职员孙悟空没有设置部门编号,怎样获取信息)
SELECT e.ename,e.empno,e.sal,e.deptno,d.deptno
FROM emp e,dept d 
WHERE e.deptno=d.deptno(+)

--自连接
SELECT e.ename 职员,e.empno,m.ename 上司,m.empno
FROM emp e, emp m
WHERE e.mgr=m.empno 

--查询树形结构,从高到低查询
select ename,empno,mgr
from emp
start with empno=7839
connect by prior empno=mgr 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值