数据库常用sql语句

来源:互联网 发布:c语言写的游戏 编辑:程序博客网 时间:2024/06/06 03:26


 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
原创粉丝点击