Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06

上传人:w****i 文档编号:94406805 上传时间:2019-08-06 格式:PPT 页数:51 大小:152KB
返回 下载 相关 举报
Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06_第1页
第1页 / 共51页
Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06_第2页
第2页 / 共51页
Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06_第3页
第3页 / 共51页
Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06_第4页
第4页 / 共51页
Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06》由会员分享,可在线阅读,更多相关《Oracle Database 10g基础教程(第二版) 教学课件 ppt 作者 978-7-302-15311-5ch06(51页珍藏版)》请在金锄头文库上搜索。

1、第1页,第6章 SQL基础,本章概述 本章要点 教学过程,第2页,本章概述,SQL语言是一种标准的结构化查询语言(structured query language),许多数据库厂商的产品都支持SQL语言。但是,许多数据库厂商在使用SQL语言时,不是简单地把SQL语言照搬过来,而是在SQL语言的基础上进行了扩展,因此形成了不同的语言。例如,在Oracle系统中,经过扩展的SQL语言是PL/SQL语言,这是一种过程SQL语言,是Oracle公司在标准SQL语言的基础上提出的语言。这些扩展语言既与标准的SQL语言兼容,又在标准的SQL语言基础上添加了许多新的功能。这种扩展语言有两个重要的作用,即突

2、出本产品的特点和探索SQL语言的新功能并且为SQL语言的版本升级做贡献。 本章介绍Oracle系统的SQL基础。,第3页,本章要点,SQL的基本概念和作用 SQL与SQL*Plus、PL/SQL之间的关系 检索数据 排序和分组数据 插入、更新和删除数据,第4页,教学过程,6.1 概述 6.2 select语句 6.3 修改数据 6.4 子查询,第5页,教学过程,6.1 概述 6.2 select语句 6.3 修改数据 6.4 子查询,第6页,6.1 概述,本节包括两部分内容。 首先,介绍SQL的作用和特点,SQL技术是本章的中心内容; 其次,介绍SQL与SQL*Plus、PL/SQL之间的区别

3、和联系,以便更好地学习和理解SQL。,第7页,SQL的作用和特点,SQL是结构化查询语言(structure query language)的简称,是关系型数据库管理系统中最流行的数据查询和更新语言。用户可以使用SQL语言在数据库中执行各种操作。 1986年,SQL-86,也被称为SQL-1。 1992年,SQL-92,也被称为SQL-2。 1999年,SQL-99,也被称为SQL-3。 还存在不同的数据库管理系统厂商开发的不同类型的SQL。 SQL查询语言包括了所有对数据库的操作,这些操作可以分为4个部分,即数据定义语言、数据操纵语言、数据控制语言和嵌入式SQL语言。,第8页,SQL与SQL

4、*Plus、PL/SQL之间的关系,SQL*Plus是一个用于连接Oracle数据库的强大工具。使用该工具,用户可以连接服务器上的数据库,还可以执行许多操作。前一章已经介绍了SQL*Plus的基本功能,下面总结一下SQL*Plus的主要功能特点: 在数据库中执行SQL语言和PL/SQL语言; 更新数据库中的数据; 执行数据查询; 将查询结果集格式化为报表; 建立、编辑、检索和执行SQL脚本; 管理数据库; 描述数据库中的表和PL/SQL对象; 将数据从一个数据库复制到另一个数据库; 向用户发送消息,并接受用户的输入。,第9页,PL/SQL,PL/SQL是Oracle系统的过程化编程语言。 用户

5、可以使用PL/SQL语言编写在数据库中执行的定制程序和过程代码。如同拥有执行SQL语言的SQL引擎一样,Oracle系统也拥有执行PL/SQL语言的PL./SQL引擎。PL/SQL程序能够存储在数据库中,以便用于用户应用程序和日常操作。这样可以使用户在Oracle数据库设计和规划的编程语言中,实现与用户数据密切相关的业务逻辑。,第10页,教学过程,6.1 概述 6.2 select语句 6.3 修改数据 6.4 子查询,第11页,6.2 select语句,数据操纵语言就是那些检索、更新表中数据的语句。这些语句包括select、insert、update、delete等4个语句。 本节首先介绍s

6、elect语句,后面将陆续讲述其他的数据操纵语言。 在SQL语言中,最简单的语句是select语句。使用select语句可以检索数据库中的信息。具体地说,使用select语句可以完成选择、投影、连接等运算。,第12页,基本语法,在Oracle系统中,select语句的基本语法格式如下: select distinct *, column_name alias, from tablename where group by having order by,第13页,规则,一般情况下,在使用SQL语句(包括使用select语句)时,用户应该遵循下面的规则或约定: 除非明确指定,否则SQL语句不区分大

7、小写; SQL语句可以一行或多行的形式输入; 关键字不能跨行; 为了增强可读性,关键字左对齐; 可以在SQL语句中使用各种制表符和伸缩符号。,第14页,执行SQL语句,在Oracle系统中,可以采用下面4种方式之一来执行SQL语句: 在子句的最后添加分号(;); 在缓存区的最后一行的末尾放置斜杠(/); 在SQL提示符末尾放置斜杠(/); 在SQL提示符末尾使用run命令。,第15页,执行select语句,如果在select子句后面使用星号(*),则表示检索表中所有的数据,包括所有的列和行。 当然,也可以在select子句末尾列出将要检索的数据列名。只要在select子句后面输入相应的列名,即

8、可把指定的列检索出来。 在执行select语句时要注意,select子句和from子句都是必须的,缺少任何一个子句都是错误的。 在使用select语句执行操作时,不同数据类型的数据显示的方式也不同。,第16页,算术表达式,在使用select语句时,对于数字数据和日期数据都可以使用算术表达式。 在select语句中可以使用的算术运算符如表6-1所示。 在表中,如果某个列中没有值,那么把这种现象称为空值。空值既不是字符串中的空格,也不是数字中的零,而只是表示没有值,这是一种不能使用的值。如果某个列既不是主健约束列,也没有定义为not null,那么该列就允许为空值。任何数据类型的列都具有这种特性。

9、 空值的特性非常奇怪。在算术表达式中,任何包含了空值运算的表达式的结果依然是空值。,第17页,改变列标题,在默认情况下,查询结果集中的数据标题是列名。 由于在设计数据库过程中,为了简单起见,一般采用缩写的形式命名列名,例如使用sal表示薪水(salary)。但是,以这种缩写方式命名的列名可读性比较差。因此,在查询结果集中,经常需要改变列的标题,特别是在制作报表时。 改变列标题的方式为“列名 as 列标题”。在这种方式中,关键字as可以省略。特别是当列标题中包含了一些特殊的字符,例如空格等时,可以使用双引号将列标题引起来。,第18页,使用where子句,使用select语句中的where子句可以

10、限制数据量,实际上,select语句中的where子句可以用来指定检索数据的条件。 where子句的语法格式如下: select distinct *, column_name alias, from tablename where condition_expression 以上的where子句用来指定检索到的数据应该满足指定的条件,参数condition_ expression就是用于指定条件。在where子句的条件中,可以比较各种列值、文字串、算术表达式、函数等内容。,第19页,where子句中可用的运算符,普通比较运算符就是直接比较两个表达式的运算符。 特殊比较运算符,如表6-3所示。

11、使用逻辑运算符的好处在于可以把多个条件连接起来,以便组成复杂的复合条件。,第20页,使用order by子句,在前面介绍的数据检索技术中,只是把数据库中的数据直接取出来。这时,在结果集中数据的排列顺序由数据的存储顺序决定。 但是,这种存储顺序经常不符合实际的各种业务需要,因此需要对数据库中的数据在检索时进行排序。在select语句中,可以使用order by子句执行数据排序操作。 使用order by子句的语法格式如下: order by column_name, expression asc | desc,第21页,合计计算,合计计算就是把一组数据作为计算的对象而执行的计算,这种计算包括求最

12、大值、平均值、方差等。进行合计计算必须使用Oracle系统提供的合计函数。在Oracle系统中,可以使用的合计函数及其语法和功能如表6-5所示。,第22页,使用字符函数,字符函数是对字符表达式进行处理的函数。字符函数的输入是字符表达式(包括表中的列名称),其输出是经过处理的字符表达式。 例如,lower()函数可以将字符表达式转换为小写字母,substring()函数将输出某个字符串的子串。 在Oracle Database 10g系统中,可以使用的字符函数如表6-6所示。实际上,这些字符函数在许多编程语言中都可以找到。,第23页,使用数学函数,数学函数可以用于执行各种数据计算。许多编程语言都

13、提供了大量的数学函数,这也是编程语言最早的功能之一。Oracle Database 10g系统也提供了大量的数学函数,这些函数大大增强了Oracle Database 10g系统的科学计算能力。 Oracle Database 10g系统提供了几乎所有常用的数学函数。Oracle Database 10g系统中可用的数学函数如表6-7所示。,第24页,使用转换函数,在操纵表中的数据时,经常需要把某个数据从一种数据类型转换为另一种数据类型,这时就需要使用数据转换函数。例如,如果需要把表示价格的数值数据转换成字符数据,则需要使用to_char()函数。Oracle Database 10g系统,提

14、供了许多用于数据类型转换的函数。 这些转换函数及其功能如表6-8所示。,第25页,使用group by和having子句,表中包含了许多数据,可以对这些数据按照某个指定的列进行分组,然后使用合计函数计算相应列的合计值。 例如,如果需要检索最高薪水和最低薪水的雇员,并返回不同部门中最高薪水和最低薪水的雇员,那么就需要对表中的数据进行分组计算。 在Oracle系统中,可以在select语句中使用group by子句进行分组计算。使用分组计算的语法格式如下: group by group_by_expression having group_condition,第26页,连接查询,在设计数据库时,为

15、了满足数据库范式要求,数据分散在不同的表中。但是,在使用数据库时,经常需要把分散在不同表中的数据组合成一个显示结果集提供给用户。为了满足这种要求,需要使用连接查询技术。 在Oracle系统中,为了从多个表中检索数据,可以使用下面的语法格式: select table1.column, table2.column from table1, table2 where table1.column1 = table2.column2,第27页,笛卡尔乘积,连接查询的理论基础是笛卡尔乘积。也就是说,连接运算建立在笛卡尔乘积的基础上,所有连接运算的结果都是笛卡尔乘积的子集。 笛卡尔乘积是指两个或两个以上的

16、表进行相乘运算,结果是这些表中所有行的任意组合。 例如,emp表中有14行数据,dept表中有4行数据,其结果中有56行数据。,第28页,连接类型,在连接运算中,根据指定的连接条件,可以把连接查询划分成3种类型,即 内连接 外连接 自连接,第29页,内连接,内连接把两个表连接成一个临时表,在这个表中,仅包含那些满足连接条件的记录行。 内连接主要有两种形式,等价连接和非等价连接。 等价就是在连接列相等的条件下执行的连接操作。非等价连接是指在连接列不相等的连接条件下执行连接操作。,第30页,外连接,在外连接中,某些不满足条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另外一个表中的行。 这种连接形式在许多情况下是非常有用的。 外连接只能用于两个表中。 外连接的语法格式如下: select table1.column, table2.column from table1, table2 where table1.column1(+) = table2.column2 外连接又可以分为左外连接和右外连接。,第31页,自连接,自连接就是把某

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号