ITPub博客

首页 > 数据库 > Oracle > 限制和排序数据

限制和排序数据

原创 Oracle 作者:x辛诺x 时间:2016-01-05 23:04:53 0 删除 编辑

目标:

         1、通过限制行来查询

         2、给筛选的数据进行排序

         3、通过替换变量来增强SQL命令

Agenda

         一、限制行

                  ---使用WHERE子句

                  ---WHERE中的“=<=BETWEENINLIKENULL”的使用

                  ---逻辑运算“ANDORNOT”的使用

         二、表达式的优先级

         三、学会ORDER BY子句

         四、替换变量

         五、DEFINEVERIFY命令

 

一、限制行

        1WHERE的使用

WHERE ---> 从哪张表查询什么东西,查询条件是什么。

WHERE子句结果是truefalse或者unknown,一般放在from子句后面。

示例:

where子句不可以使用别名:


当使用字符串和日期型的话需要用单引号,对于字符串是大小写敏感的,日期格式‘DD-MON-RR’

示例:


若改变大小写:


若不知道名字里面哪个字母大小写:


或者:



比较运算符


示例:


BETWEEN…AND…  --->  判断是否在哪些值之间。


等效于:


Between…and…应该最终改写成这样。

字符串示例:


字符串默认的是 A ---> 这样的顺序。

 

IN ---> 后面跟一个列表,然后判断某一个值是否在这个列表里面。

示例:

等效于:


在数据库中应该这样转化的。

 

字符串示例:比如说移民的有哪些国家的。




找出本公司02年被雇佣到本公司的人:


等效于:


当需要查询的有“_%”,即需要转义

示例:


可以需要其他的符号来转义,只要后面用ESCAPE就可以了,最常见的是就是“\

示例:


即用“|”一样是可以的。

 

IS NULL ---> 判断某一列是不是空值。

示例:



或者是:

即用来测试一下某一列是不是空。

 

 

 

逻辑运算符


AND ---> 查询两个条件都是true

示例:


OR ---> 即需要满足一个条件

示例:


NOT ---> 取反

示例:比如说想查询除了02年加入本公司的





二、表达式的优先级



同样,想让哪个运算等级高,就给它加括号。

示例:


即找两类人,一类人的头衔是“SA_REP”,另一类人头衔是“AD_PRES”并且薪资要高于15000

 



即找一类人,这类人的头衔要么是“SA_REP”要么是“AD_PRES”,并且薪资是高于15000




三、学会ORDER BY子句

ORDER BY ---> 对返回的结果进行排序

         ASC ---> 升序

         DESC ---> 降序

SELECT语句当中ORDER BY子句是放到最后的,若没有指明,则按升序排列。

示例:根据加入公司从早到晚的排列


如果要降序的话,也就是从晚到早的话:


ORDER BY 可以使用别名

示例:



ORDER BY
可以指定序号

示例:



ORDER BY可以指定序号
示例:


ORDER BY后面跟的数字“3”指的是“department_id

 

ORDER BY 可以按照多个列进行排序

示例:

即在“department_id”相同的时候,“salary”是按照降序排列,而“department_id”整体上是按照升序排列的。

 

如果有NULL值的情况下,在升序的情况下,NULL值放在最后,在降序的情况下,NULL值放在最开始。(可以改变)

示例:







四、替换变量

         我们在日常生活中,有一个很普遍的需求,执行的查询是一样的,但是查询的值可能不同,比如今天我想查询工资大于15000的人,明天我又想查询
工资大于16000的人,那这样的话,每次去写SQL语句,是不是就很麻烦了,所以就引入变量,下一次查询的时候就替换变量就可以了。

         替换变量是客户端的一个功能,不是数据库的功能。

 

         1、变量名之前加上“&”或者“&&”。

         2、使用的地方有:(几乎可以在SELECT语句所有地方)

                                            ---WHERE条件

                                            ---ORDER BY 子句

                                            ---列表达式

                                            ---表名字

                                            ---全部的SELECT命令

示例:


如果需要替换字符串和日期的话,则需要用单引号引起来。

示例:


用在其它地方:


&”和“&&”的区别:


发现需要即便是相同的“&column_name”,遇到一次就让输入一次,则用“&&”试试


发现就需要输入一次,所以区别就是,如果需要输入一次就用“&&”,如果需要多次输入就用“&”。

 

五、DEFINEVERIFY命令

DEFINE ---> 定义(特别适合用在批处理里面)

示例:


一开始定义了,后面就不需要再输入一遍了。

取消定义:


取消定义后,发现就需要再输入一遍,才可以查询。

 

VERIFY ---> 验证

示例:


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30197839/viewspace-1972204/,如需转载,请注明出处,否则将追究法律责任。

上一篇: SELECT语句
下一篇: 单行函数
请登录后发表评论 登录
全部评论

注册时间:2015-04-08

  • 博文量
    21
  • 访问量
    10065