当前位置:数据库 > Oracle >>

Oracle数据库之SQL---select之二

Oracle数据库之SQL---select之二

  前面谈到了select的一些简单的运用,此次会更进一步的学习select查询。
  包括:where条件限定查询、范围查询、模糊查询、查询结果的排序.
  where条件限定查询
[sql] 
select *from emp where emp.deptno = 10;--查询公寓号为10的所有员工 
select *from emp where job='CLERK';--注意CLERK是大小写敏感的 
 
  我们知道Condition由列名表达式,常量和比较操作符组成,那么都有哪些比较操作符呢?

  常用比较操作符
 
  以上各个比较操作符就不一一尝试了!以后会遇到的。
 范围查询(Between and)
  现实中我们有这种需求,需要查询一个数据段,这就可以使用between and实现了 
[sql] 
--查询工资在4000-8000的员工 
 select *from emp where sal between 4000 and 8000; 
 Tips:这里需要注意的是between 后面要先写低值后写高值,不然语句不会错

  但是不可能查询到结果!
  模糊查询(Like 、Not Like)
  like 模糊查询一般是针对字符匹配操作的。  字符匹配操作可以使用通配符 “%” 和 “_”:
  %:表示任意个字符,包括零个;
  _:表示一个任意字符;
  简单例子: 
[sql] 
select *from emp where ename like '_M%';--查询名字的第二个字符为"M"的员工 
  不过这里需要思考的是:如果我们需要查询的字符串中存在“%”、“-”之类的情况又如何呢?
  解决办法:使用escape
  简单例子: 
[sql] 
insert into emp(Ename,Empno) VALUES('K%iritor',100);--人为的插入一条语句 
select *from emp where ename like 'K/%iritor' escape '/' ; 
 通过escape加上“/”转义字符(转义字符可以自己任意指定),将转义字符后面的字符
  转义为原来的字符,其中转义字符的指定和用户需要查询的字段的值有关。
  至于not like就不做过多演示了!
  结果排序
 ASC:升序排序,默认的。
[sql] 
select *from emp order by sal; 
 DESC:降序排序 
[sql] 
<span style="color:#000000;"> select *from emp order by sal; 
 以上都是针对单列进行排序如何针对多列进行排序呢? 
[sql] 
<pre name="code" class="sql"> --先对工资升序,若工资相同则对名字进行降序 
</pre> select *from emp order by sal asc,ename desc;<br> 
<pre></pre> 
<pre></pre> 
 
  就这样吧,至于上表中的一些比较操作符,日后会用到的!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,