一、消除重复行--DISTINCT
在oracle查询结果中可能会出现若干行结果相同的的情况,此时,可用 DISTINCT 关键字来消除重复行。具体实例如下:
二、NULL操作
如果某条记录中有缺少的数据值,就是空值-- NULL 值。空值不等于0或者空格,空值是指未赋值、未知或不可用的值。任何数据类型的列都可以包括空值,除非该列被定义为非空或主键。在查询条件中,NULL值用 IS NULL 作为条件,非NULL 用 IS NOT NULL 作条件。
1.空值数据演示,COMM列
2.查询列中有空值的数据
三、IN 操作符
在where子句中,可以用 IN 操作符来查询某列在指定的值的数据,相当于 OR 语句。如查询 job 列中值是 'SALESMAN', 'PRESIDENT', 'ANALYST'的数据:
同理,也存在NOT IN 操作符,其意思与之相反,如:
四、BETWEEN…AND… 操作
在where 子句中,可以使用between...and..操作符来查询列值包含在指定区间内的行,范围包括边界。如:
五、模糊查询 -- LIKE
模糊查询使用 like 关键字通过字符匹配检索出所需要的行。字符匹配操作可以使用通配符
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
---|---|
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或者 [!charlist] | 不在字符列中的任何单一字符 |
1.使用通配符--%
1.1 查询表中工作以SA开头的人员信息:
select * from emp where job like 'SA%';
1.2 查询表中以工作名包含NA的信息:
select * from emp where job like '%NA%';
1.3 显示员工名称以J开头以S结尾的信息
select * from emp where ENAME like 'J%S';
2.使用通配符_ ,其只代表一个字符
2.1 在表中查询名字第一个字符之后是"cott"的信息
select * from emp where ENAME like '_COTT';
2.2 在表中查询名字以"M"开头,然后是一个任意字符,之后是"R",然后是任意字符,最后是"IN"
select * from emp where ENAME like 'M_R_IN';
3.使用[charlist] 通配符
3.1 查找表中名字以 S A W 开头的人员信息