- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章 SQL语言基础 本章内容 SQL语句分类 数据查询(SELECT) 数据操纵(INSERT、UPDATE、DELETE) 事务控制 SQL函数 本章要求 掌握数据查询的各种应用 掌握数据操纵的各种应用 掌握事务处理 了解SQL函数应用 14.1SQL语言概述 SQL语言介绍 SQL语言的分类 SQL语言的特点 14.2数据查询 数据查询基础 基本查询 分组查询 连接查询 子查询 合并查询 查询排序 升序、降序排序 多列排序 表达式排序 使用别名排序 使用列位置编号排序 查询统计 注意 除了COUNT(*)函数外,其他的统计函数都不考虑返回值或表达式为NULL的情况。 聚集函数只能出现在目标列表达式、ORDER BY子句、HAVING子句中,不能出现在WHERE子句和GROUP BY子句中。 默认对所有的返回行进行统计,包括重复的行;如果要统计不重复的行信息,则可以使用DISTINCT选项。 如果对查询结果进行了分组,则聚集函数的作用范围为各个组,否则聚集函数作用于整个查询结果。 14.2.3分组查询 基本语法 单列分组查询 多列分组查询 使用HAVING子句限制返回组 使用ROLLUP 和CUBE 合并分组查询 GROUP BY子句用于指定分组列或分组表达式。 集合函数用于对分组进行统计。如果未对查询分组,则集合函数将作用于整个查询结果;如果对查询结果分组,则集合函数将作用于每一个组,即每一个分组都有一个集合函数。 HAVING子句用于限制分组的返回结果。 WHERE子句是对表中的记录进行过滤,而HAVING子句是对分组后形成的组进行过滤。 在分组查询中,SELECT子句后面的所有目标列或目标表达式要么是分组列,要么是分组表达式,要么是集合函数。 单列分组查询 将查询出来的记录按照某一个指定的列进行分组 SELECT deptno,count(*),avg(sal) FROM emp GROUP BY deptno; 多列分组查询 在GROUP BY子句中指定了两个或多个分组列 SELECT deptno,job,count(*),avg(sal) FROM emp GROUP BY deptno,job; 使用HAVING子句限制返回组 可以使用HAVING子句,只有满足条件的组才会返回。 SELECT deptno,count(*),avg(sal) FROM emp GROUP BY deptno HAVING avg(sal)1500; 使用ROLLUP 和CUBE 如果在GROUP BY子句中使用ROLLUP选项,则还可以生成横向统计和不分组统计; 如果在GROUP BY子句中使用CUBE选项,则还可以生成横向统计、纵向统计和不分组统计。 SELECT deptno,job,avg(sal) FROM emp GROUP BY ROLLUP(deptno,job); SELECT deptno,job,avg(sal) FROM emp GROUP BY CUBE(deptno,job); 合并分组查询 使用GROUPING SETS可以将几个单独的分组查询合并成一个分组查询 SELECT deptno,job,avg(sal) FROM emp GROUP BY GROUPING SETS(deptno,job); 14.2.4连接查询 交叉连接 内连接 等值连接 不等值连接 自身连接 外连接 左外连接 右外连接 全外连接 外连接 左外连接 右外连接 全外连接 14.2.5子查询 概述 单行单列子查询 多行单列子查询 单行多列子查询 多行多列子查询 相关子查询 在FROM子句中使用子查询 子查询概述 子查询概念 子查询是指嵌套在其他SQL语句中的SELECT语句,也称为嵌套查询 。 子查询作用 在INSERT或CREATE TABLE语句中使用子查询,可以将子查询的结果写入到目标表中; 在UPDATE语句中使用子查询可以修改一个或多个记录的数据; 在DELETE语句中使用子查询可以删除一个或多个记录; 在WHERE和HAVING子句中使用子查询可以返回的一个或多个值。 14.2.6 合并查询 语法 UNION INTERSECT MINUS 14.3数据操纵 插入数据 修改数据 删除数据 插入数据 插入单行记录 利用子查询插入数据 向多个表中插入数据 14.3.2修改数据 基本语法 修改单行记录 修改多行记录 带有子查询的修改 14.3.3删除数据 基本语法 删除单条记录 删除多条记录 带有子查询的删除操作 利用TRUNCATE删除数据 TRUNCATE与DELETE区别 14.4事务控制 事务概述 Oracle事务的隔离级别 Oracle事务处理
文档评论(0)