oracle学习 第二章 限制性查询和数据的排序 ——02
来源:互联网 发布:淘宝天猫交易额 编辑:程序博客网 时间:2024/06/06 00:13
2.4 在SQL语句中使用字符串和日期
您的老板考虑目的销售不景气还要持续一段时间,因此不需要那么多的推销员(salesman)。他让您现在打印一份所有的推销员清单,于是您写下了例2-6的查询语句。
例 2-6
SQL> SELECT empno,ename,job 2 FROM emp 3 WHERE JOB ='salename';
例 2-6 结果
可是没有显示出任何结果。您一定对此感到很惊讶,因为在员工(emp)表中缺失存有推销员的数据,这到底是为什么呢?
这是因为WHERE子句中的字符串是区分大小写的。在WHERE子句中字符和日期型数据要用单引号括起来,但数字型不用。日期型数据默认的格式,在Oracle9i之前的版本中为“DD-MON-YY”,在Oracle9i中为“DD-MON-RR".
当您看完以上的解释后,就已经知道了问题的所在,重新输入例2-7的查询语句。
例 2-7
SQL> SELECT empno,ename,job,sal 2 FROM emp 3 WHERE JOB='SALESMAN';
例 2-7 结果
2.5 使用IN比较运算符(operators)
如果您的老板不但不需要那么多的推销员(salesman),而且也不需要那么多的文员和经理。又该如何打印这份员工的清单的?这时可以使用IN操作符来帮助完成何以工作。您可以使用例2-8的查询语句。
例 2-8
SQL> SELECT empno,ename,sal,job 2 FROM emp 3 WHERE job IN ('SALESMAN','CLERK','MANAGER');
例 2-8 结果
IN是SQL中的有一个很有用的比较运算符。IN用来测试某些值是否在列表中出现。在上面的SQL语句中,只要某一记录的JOB列的值等于IN列表中(即括号中)的任何一个,该记录就会显示出来。
还可以在 IN 只ian加上否定词NOT。NOT IN 用来测试某些值是否不再列中出现。在进一步假设您所在的公司一直没能扭转亏损的势头,老板不得不考虑解雇更多的员工,以进一步的节省开销。他认为公司除了分析员(analyst)以外都可以是要解雇的候选人。他要让您按此要求在为他准备一张员工的清单。于是您发出了例2-9的查询语句。
例 2-9
SQL> SELECT empno,ename,sal,job 2 FROM emp 3 WHERE job NOT IN ('ANALYST','PRESIDENT');
例 2-9 结果
这个例子与前面的例子显示的结果完全相同,但使用了不同的条件。WHERE job NOT IN(‘ANALYST’,‘PRESIDENT’)告诉Oracle只显示那些JOB(职位)既不是ANALYST(分析员)也不是PRESIDENT(老总)的记录。因为在em表中只有5中职位,除了ANALYST和PRESIDENT就是SALESMAN、CLERK和MANAGER了。这一例子也告诉我们可以由不同的查询语句来得到相同的结果。
如果仔细回忆一下老板的观点,即他认为公司中除了分析员(ANALYST)意外都可以是候选人,就会发现例2-9好像与他的要求有点出入,因为他并没有说要解雇的候选人中不好汗总裁(PRESIDENT),即老板自己。
2.6 使用LIKE比较运算符(operators)
我们知道人的记忆是比较有趣的。我们想记住的事情很难记得住,但我们想忘记的事却永远也忘不掉。假设老板让您打印一份所有的推销员的清单时,您不记得SALESMAN的准确拼写,但还记得它的钱3个字符SAL,此时该怎么办呢?可以在您的查询语句中使用LIKE运算符。例如可以使用例2-10的SQL语句。
例 2-10
SQL> SELECT empno,ename,sal,job 2 FROM emp 3 WHERE job LIKE 'SAL%';
例 2-10 结果
您可以用LIKE预算符进行通配符查询。通配符的英文原文为widcard,这个词的愿意为扑克牌中的2或者王,因为他们可以代替任何其他牌,所以称为wildcard。
LIKE运算符可以使用以下两个通配符“%”和“_”。其中
■ “%”代表零个或者多个字符。
■ “_”代表一个且只能是一个字符。
如果您只记得SALESMAN的第一个字符为S,第三个字符为L,第五个字符为S,那么应该如何处理呢?您可以使用例2-11的查询语句。
例 2-11
SQL> SELECT empno,ename,sal,job 2 FROM emp 3 WHERE job LIKE 'S_L_S%';
例 2-11 结果
另外,LIke运算符可以帮助您简单简化某些WHERE子句。例如要显示在1981年雇用的所有员工清单,可以使用例2-12的查询语句。
例 2-12
SQL> SELECT empno,ename,sal,hiredate 2 FROM emp 3 WHERE hiredate LIKE '%81';
例 2-12 结果
如果要查询的字符串中含有“_”或“%”,又该怎样处理呢?
------分割线-----------
今晚就先学到这了,明天继续。。。^_^
--------------------------------------------
上一篇: oracle学习 第二章 限制性查询和数据的排序 ——01
下一篇:oracle学习 第二章 限制性查询和数据的排序 ——03
- oracle学习 第二章 限制性查询和数据的排序 ——02
- oracle学习 第二章 限制性查询和数据的排序 ——01
- oracle学习 第二章 限制性查询和数据的排序 ——03
- oracle入门之第二章【限制性查询和数据的排序】
- Oracle限制性查询和数据排序
- Oracle笔记.一.简单查询、限制性查询和数据的排序
- Oracle学习笔记[4]----限定查询,数据的排序
- 限制性定语从句和非限制性定语从句的区别
- Oracle第二、三章 限制数据查询
- oracle基础查询语句和数据排序
- Oracle 11g 学习二:scott表结构、简单查询、限定查询和数据排序
- Oracle编写简单的查询语句,以及限制数据和对数据的排序
- Oracle笔记简单查询、限定查询、数据的排序
- 02 过滤和排序数据 -oracle学习笔记
- Oracle学习----限定和排序数据
- Oracle学习之路——限定查询与排序
- 限制性定语从句和非限制性定语从句的四大区别
- Oracle笔记——限定查询和排序
- js跨域数据传输
- C# Winform工程省市县三级行政区联动1 --XML
- Phantomjs 调试方法
- 神经计算的软件整理
- 【集训队互测 2012】Middle
- oracle学习 第二章 限制性查询和数据的排序 ——02
- 深入了解Handler消息机制(二)
- Hbase之Java API使用
- [BZOJ1004] [HNOI2008] Cards - 群论,Burnside引理,Polya定理
- Toolbar的三个问题:修改左边箭头颜色、怎样修改右边以及子activity中的toolbar添加返回箭头
- java笔记——io流
- 了解数据库
- 关于百度,google map的url api的调用
- ubuntu安装pip+python27+ipython+scrapy+zlib-及遇到的各种问题解决