oracle数据库ppt+中科院培训专用Les02_cn

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章约束和排序数据Copyright©OracleCorporation,2001.Allrightsreserved.约束和排序数据进度表:时间主题45minutes讲演30minutes练习75minutes总共中国科学院西安网络中心©2005OracleSQL入门2-1第二章约束和排序数据2-2Copyright©OracleCorporation,2001.Allrightsreserved.目标完成本课后,您应当能够执行下列操作:•用一个查询限制返回的行•用一个查询排序返回的行课程目标从数据库取回数据的时候,你可能需要限制所显示的数据行,或者将显示的结果行排序。本课介绍用来完成这些工作的SQL语句。中国科学院西安网络中心©2005OracleSQL入门2-2第二章约束和排序数据2-3Copyright©OracleCorporation,2001.Allrightsreserved.用选择限制行“返回所有在部门90的雇员”EMPLOYEES…用选择限制行在幻灯片的例子中,假定你想要显示部门90中所有的雇员。只返回DEPARTMENT_ID列值为90的行,这种限制方法基于SQL的WHERE子句。中国科学院西安网络中心©2005OracleSQL入门2-3第二章约束和排序数据2-4Copyright©OracleCorporation,2001.Allrightsreserved.限制选择的行•用WHERE子句限制返回的行•WHERE子句跟着FROM子句SELECT*|{[DISTINCT]column|expression[alias],...}FROMtable[WHEREcondition(s)];限制选择的行你能够用WHERE子句限制从查询返回的行。一个WHERE子句包含一个必须满足的条件,WHERE子句紧跟着FROM子句。如果条件是true,返回满足条件的行。在语法中:WHERE限制查询满足条件的行condition由列名、表达式、常数和比较操作组成WHERE子句能够比较列值、文字值、算术表达式或者函数,WHERE子句由三个元素组成:列名比较条件列名、常量或值列表中国科学院西安网络中心©2005OracleSQL入门2-4第二章约束和排序数据2-5Copyright©OracleCorporation,2001.Allrightsreserved.使用WHERE子句SELECTemployee_id,last_name,job_id,department_idFROMemployeesWHEREdepartment_id=90;使用WHERE子句在例子中,SELECT语句取回所有雇员的name,jobID和department号,这些雇员的department_id是90。中国科学院西安网络中心©2005OracleSQL入门2-5第二章约束和排序数据2-6Copyright©OracleCorporation,2001.Allrightsreserved.字符串和日期•字符串和日期的值放在单引号中•字符值区分大小写,日期值是格式敏感的•日期的默认格式是DD-MON-RR.SELECTlast_name,job_id,department_idFROMemployeesWHERElast_name='Whalen';字符串和日期在WHERE子句中字符串和日期必须包含在单引号(‘’)中。但是,数字常数不应该包含在单引号中。所有的字符搜索是大小写敏感的。在下面的例子中,没有行返回,因为EMPLOYEES表存储的所有名字都是大小写混合的:SELECTlast_name,job_id,department_idFROMemployeesWHERElast_name='WHALEN';Oracle数据库以内部数字格式存储日期,表示为:世纪、年、月、日、小时、分和秒。默认的日期显示是DD-MON-RR。注:改变默认的日期格式的方法在后面的课程中介绍。教师注释一些学生可能会问,怎样覆盖大小写敏感,在后面的课程中,我们将介绍,用单行函数,例如,UPPER和LOWER来覆盖大小写敏感。中国科学院西安网络中心©2005OracleSQL入门2-6第二章约束和排序数据2-7Copyright©OracleCorporation,2001.Allrightsreserved.比较条件运算===含义等于大于大于等于小于小于等于不等于比较条件比较条件被用于一个表达式与一个值或与另一个表达式的比较。他们以下面的格式被用于WHERE子句中:语法...WHEREexproperatorvalue举例...WHEREhire_date='01-JAN-95'...WHEREsalary=6000...WHERElast_name='Smith'别名不能用在WHERE子句中。注:符号!=和^=也能够表示不等于条件。中国科学院西安网络中心©2005OracleSQL入门2-7第二章约束和排序数据2-8Copyright©OracleCorporation,2001.Allrightsreserved.SELECTlast_name,salaryFROMemployeesWHEREsalary=3000;使用比较条件使用比较条件在例子中,SELECT从EMPLOYEES表语句取回lastname和salary,在这里这些雇员的薪水小于等于3000。注意,有一个直接的值3000提供给WHERE子句。该直接值3000与EMPLOYEES表中的SALARY列的薪水值进行比较。中国科学院西安网络中心©2005OracleSQL入门2-8第二章约束和排序数据2-9Copyright©OracleCorporation,2001.Allrightsreserved.其它比较条件操作BETWEEN...AND...IN(set)LIKEISNULL含义在两个值之间(包含)匹配一个任意值列表匹配一个字符模板是一个空值中国科学院西安网络中心©2005OracleSQL入门2-9第二章约束和排序数据2-10Copyright©OracleCorporation,2001.Allrightsreserved.使用BETWEEN条件使用BETWEEN条件显示上下限之间的行SELECTlast_name,salaryFROMemployeesWHEREsalaryBETWEEN2500AND3500;下限上限BETWEEN条件你可以用BETWEEN范围条件显示基于一个值范围的行。你指定的范围包含一个下限和一个上限。幻灯片中的SELECT语句从EMPLOYEES表中返回薪水在$2,500和$3,500之间的那些雇员。BETWEEN条件包括指定的上下限值,必须先指定下限。教师注释强调在例子中也包括用BETWEEN运算符指定的值。解释BETWEEN…AND…实际上是由Oracle服务器转变为一对AND条件:(a=下限)AND(a=上限),所以使用BETWEEN…AND…并没有性能的提高,只是逻辑上简单。演示:2_betw.sql目的:举例说明BETWEEN运算符的使用。中国科学院西安网络中心©2005OracleSQL入门2-10第二章约束和排序数据2-11Copyright©OracleCorporation,2001.Allrightsreserved.SELECTemployee_id,last_name,salary,manager_idFROMemployeesWHEREmanager_idIN(100,101,201);使用IN条件使用IN成员条件测试在列表中的值IN条件用IN条件在指定的一组值中进行测试。IN条件也就是成员条件。在幻灯片的例子中显示所有经理号为100、101或201的雇员的employeenumbers,lastnames,salaries和经理的employeenumbers。在IN条件中可以使用任何数据类型。下面的例子从EMPLOYEES表返回雇员信息行,这些雇员的名字包括在WHERE子句的名字列表中:SELECTemployee_id,manager_id,department_idFROMemployeesWHERElast_nameIN('Hartstein','Vargas');如果IN条件中的成员是字符或日期,它们必须放在单引号(’’)中。教师注释解释IN(...)实际上是由Oracle服务器转变为一组OR条件:a=value1ORa=value2ORa=value3,所以使用IN(...)并没有得到性能的提高,只是逻辑上简单。演示:2_in.sql目的:举例说明IN操作符的使用。中国科学院西安网络中心©2005OracleSQL入门2-11第二章约束和排序数据2-12Copyright©OracleCorporation,2001.Allrightsreserved.使用LIKE条件•使用LIKE条件执行有效搜索串值的通配符搜索•搜索条件既可以包含文字也可以包含数字:–%表示零个或多个字符–_表示一个字符SELECTfirst_nameFROMemployeesWHEREfirst_nameLIKE'S%';LIKE条件你也许不总能知道要搜索的确切的值,你能够选择那些用LIKE条件匹配一个字符模板的行。字符模板匹配运算涉及通配符查询。有两个符号%和_可以用来构造搜索串。符号说明%表示任意顺序的0个或多个字符_表示任意单个字符幻灯片中的SELECT语句返回EMPLOYEES表中名字以一个大写字母S开始的雇员的名字,那些以小写字母s开始的名字不会返回。LIKE条件能够被用于某些BETWEEN比较。下面的例子显示所有在1995年1月和1995年12月之间进入本公司的雇员的名字和受雇日期:SELECTlast_name,hire_dateFROMemployeesWHEREhire_dateLIKE'%95';中国科学院西安网络中心©2005OracleSQL入门2-12第二章约束和排序数据2-13Copyright©OracleCorporation,2001.Allrightsreserved.•你可以组合模式匹配字符串•你可以用ESCAPE标识符搜索实际的%和_符号使用LIKE条件SELECTlast_nameFROMemployeesWHERElast_nameLIKE'_o%';通配符字符的组合%和_符号能够被用来与文字字符组合。幻灯片中的例子显示所有名字中有一个o而且位于第二个位置的雇员的名字。ESCAPE选项当你需要有一个确切匹配实际的字符%和_,使用ESCAPE选项,该选项指定换码符是什么。如果你想要搜索包含‘SA_’的字符串,可以用下面的SQL语句:SELECTemployee_id,last_name,job_idFROMemployeesWHEREjob_idLIKE'%SA\_%'ESCAPE'\';ESCAPE选项指定反斜线(\)为换码符,在模板中,换码符字符在下划线(_)的前面,原因是Oracle服务器逐字地解释字符串。中国科学院西安网络中心©2005OracleSQL入门2-13第二章约束和排序数据2-14Copyright©OracleCorporation,2001.Allrightsreserved.使用NULL条件用ISNULL操作来测试空值SELECTlast_name,manager_idFROMemployeesWHEREmanager_idISNULL;NULL条件NULL条件,包括ISNULL条件和ISNOTNULL条件。ISNULL条件用于空值测试。空值的意思是难以获得的、未指定的、未知的或者不适用的。因此,你不能用=,因为null不能等于或不等于任何值。幻灯片中的例子取回所有没有主管经理的雇员的名字和他的主管经理。例如,显示所有没有佣金的雇员的lastname,jobID和commission,用下面的SQL语句:SELECTlast_name,job_i

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功