• 1. 过滤和排序数据
  • 2. 目标通过本章学习,您将可以: 在查询中过滤行。 在查询中对行进行排序。
  • 3. 在查询中过滤行返回在 90好部门工作的所有员工的信息EMPLOYEES…
  • 4. 过滤使用WHERE 子句,将不满足条件的行过滤掉。 WHERE 子句紧随 FROM 子句。SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)];
  • 5. WHERE 子句SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90 ;
  • 6. 字符和日期字符和日期要包含在单引号中。 字符大小写敏感,日期格式敏感。 默认的日期格式是 DD-MON-RR。SELECT last_name, job_id, department_id FROM employees WHERE last_name = 'Whalen';
  • 7. 比较运算操作符 = > >= < <= <>含义 等于 大于 大于、等于 小于 小于、等于 不等于
  • 8. SELECT last_name, salary FROM employees WHERE salary <= 3000;比较运算
  • 9. 其它比较运算操作符 BETWEEN ...AND... IN(set) LIKE IS NULL含义 在两个值之间 (包含边界) 等于值列表中的一个 模糊查询 空值
  • 10. BETWEEN使用 BETWEEN 运算来显示在一个区间内的值。SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500;Lower limitUpper limit
  • 11. SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201);IN使用 IN运算显示列表中的值。
  • 12. LIKE 使用 LIKE 运算选择类似的值 选择条件可以包含字符或数字: % 代表一个或多个字符。 _ 代表一个字符。SELECT first_name FROM employees WHERE first_name LIKE 'S%';
  • 13. ‘%’和‘-’可以同时使用。 可以使用 ESCAPE 标识符 选择‘%’和 ‘_’ 符号。LIKESELECT last_name FROM employees WHERE last_name LIKE '_o%';
  • 14. NULL 使用 NULL 判断空值。SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL;
  • 15. 逻辑运算操作符 AND OR NOT含义 逻辑并 逻辑或 逻辑否
  • 16. ANDAND 要求和的关系为真。SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >=10000 AND job_id LIKE '%MAN%';
  • 17. OROR 要求或关系为真。SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%';
  • 18. SELECT last_name, job_id FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');NOT
  • 19. 优先级Override rules of precedence by using parentheses. 优先级 1 算术运算符 2 连接符 3 比较符 4 IS [NOT] NULL, LIKE, [NOT] IN 5 [NOT] BETWEEN 6 NOT 7 AND 8 OR
  • 20. SELECT last_name, job_id, salary FROM employees WHERE job_id = 'SA_REP' OR (job_id = 'AD_PRES' AND salary > 15000);优先级
  • 21. SELECT last_name, job_id, salary FROM employees WHERE (job_id = 'SA_REP' OR job_id = 'AD_PRES') AND salary > 15000;优先级使用括号控制执行顺序。
  • 22. SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ;ORDER BY子句使用 ORDER BY 子句排序 ASC: 升序 DESC: 降序 ORDER BY 子句在SELECT语句的结尾。…
  • 23. 降序排序SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ;…
  • 24. 按别名排序SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal;…
  • 25. 按照ORDER BY 列表的顺序排序。 可以使用不在SELECT 列表中的列排序。SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC;多个列排序…
  • 26. 总结SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)] [ORDER BY {column, expr, alias} [ASC|DESC]];通过本课,您应该可以完成: 使用WHERE 子句过滤数据 使用比较运算 使用 BETWEEN, IN, LIKE和 NULL运算 使用逻辑运算符 AND, OR和NOT 使用 ORDER BY 子句进行排序。
  • 27. 练习
  • 28. (本页无文本内容)
  • 29. (本页无文本内容)
  • 30. (本页无文本内容)
  • 31. (本页无文本内容)