- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[]第16章 SQL查询
第16章 SQL查询 数据库开发中,SQL查询无处不在。在以前的内容中,已经使用到了许多查询的实例。本章将详细讲述Oracle中的SQL查询。本章的主要内容包括: 基本查询:主要讲述查询语句及各种子句的使用; 子查询:理解和使用子查询; 联合语句:针对多个查询结果集合的运算; 关联语句:表之间的关联关系; 层次化查询:connect by。 16.1 基本查询 Oracle中的数据查询可以非常复杂。复杂的查询是由基本查询构成的,因此,理解基本查询是必需的,本节将着重讲述Oracle中的基本查询。 16.1.1 select语句查询执行步骤 select是查询中的首要关键字。select用于指定查询所获得的结果列。select列表之后,需要紧跟from子句。from子句指定查询的源数据。这里的源数据可以是一个表,也可以是一个临时记录集合,如内嵌视图或者多个子查询的集合操作获得的记录集合。 select employee_name from t_employees; Oracle会遍历表t_employees中的每条记录,并利用select语句获取列employee_name的值。 当from子句中含有多个数据源时,那么这些数据源将实现笛卡尔积——即第一个数据源中的每条记录与第二个数据源中所有记录组合,最终形成为新的数据源。例如,表t_employees中含有10条记录,而表t_salary中含有30条记录,那么查询语句select * from t_employees, t_salary的数据源将有10×30=330条记录。 在获得了from子句的最终数据源之后,select语句再捕获预期列。 16.1.2 where子句 where子句用于过滤from子句所获得的数据源。 select e.employee_id, e.employee_name, s.salary from t_employees e, t_salary s where e.employee_id = s.employee_id from t_employees e, t_salary s首先指定了数据源为两个表的笛卡尔积,并为两个表定义别名,因为两个表中都有列employee_id,所以,必须指定表别名,以区分两个表中的同名列;where e.employee_id = s.employee_id用于过滤数据源中的数据,该条件为e.employee_id等于s.employee_id,Oracle会搜索16-1所示的查询结果中的每条记录,并依据查询条件获得记录集;select e.employee_id, e.employee_name, s.salary捕获该记录集中的列值。 注意与说明:当from子句中含有多个数据表(或其他数据源)时,为各数据表指定别名是一个良好的习惯,即使select语句所要捕获的列不会引起列名的混淆。 16.1.3 利用distinct获得唯一性记录 distinct关键字可用于获得唯一性记录,被distinct限制的既可以是单个列,也可以是多个列的组合。 select distinct month from t_salary; 可以获得员工的工资的唯一性记录,以表现员工的工资变化,代码如下: select distinct e.employee_name, s.salary from t_employees e, t_salary s where e.employee_id = s.employee_id select distinct e.employee_name, s.salary中含有两个列——e.employee_name和s.salary,那么select语句将捕获唯一的employee_name和salary的组合。 16.1.4 order by子句 order by子句可以将查询的结果,按照一定顺序进行排序。例如,在获得了所有员工的工资信息后,可以利用order by子句将查询结果排序。 select distinct e.employee_name, s.salary from t_employees e, t_salary s where e.employee_id = s.employee_id order by s.salary; order by s.salary子句将select语句获得的最终结果集合进行排序,排序字段为salary;order by提供的排序规则有两种——升序(asc)和降序排列(desc),默认情况下为升序排列。 注意与说明:当排序列的数据类型是字符串时,将按照字符串在字母表中的顺序进行排列。 16
您可能关注的文档
最近下载
- 2025年北京市第一中西医结合医院医护人员招聘备考试题及答案解析.docx VIP
- 高校就业工作先进个人事迹材料.docx VIP
- 高校招生就业前景分析.pptx VIP
- 学校的招生工作总结.pptx VIP
- 陌陌聊天记录删除恢复教程:教你快速找回误删的陌陌记录.docx VIP
- 农药经营许可证56学时天天学农考题答案.pdf VIP
- 小学科学骨干教师培训讲稿PPT.pptx VIP
- 《GB/T 33174-2022资产管理 管理体系 GB/T 33173应用指南》.pdf
- 新解读《GB_T 33174 - 2022资产管理 管理体系 GB_T 33173应用指南》.docx VIP
- 2025年北京市第一中西医结合医院医护人员招聘参考题库附答案解析.docx
文档评论(0)