目标:
1、通过限制行来查询
2、给筛选的数据进行排序
3、通过替换变量来增强SQL命令
Agenda
一、限制行
---使用WHERE子句
---WHERE中的“=,<=,BETWEEN,IN,LIKE和NULL”的使用
---逻辑运算“AND,OR,NOT”的使用
二、表达式的优先级
三、学会ORDER BY子句
四、替换变量
五、DEFINE和VERIFY命令
一、限制行
1、WHERE的使用
WHERE ---> 从哪张表查询什么东西,查询条件是什么。
WHERE子句结果是true,false或者unknown,一般放在from子句后面。
示例:
where子句不可以使用别名:
当使用字符串和日期型的话需要用单引号,对于字符串是大小写敏感的,日期格式‘DD-MON-RR’。
示例:
若改变大小写:
若不知道名字里面哪个字母大小写:
或者:
比较运算符
示例:
BETWEEN…AND… ---> 判断是否在哪些值之间。
等效于:
Between…and…应该最终改写成这样。
字符串示例:
字符串默认的是 A ---> Z 这样的顺序。
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”,遇到一次就让输入一次,则用“&&”试试
发现就需要输入一次,所以区别就是,如果需要输入一次就用“&&”,如果需要多次输入就用“&”。
五、DEFINE和VERIFY命令
DEFINE ---> 定义(特别适合用在批处理里面)
示例:
一开始定义了,后面就不需要再输入一遍了。
取消定义:
取消定义后,发现就需要再输入一遍,才可以查询。
VERIFY ---> 验证
示例:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30197839/viewspace-1972204/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30197839/viewspace-1972204/