首页 第3章 限制数据和对数据排序

第3章 限制数据和对数据排序

举报
开通vip

第3章 限制数据和对数据排序 © 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice 第三章 限制数据和对数据排序 本章要点 • WHERE子句的使用 • ORDER BY子句的使用 限制数据和对数据排序 • WHERE子句的使用 • ORDER BY子句的使用 WHERE子句的使用 返回在 90号部门工作 的所有员工的信息 EMPLOYE...

第3章 限制数据和对数据排序
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice 第三章 限制数据和对数据排序 本章要点 • WHERE子句的使用 • ORDER BY子句的使用 限制数据和对数据排序 • WHERE子句的使用 • ORDER BY子句的使用 WHERE子句的使用 返回在 90号部门工作 的所有员工的信息 EMPLOYEES … EMPLOYEE_ID LAST_NAME JOB_ID DEPARTMENT_ID 100 King AD_PRES 90 101 Kochhar AD_VP 90 102 De Haan AD_VP 90 103 Hunold IT_PROG 60 104 Emst IT_PROG 60 107 Lorentz IT_PROG 60 124 Mourgos ST_MAN 50 EMPLOYEE_ID LAST_NAME JOB_ID DEPARTMENT_ID 100 King AD_PRES 90 101 Kochhar AD_VP 90 102 De Haan AD_VP 90 WHERE子句的使用 • 使用WHERE 子句,将不满足条件的行过滤掉。 • WHERE 子句紧随 FROM 子句。 SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)]; WHERE子句的使用 EMPLOYEE_ID LAST_NAME JOB_ID DEPARTMENT_ID 100 King AD_PRES 90 101 Kochhar AD_VP 90 102 De Haan AD_VP 90 SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90 ; WHERE子句的使用 字符和日期 • 字符和日期要包含在单引号中。 • 字符大小写敏感,日期格式敏感。 • 默认的日期格式是 DD-MON-RR。 SELECT employee_id, last_name, job_id, department_id FROM employees WHERE last_name = ‘Whalen’; WHERE子句的使用 比较运算符 操作符 含义 = 等于 > 大于 >= 大于等于 < 下于 <= 小于等于 <> 不等于 WHERE子句的使用 比较运算符 LAST_NAME SALARY Matos 2600 Vargas 2500 SELECT last_name, salary FROM employees WHERE salary <= 3000 ; WHERE子句的使用 其他比较运算符 操作符 含义 BETWEEN …AND … 在两个值之间(包含边界) IN (set) 等于值列表中的一个 LIKE 模糊查询 IS NULL 空值 WHERE子句的使用 其他比较运算符(BETWEEN) • 使用BETWEEN运算来显示在一个区间内的值 LAST_NAME SALARY Rajs 3500 Davies 3100 Matos 2600 Vargas 2500 SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500 ; Lower limit Upper limit WHERE子句的使用 其他比较运算符(IN) • 使用IN运算来显示列表中的值 EMPLOYEE_ID LAST_NAME SALARY MANAGER_ID 202 Fay 6000 201 200 Whalen 4400 101 205 Higgins 12000 101 101 Kochhar 17000 100 102 De Haan 17000 100 124 Mourgos 5800 100 149 Zlotkey 10500 100 201 Hartstein 13000 100 SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201); WHERE子句的使用 其他比较运算符(LIKE) • 使用LIKE运算符完成模糊查询功能 • 使用通配符来代替未知的信息。通常的通配符有%和_ − %代表一个或多个字符 − _代表一个字符 SELECT employee_id, last_name, salary FROM employees WHERE last_name LIKE 'S%'; EMPLOYEE_ID LAST_NAME SALARY 111 Sciarra 7700 WHERE子句的使用 其他比较运算符(LIKE) • '%'和'_'可以同时使用 • 可以使用 ESCAPE 标识符 选择‘%’和 ‘_’ 符号。 SELECT employee_id, last_name, salary FROM employees WHERE last_name LIKE '_b%'; EMPLOYEE_ID LAST_NAME SALARY 174 Abel 11000 WHERE子句的使用 其他比较运算符(LIKE) • 使用ESCAPE 标识符来查找带特殊符号的字符号。 • 查询JOB_ID以“FI_”开头的员工信息 SELECT employee_id, last_name, salary FROM employees WHERE job_id LIKE 'FI\_%' ESCAPE '\'; EMPLOYEE_ID LAST_NAME JOB_ID SALARY 109 Faviet FI_ACCOUNT 9000 110 Chen FI_ACCOUNT 8200 111 Sciarra FI_ACCOUNT 7700 112 Urman FI_ACCOUNT 7800 113 Popp FI_ACCOUNT 6900 108 Greenberg FI_MGR 12000 WHERE子句的使用 其他比较运算符(NULL) • 查询包含空值的记录 SELECT employee_id, last_name, salary, department_id FROM employees WHERE department_id IS NULL; EMPLOYEE_ID LAST_NAME SALARY DEPARTMENT_ID 178 Grant 7000 WHERE子句的使用 逻辑运算 操作符 含义 AND 逻辑并 OR 逻辑或 NOT 逻辑否 WHERE子句的使用 逻辑运算 • 查询月薪在4200元到6000元公司的员工 EMPLOYEE_ID LAST_NAME SALARY 104 Ernst 6000 107 Lorentz 4200 124 Mourgos 5800 200 Whalen 4400 202 Fay 6000 SELECT employee_id, last_name, salary FROM employees WHERE salary>=4200 AND salary<=6000; WHERE子句的使用 逻辑运算 • 月薪大于10000元,并且在60和90号部门工作的员工。 • 月薪大于10000元,或者在60和90号部门工作的员工? LAST_NAME SALARY DEPARTMENT_ID King 24000 90 Kochhar 17000 90 De Haan 17000 90 SELECT last_name, salary, department_id FROM employees WHERE salary>10000 AND department_id in (60,90); WHERE子句的使用 逻辑运算 • 查找职位不是IT_PROG,ST_CLERK, FI_ACCOUNT的员工信息 SELECT last_name, job_id, salary FROM employees WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'FI_ACCOUNT'); WHERE子句的使用 逻辑运算 • NOT运算符还可以和BETWEEN…AND、LIKE、IS NULL一起使 用。 − ...WHERE department_id NOT IN (60, 90); − ... WHERE salary NOT BETWEEN 10000 AND 25000; − ... WHERE last_name NOT LIKE 'D%' − ... WHERE manager_id IS NOT NULL WHERE子句的使用 运算符的优先级 • 括号的‘()’优先于其他操作符 WHERE子句的使用 运算符的优先级 • 查找职位是FI_ACCOUNT,或者月薪超过16000元的职位是 AD_VP的员工。 LAST_NAME JOB_ID SALARY DEPARTMENT_ID Kochhar AD_VP 17000 90 De Haan AD_VP 17000 90 Faviet FI_ACCOUNT 9000 100 Chen FI_ACCOUNT 8200 100 Sciarra FI_ACCOUNT 7700 100 Urman FI_ACCOUNT 7800 100 Popp FI_ACCOUNT 6900 100 SELECT last_name, job_id, salary, department_id FROM employees WHERE job_id = 'FI_ACCOUNT' OR job_id = 'AD_VP' AND salary > 16000; WHERE子句的使用 运算符的优先级 • 查找月薪超过16000元,并且职位是FI_ACCOUNT或AD_VP的 员工。 LAST_NAME JOB_ID SALARY DEPARTMENT_ID Kochhar AD_VP 17000 90 De Haan AD_VP 17000 90 SELECT last_name, job_id, salary, department_id FROM employees WHERE (job_id = 'FI_ACCOUNT' OR job_id = 'AD_VP') AND salary > 16000; 限制数据和对数据排序 • WHERE子句的使用 • ORDER BY子句的使用 ORDER BY子句的使用 • ORDER BY子句后的语法结构如下 • 查看公司员工信息,按照员工部门降序排列。 SELECT *|{[DISTINCT] 列名|表达式 [别名][,...]} FROM 表名 [WHERE 条件] [ORDER BY {列名|表达式|别名} [ASC|DESC],…]; SELECT last_name, job_id, salary, department_id FROM employees ORDER BY department_id DESC; ORDER BY子句的使用 • 不同数据类型排序规则(以升序为例) −数字升序排列小值在前,大值在后。即按照数字大小顺 序由小到大排列。 −日期升序排列相对较早的日期在前,较晚的日期在后。 例如:’01-SEP-06’在’01-SEP-07’前。 −字符升序排列按照字母由小到大的顺序排列。即由A-Z排 列;中文升序按照字典顺序排列。 −空值在升序排列中排在最后,在降序排列中排在最开始。 ORDER BY子句的使用 • 使用列别名排序,多列排序。 查看员工信息,结果按照年薪升序排列 查看公司员工信息,按照job_id升序排列,月薪按照降序排 列。 SELECT last_name, job_id, salary*12 annual, department_id FROM employees ORDER BY annual; SELECT last_name, job_id, salary, department_id FROM employees ORDER BY job_id, salary desc; ORDER BY子句的使用 • ORDER BY特殊使用 − ORDER BY子句可以出现在SELECT子句中没有出现过的列。 − ORDER BY子句后的列名,可以用数字来代替。这个数字是SELECT语 句后列的顺序号。 查看员工信息,结果按照月薪由高到低排列,而具体的工资 数不显示。 SELECT last_name, job_id, hire_date FROM employees ORDER BY salary; ORDER BY子句的使用 查看员工信息,结果按照按照job_id升序排列,月薪按照降 序排列。 SELECT last_name, job_id, salary, department_id FROM employees ORDER BY 2, 3 desc; 本章小结 • 选择表中的部分行 • 比较运算符的使用 • 特殊比较运算符的使用 • 逻辑运算符的使用 • ORDER BY的使用 练习 1.查询last_name是Chen的员工的信息。 2.查询参加工作时间在1997-7-9之后,并且不从事IT_PROG工 作的员工的信息。 3.查询员工last_name的第三个字母是a的员工的信息。 4.查询除了10、20、110号部门以外的员工的信息。 5.查询部门号为50号员工的信息,先按工资降序排序,再按 姓名升序排序。 6.查询没有上级管理的员工(经理号为空)的信息。 7.查询员工表中工资大于等于4500并且部门为50或者60的员 工的姓名(last_name)、工资、部门号。 © 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Thanks!
本文档为【第3章 限制数据和对数据排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_542206
暂无简介~
格式:pdf
大小:187KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2013-07-20
浏览量:13