您的位置:首页 > 数据库 > Oracle

2015年8月2日--第二三四天Oracle的sql文件

2015-08-03 09:33 399 查看
–2015年7月31日09:07:00

–SELECT *FROM emp WHERE deptno=’10’

–字符自动转为数值

–SELECT *FROM emp

–WHERE 1=’1’7

–SELECT 1+’1’ FROM dual

–以上隐式转换

–以下显式转换

–to_char to_date to_number

–SELECT to_char (hiredate) FROM emp

/*

SELECT ename ,hiredate ,

to_char(hiredate,’YYYY’)YYYY,

to_char(hiredate,’ YEAR’) YEAR,

to_char(hiredate,’ MONTH’) MONTH,

to_char(hiredate,’ MM’) MM,

to_char(hiredate,’ DD’) DD,

to_char(hiredate,’ DAY’) DAY,

to_char(hiredate,’ DY’) DY,

to_char(hiredate,’ HH24:MI:SS’) “HH24:MI:SS”,

to_char(hiredate,’ DD”of”MONTH’) “DDofMONTH”

FROM emp

*/

–SELECT sal,to_char(sal,’$99,999’)FROM emp

–SELECT to_number (‘1111.111’,’9999.999’) FROM dual

–SELECT TO_DATE (‘12-2-12’,’RR-DD-MM’) FROM dual

–exce6

–1

–SELECT to_char(SYSDATE,’yyyy-mm-dd hh24:mi:SS’) FROM dual

–2

–SELECT ename ,hiredate,to_char(hiredate,’DAY’) DAY FROM emp

–3

–SELECT ename ,sal , TO_char(sal,’L999,999.99’) from emp

–4

–SELECT TO_DATE(‘2015-3月-18 13:13:13’, ‘YYYY-month-dd hh24:mi:SS’) ,SYSDATE-TO_DATE(‘2015-3月-18 13:13:13’, ‘YYYY-month-dd hh24:mi:SS’) FROM dual

–2015年7月31日10:04:34

–NVL

–SELECT sal*12+NVL(comm,0) FROM emp

–SELECT sal*12 +NVL2(comm,comm+1,1) FROM emp

/*SELECT ename ,deptno ,

(CASE deptno

WHEN 10 THEN ‘sale’

WHEN 20 THEN ‘tech’

WHEN 30 THEN ‘mgr’

ELSE ‘NO’ END)

deptname

FROM emp*/

/*SELECT ename ,deptno ,

DECODE(deptno,

10,’sale’ ,

20,’tech’,

30,’mgr’,

‘no’)deptname

FROM emp*/

–SELECT ename ,NVL(to_char(mgr),’No manager’) FROM emp –参数类型匹配

–WHERE mgr IS NULL

–homework

–5

–SELECT ename ,NVL(to_char(mgr),’No manager’) FROM emp –参数类型匹配

–WHERE mgr IS NULL

–7

–SELECT ename ,sal ,DECODE(TRUNC(sal/1000),

– 0 , 0,

– 1 , sal*0.1,

– 2 , sal*0.15,

– sal*.2) TAX FROM emp

–多表连接

/*

SELECT empno,ename,emp.deptno, dname,loc FROM emp,dept

WHERE emp.deptno=dept.dssseptno

AND loc =’CHIAGO’

*/

–2015年7月31日14:06:03

/SELECT FROM cust ord gift

WHERE c.custemid=o.custenid

AND o.giftid=g.giftid*/

/*

SELECT ename,sal,grade FROM emp,salgrade

WHERE emp.sal>=salgrade.loc

AND emp.sal<=salgrade.hisal

*/

–exce1

–1

–SELECT ename,dept.deptno,dname FROM emp ,dept

–2

/*SELECT ename,loc, comm FROM emp,dept

WHERE loc=’CHICAGO’

AND comm IS NOT NULL*/

–3

/*SELECT ename,loc FROM emp e,dept d

WHERE e.deptno=d.deptno

AND INSTR (UPPER(e.ename),’A’)>0

*/

–exce2

/*

SELECT empno ,ename ,sal , grade ,loc FROM emp ,dept,salgrade

WHERE emp.deptno=dept.deptno

AND emp.sal

BETWEEN salgrade.losal AND salgrade.hisal –非等值连接

AND emp.deptno IN (20,30)

ORDER BY grade ASC

*/

–SELECT * FROM emp FOR UPDATE

–SELECT * FROM emp e,dept d

–WHERE e.deptno(+) =d.deptno –(+)加在缺少匹配的表的一段

–SELECT e.empno ,e.ename,dname FROM emp e ,dept d

–WHERE e.deptno =d.deptno (+)

/SELECT d. , e.empno ,e.ename

FROM emp e,dept d

WHERE d.deptno =e.deptno(+)*/

–consider

–SELECT worker.ename ,manager.ename FROM emp worker, emp manager

–WHERE worker.mgr=manager.empno (+)

–exce3

–1

/*SELECT worker.ename worker,worker.empno wno,manager.ename manager ,manager.empno mno , loc FROM emp worker ,emp manager ,dept

WHERE loc IN (‘NEW YORK’,’CHICAGO’)

AND dept.deptno=worker.deptno

AND worker.mgr=manager.empno*/

–2

/*SELECT worker.ename worker,worker.empno wno,manager.ename manager ,manager.empno mno , loc FROM emp worker ,emp manager ,dept

WHERE loc IN (‘NEW YORK’,’CHICAGO’)

AND dept.deptno=worker.deptno

AND worker.mgr=manager.empno(+)*/

–3

/SELECT d. , e.empno ,e.ename

FROM emp e,dept d

WHERE d.deptno (+)=e.deptno*/

–ANSI99

/SELECT

FROM emp CROSS JOIN dept –笛卡尔乘积*/

–SELECT * FROM emp NATURAL JOIN dept –列数据类型相同

–SELECT * FROM emp JOIN dept ON emp.deptno =dept.deptno

–SELECT * FROM emp LEFT OUTER JOIN dept ON emp.deptno =dept.deptno

–SELECT * FROM emp ,dept WHERE emp.deptno =dept.deptno(+)

–exce4

–1

–SELECT * FROM emp NATURAL JOIN dept

–2

–SELECT ename ,d.dname ,hiredate ,deptno , deptno FROM emp e NATURAL JOIN dept d

–chapter 6分组函数

/*SELECT MAX(e.sal),MIN(e.sal),AVG(e.sal) ,COUNT(e.sal) ,SUM(e.sal)

FROM emp e*/

–SELECT SUM(DISTINCT sal ) ,AVG (DISTINCT sal) FROM emp

–SELECT COUNT(*) FROM emp where deptno =10

–SELECT COUNT(comm) FROM emp

–SELECT SUM(comm) FROM emp –除了count之外 全部忽略NULL值

–SELECT AVG (NVL(comm,0)) FROM emp

//作业

–chapter 2

–1

–SELECT * FROM emp

–SELECT * FROM dept

–SELECT * FROM salgrade

–2

/*DESC emp

DESC dept

DESC salgrade*/

–3

–SELECT DISTINCT deptno ,job FROM emp

–chapter 3

–1

/*SELECT ename , hiredate ,job FROM emp

WHERE hiredate>’09-7月-82’

AND job<>’SALESMAN’*/

–2

/*

SELECT ename FROM emp

WHERE ename LIKE ‘__A%’*/

–3

/*SELECT ename ,deptno FROM emp

WHERE deptno NOT IN (10,20)*/

–4

/SELECT FROM emp

WHERE deptno IN (30)

ORDER BY sal DESC , ename ASC*/

–5

/*SELECT ename FROM emp

WHERE mgr IS NULL*/

–6

/*SELECT ename ,sal ,deptno FROM emp

WHERE sal>4500

AND deptno IN (10,20)*/

–chapter 4

–1

–SELECT months_between(SYSDATE,’01-1月-00’) MONTHS , ROUND(SYSDATE-TO_DATE(‘2000-1月-1’, ‘YYYY-month-dd’))/7 WEEKS FROM dual

–2

–SELECT * FROM emp

–WHERE SUBSTR(ename,3,1)=’A’

–WHERE INSTR(ename,’A’,3,1)=3

–3

–SELECT TRIM (‘h’ FROM ‘Hello’) FROM dual

–SELECT TRIM (’ ’ FROM ’ Hello ‘) FROM dual

–SELECT TRIM (‘b’ FROM ‘bllb’) FROM dual

–SELECT TRIM (’ ’ FROM ’ hello ‘) FROM dual

–4

–SELECT to_char(sal,’999,999.00L’) FROM emp

–5

–SELECT ename ,NVL(to_char(mgr),’No manager’) FROM emp –参数类型匹配

–WHERE mgr IS NULL

–6

–SELECT to_char(hiredate,’mon/rr’) “mm/rr” FROM emp

–7

– SELECT ename ,sal ,DECODE(TRUNC(sal/1000),

– 0 , 0,

– 1 , sal*.1,

– 2 , sal*.15,

– sal*.2) TAX FROM emp

–8

–SELECT ename ,LPAD(sal,15,’$’) sal FROM emp

–chapter 5

–1

/*SELECT worker.ename 员工姓名,dname 部门名称,manager.ename 直接上级名称 FROM emp worker,emp manager ,dept d

WHERE worker.deptno=d.deptno

AND manager.deptno=d.deptno

AND manager.empno=worker.mgr

AND worker.ename =’SMITH’ */

–2

/*SELECT ename ,dname ,sal ,grade FROM emp e,dept d ,salgrade g

WHERE grade>4

AND e.deptno =d.deptno

AND e.sal BETWEEN g.losal AND g.hisal*/

–3

/*SELECT e.ename 员工,m.ename 经理 FROM emp e,emp m

WHERE m.ename IN (‘KING’,’FORD’)

AND e.mgr=m.empno*/

–4

/*SELECT e.ename ,e.hiredate ,m.ename FROM emp e,emp m

WHERE e.mgr=m.empno

AND e.hiredate
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle10g