ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle 过滤和排序数据

2021-05-26 10:04:37  阅读:157  来源: 互联网

标签:last name employees 过滤 Oracle 排序 WHERE id SELECT


在查询中过滤行

  • 返回在 90号部门工作的所有员工的信息
SELECT employee_id, last_name, job_id, department_id
FROM   employees
WHERE  department_id = 90 ;
SELECT	*|{[DISTINCT] column|expression [alias],...}
FROM	table
[WHERE	condition(s)];
  • WHERE 子句紧随 FROM 子句

字符和日期

  • 字符和日期要包含在单引号中

  • 字符大小写敏感,日期格式敏感

  • 默认的日期格式是 DD-MON月-RR。

SELECT last_name, job_id, department_id
FROM   employees
WHERE  last_name = 'Whalen';
SELECT last_name, hire_date, department_id
FROM   employees
WHERE  hire_date = '7-6月-1994'

比较运算

=操作符** 含义
= 等于 (不是 ==)
> 大于
>= 大于、等于
< 小于
<= 小于、等于
<> 不等于 (也可以是*!=)

赋值使用 := 符号

SELECT last_name, salary
FROM   employees
WHERE  salary <= 3000;

其它比较运算

操作符 含义
BETWEEN ...AND... 在两个值之间 (包含边界)
IN(set) 等于值列表中的一个
LIKE 模糊查询
IS NULL 空值

BETWEEN

使用 BETWEEN 运算来显示在一个区间内的值

SELECT last_name, salary
FROM   employees
WHERE  salary BETWEEN 2500 AND 3500;

IN

使用 IN运算显示列表中的值

SELECT employee_id, last_name, salary, manager_id
FROM   employees
WHERE  manager_id IN (100, 101, 201);

LIKE

  • 使用 LIKE 运算选择类似的值

  • 选择条件可以包含字符或数字:

% 代表零个或多个字符(任意个字符)。

_ 代表一个字符

SELECT	first_name
FROM 	employees
WHERE	first_name LIKE 'S%';
  • ‘%’和‘-’可以同时使用。
SELECT last_name
FROM   employees
WHERE  last_name LIKE '_o%';
  • 可以使用 ESCAPE 标识符 选择‘%’和_’ 符号。

  • 回避特殊符号的:使用转义符。例如:将[%]转为[%]、[_]转为[_],然后再加上[ESCAPE ‘\’] 即可。

SELECT job_id
FROM   jobs
WHERE  job_id LIKE ‘IT\_%‘ escape ‘\‘;

NULL

  • 使用 IS (NOT) NULL 判断空值。
SELECT last_name, manager_id
FROM   employees
WHERE  manager_id IS NULL;

逻辑运算

操作符 含义
**AND ** 逻辑并
OR 逻辑或
NOT 逻辑否

AND

AND 要求并的关系为真。

SELECT employee_id, last_name, job_id, salary
FROM   employees
WHERE  salary >=10000
AND    job_id LIKE '%MAN%';

OR

OR 要求或关系为真

SELECT employee_id, last_name, job_id, salary
FROM   employees
WHERE  salary >= 10000
OR     job_id LIKE '%MAN%';

NOT

SELECT last_name, job_id
FROM   employees
WHERE  job_id 
       NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');

优先级

优先级
1 算术运算符
2 连接符
3 比较符
4 IS [NOT] NULL****, LIKE****, [NOT] IN
5 [NOT] BETWEEN
6 NOT
7 AND
8 OR

可以使用括号改变优先级顺序

ORDER BY子句

  • 使用 ORDER BY 子句排序

    • ASC(ascend): 升序
    • DESC(descend): 降序
  • ORDER BY 子句在SELECT语句的结尾

SELECT   last_name, job_id, department_id, hire_date
FROM     employees
ORDER BY hire_date ;

降序排序

SELECT   last_name, job_id, department_id, hire_date
FROM     employees
ORDER BY hire_date DESC ;

按别名排序

SELECT employee_id, last_name, salary*12 annsal
FROM   employees
ORDER BY annsal;

多个列排序

  • 按照ORDER BY 列表的顺序排序。
SELECT last_name, department_id, salary
FROM   employees
ORDER BY department_id, salary DESC;
  • 可以使用不在SELECT 列表中的列排序。

总 结

使用WHERE子句过滤数据

使用比较运算

使用 BETWEEN AND, IN, LIKENULL运算

使用逻辑运算符 AND, ORNOT

使用 ORDER BY 子句进行排序。

标签:last,name,employees,过滤,Oracle,排序,WHERE,id,SELECT
来源: https://www.cnblogs.com/cherish-code/p/14812039.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有