Oracle_1
我叫阿狸猫
这个作者很懒,什么都没留下…
展开
-
Oracl_day1(连接查询)
1.不等值连接查询:--查询EMP表中用户的工资对应SALGRADE表中的工资级别SELECT ENAME,SAL,GRADE FROM EMP E,SALGRADE SWHERE E.SAL BETWEEN S.LOSAL AND S.HISAL;2.外连接原创 2013-10-15 20:48:14 · 679 阅读 · 0 评论 -
Oracle_day1(小知识点)
1./反斜杠是用来执行上一次执行的sql语句。2.如果sql在命令行输入错误,有两种方式进行修改。 (1)输入--c 光标默认指向上一次执行的sql语句的第一行,也可以手动指定行数(即:直接输入行数)。 然后输入c /需要改的内容/改成什么内容 回车后输入/执行修改后的sql语句。 (2)输入edit ,会把上一条语句放到系统默认的编辑原创 2014-01-07 10:47:13 · 793 阅读 · 0 评论 -
SQL优化
1.在使用GROUP BY的时候,如果HAVING 和 WHERE都可以使用的情况下,优先使用WHERE原因:如果一张表中有五千万条数据,需求是查询10号部门的员工并按照其职务分组,然后计算他们的平均工资。假设10号部门的员工只有50条记录,如果这时候我们先GROUP BY JOB(按照职务来分组)那么10号部门以外的员工也会进行按职务的分组操作,也就是说五千万条的数据都要进行分组操作,所以说原创 2013-10-15 22:56:42 · 699 阅读 · 0 评论 -
Oracle_Day2 查询练习,以及分页
1.伪列:rownum:ROWNUM注意点:(1)按照默认的顺序生成(就是没有排序的)(2)ROWNUM只能使用或>=。(经过测试发现>或>=1是可以查询出结果的,但是1以上就不能查询出结果了)查询出工资前3的员工信息SELECT ROWNUM,ENAME,SAL FROMEMP ORDER BY SAL DESC进行排序后发现ROWNUM顺序是错误的。如原创 2014-01-08 16:17:48 · 850 阅读 · 0 评论 -
Oracle_Day2 子查询
1.可以在主查询的where select from having后面放置子查询(1)select后面:发现第三列的内容是子查询的结果select ename,sal,(select job from emp where empno=7839) from emp;(2)from后面:select *from(select ename,sal from emp)查询部门名原创 2014-01-08 00:05:27 · 732 阅读 · 0 评论 -
Oracle_day1(组函数)
注意:,COUNT函数有滤空的功能SELECT COUNT(*) "*" ,COUNT(COMM) comm FROM EMP;发现,COUNT(*)是查询所有记录的总条数,COUNT(COMM)只会查询有奖金的用户条数如果想屏蔽COUNT的滤空功能,可以如下写法SELECT COUNT(*) "*" ,COUNT(NVL(COMM,0)) comm FROM EM原创 2013-10-15 22:58:43 · 829 阅读 · 0 评论 -
Oracle的months_between(date1,date2)函数注意点
select months_between(to_date('2011-4-28','yyyy-MM-dd'),to_date('2011-2-28','yyyy-MM-dd'))from dual;MONTHS_BETWEEN(TO_DATE('2011-4------------------------------ 2转载 2014-01-07 16:28:36 · 4646 阅读 · 0 评论 -
Oracle_day1(order by distinct like nulls last等基础部分)
1.nvl(a,b):表示,如果a为null,则显示b。2.oracle中判断字段是否为null不能用where a=null或where a!=null,这样永远都是false。而是应该用where a is null或where a is not null。 空值:是指无效的,未指定的,未知的或不可预知的值。空值不是空格或0。3.DISTINCT 用于去除重复数据原创 2013-10-15 12:40:11 · 1364 阅读 · 0 评论 -
Oracle_day1(单行函数)
2.日期函数:--计算两个时间相差的月份(是非常精确的,包括了2月,和31天30天情况) 如果参数相反,则结果为负数SELECT MONTHS_BETWEEN(SYSDATE,HIREDATE) FROM EMP;--向指定日期中加上若干月数SELECT ADD_MONTHS(SYSDATE,3) FROM DUAL;--从今天开始算(2013.10原创 2013-10-15 16:30:16 · 849 阅读 · 0 评论 -
Oracle_Day2集合运算
并集:当A和B没有交集的时候UNION和UNION ALL执行结果是一样的UNION :A和B都取,公共部分只取一次 UNION ALL:A和B都取,公共部分各取一次。两个集合就取两次,三个就取三次。交集:INTERSECT:A和B公共部分差集:MINUS:只属于A不属于B的集合使用集合运算需要注意的是:1.参与运算的各个集合必须列数相同 且类型原创 2014-01-08 16:59:09 · 751 阅读 · 0 评论