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

–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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值