Oracle 10g数据库开发培训教程1

上传人:沈*** 文档编号:130035202 上传时间:2022-08-04 格式:DOCX 页数:31 大小:358.16KB
收藏 版权申诉 举报 下载
Oracle 10g数据库开发培训教程1_第1页
第1页 / 共31页
Oracle 10g数据库开发培训教程1_第2页
第2页 / 共31页
Oracle 10g数据库开发培训教程1_第3页
第3页 / 共31页
资源描述:

《Oracle 10g数据库开发培训教程1》由会员分享,可在线阅读,更多相关《Oracle 10g数据库开发培训教程1(31页珍藏版)》请在装配图网上搜索。

1、菏泽学院计算机系Java实训班课程体系 Oracle 10g目录目录1第1章 数据库概述11.1 数据库系统概述11.1.1 信息、数据与数据库11.1.2 数据管理技术的发展21.1.3 数据库系统(Database System DBS)的组成21.1.4 数据库系统的模式结构31.1.5 数据库系统的特点41.2 数据模型41.3 数据描述51.4 关系数据库61.5 数据库管理系统61.5.1 几个常用的数据库管理系统61.5.2 Oracle数据库简介61.5.3 Oracle 10g数据库系统及Navicat的安装71.6 本章知识点总结9第2章 Oracle 10g数据库的SQL

2、语言与查询102.1 SQL语言概述102.2 Oracle 10g数据库的数据类型、运算符和表达式102.2.1 简单数据类型102.2.2 运算符102.2.3 表达式102.3 Oracle 10g的SELECT查询语句102.3.1 简单查询(selectfrom结构)102.3.2 带条件的简单查询(selectfromwhere结构)112.3.3 单表查询的应用112.3.4 多表查询122.3.5 子查询122.3.6 作业13第1章 数据库概述1.1 数据库系统概述1.1.1 信息、数据与数据库信息是一种已经被加工为特定形式的数据,数据是信息的载体和具体表现形式,信息不随数据

3、形式的变化而变化。很多人认为数据就是数(数字组成),实际上数据的有很多种形式:文字、数字、声音、图像等。 数据和信息时两个相互联系但又相互区别的概念,数据是信息的具体表现形式,信息时数据有意义的表现,而数据库是一个可以共享的、存储在计算机内的、有组织的数据集合。1.1.2 数据管理技术的发展数据管理技术的发展分为:人工管理、文件管理、数据库管理(分布式数据库管理、面向对象的数据库管理)等几个阶段。1、 人工管理阶段 2、 文件管理阶段3、 数据库管理阶段4、 三个阶段数据管理技术比较1.1.3 数据库系统(Database System DBS)的组成数据库系统由计算机硬件、数据库管理系统(D

4、BMS)(及其开发工具)、数据库(DB)、应用程序和用户等几部分组成。1、硬件平台有足够大的内存,存放OS、DBMS的核心模块、数据缓冲区和应用程序。有足够大的磁盘,存放数据库,并进行数据备份。有较高的通道能力,以提供高速的数据传输功能。2、软件平台DBMS:是数据库的建立、使用和维护所必需的系统软件。OS:支持DBMS的操作系统平台。程序设计语言:与数据库系统有接口的程序设计语言及其编译系统,用于开发应用程序。开发工具与环境:为数据库系统的开发和应用提供良好的环境。应用程序:为特定应用环境而开发的数据库应用系统。3、人员1)数据库管理员(DataBase Administrator,简称DB

5、A):数据库系统需要有专门的人员来监督和管理。DBA负责全面管理和控制数据库系统。具体职责包括:决定数据库中的信息内容和结构决定数据库的存储结构和存取策略定义数据的安全性要求和完整性约束条件监控数据库的使用和运行负责数据库的改进和重组重构工作2)系统分析员负责应用系统的需求分析和规范说明工作,要和用户以及DBA相互沟通,确定系统的硬件、软件配置,并参与数据库系统的概要设计。3)数据库设计员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。4)应用程序员负责设计和编写数据库应用系统的程序模块,并进行调试和安装。5)最终用户通过数据库应

6、用系统的用户界面使用数据库。DBS:DBMSDBDBA1.1.4 数据库系统的模式结构数据库系统的结构由内部级、概念级、外部级三级模式组成。1、内部级模式(内模式):最靠近物理存储器,是数据在数据库系统中的表示(即对数据的物理结构和存储方式的描述),是物理数据模型对数据的描述。2、概念级模式(模式):间于上述两者之间。它又称为逻辑模式,是用逻辑数据模型对一个单位的数据的描述,是数据库中的全体数据的逻辑结构和特性的描述。3、外部级模式(外模式):又称子模式或用户模式,是数据库用户看到的数据视图。最靠近用户,是用户和数据库的接口,设计有数据提供给用户的使用方式。支持以上三级模式的计算机程序就是数据

7、库管理系统(DBMS)。数据库的三级模式结构图如下:4、三级模式构成了两个映射1)外模式模式映象对于每一个外模式,数据库系统都有一个外模式模式映象,它定义了该外模式与模式之间的对应关系。这些映象定义通常包含在各自外模式的描述中。当模式改变时,由数据库管理员对各个外模式模式的映象作相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。2)模式内模式映象数据库中只有一个模式,也只有一个内模式,所以模式内模式映象是唯一的,它定义了逻辑结构与存储结构之间的对应关系。该映象定义通常包含在模式描述中。当数据库的存储结构改变了(例如采用了更先进的存储结构),由数据库管理员对模式内模式

8、映象作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。1.1.5 数据库系统的特点1、实现数据共享、减少数据冗余2、采用特定的数据模型3、具有较高的数据独立性4、有统一的数据控制功能1.2 数据模型数据模型的作用是在计算机环境中把数据逻辑地组织成为数据库,使得用户能够有效地存取和处理数据。1、层次模型数据结构是有序的树型结构,基本特征是:(l)有且只有一个结点无双亲,该结点称为根结点;(2)其他结点有且只有一个双亲。R1是根结点,R2和R3是R1的子结点,因此它们是兄弟结点。R2、R4、R5是叶结点。2、网状模型 网状模型的特征是:(l)允许有一个以上的结点没有双亲;(2)结点可以有

9、多于一个的双亲。3、关系模型1)关系模型中的数据在用户观点下的逻辑结构是二维表,而关系模型是建立在集合代数的基础上的。在网状和层次模型中的联系都是通过指针来实现的,而在关系模型中的基本数据结构是表格,记录之间的联系是通过各个关系模式的关键码来体现的。以二维表格描述简单、易懂,用户只需简单查询语句就可以对数据库进行操作,并不涉及存储结构和访问技术的细节等。2)在关系模型中,关系具有以下基本特点:关系必须规范化,属性不可分割。在同一关系中不允许出现相同的属性名。在同一关系中元组及属性的顺序可以任意。任意交换两个元组(属性)的位置,不会改变关系模式。3)每个关系都有一个关系模式,它是该关系的关系名及

10、其全部属性名的集合,一般表示为:关系名(属性名1,属性名2,属性名n)1.3 数据描述1、计算机处理信息的过程 首先从现实世界中抽象出大量描述客观事物的信息,再对这些信息进行整理、分类和规范,进而将规范化的信息数据化,最终实现由数据库系统存储、处理。即客观世界信息世界数据世界2、实体与属性3、实体之间的关系1)一对一的联系(1:1),如班长与班级2)一对多的联系(1:n),如班级与学生3)多对多的联系(m:n),如教师与学生1.4 关系数据库1、关系数据库的定义 关系数据库是建立在关系模型基础上的数据库,它由一些相关的表和其它的数据库对象组成。这个定义包含了如下几层含义:1) 建立在关系模型基

11、础上;2)信息被存放在表(二维表)中;3)表之间是相互联系的;4)除了表之外,还有其它的数据库对象如索引、视图、存储过程等。2、关系数据库的主要功能和特征1)数据定义,定义和删除数据库中的表、索引、视图等数据库对象。2)数据操纵,实现对数据库中数据的操作,基本的操作有查询、数据插入、数据删除和数据修改。3)数据控制,主要控制数据库的安全,包括操作权限的用户密码和存储权限等。4)事务管理。3、几个概念 关系二维表;元组记录;属性字段;实体型、实体集。1.5 数据库管理系统1.5.1 几个常用的数据库管理系统ACCESS、SQL Server、FoxPro、Oracle、MySQL和Sybase等

12、。ACCESS 是美国Microsoft公司于1994年推出的微机数据库管理系统.它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore。Oracle提供的完整的电子商务产品和服务包括: 用于建立和交付基于Web的Internet平台;综合、全面的具有Internet能力的商业应用; 强大的专业服务,帮助用户实施电子商务战略,以及设计、定制和实施各种电子商务解决方案。 .SQL是英文Structured Query Language的缩写,意思为结

13、构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,最大区别:ACCESS 的功能相对不是那么强大,主要是开发单机版软件中经常用到;SQL Server 是目前应用比较广泛和普遍的一款数据库,是数据库发展的一个里程碑。Oracle的功能是比较强大的,一般用于超大型管理系统软件的建立,现在的应用范围也已经比较广泛。1.5.2 Oracle数据库简介1、什么是Oracle数

14、据库oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用SQL数据库系统,它的操作很简单,功能也非常齐全。只是比较oracle数据库而言,在处理大量数据方面有些不如。2、Oracle数据库的发展历程(时间可能不太准确,但大致差不多)1977年,Larry Ellison、Bob Miner和Ed Oates等人组建了Relational软件公司(Relational Software Inc.,RSI)。他们决定使用C语言和SQL界面构建一个关系数据库管理系统(Relational D

15、atabase Management System,RDBMS),并很快发布了第一个版本(仅是原型系统)。1979年,RSI首次向客户发布了产品,即第2版。该版本的RDBMS可以在装有RSX-11操作系统的PDP-11机器上运行,后来又移植到了DEC VAX系统。1983年,发布的第3个版本中加入了SQL语言,而且性能也有所提升,其他功能也得到增强。与前几个版本不同的是,这个版本是完全用C语言编写的。同年,RSI更名为Oracle Corporation,也就是今天的Oracle公司。1984年,Oracle的第4版发布。该版本既支持VAX系统,也支持IBM VM操作系统。这也是第一个加入了读

16、一致性(Read-consistency)的版本。1985年,Oracle的第5版发布。该版本可称作是Oracle发展史上的里程碑,因为它通过SQL*Net引入了客户端/服务器的计算机模式,同时它也是第一个打破640KB内存限制的MS-DOS产品。1988年,Oracle的第6版发布。该版本除了改进性能、增强序列生成与延迟写入(Deferred Writes)功能以外,还引入了底层锁。除此之外,该版本还加入了PL/SQL和热备份等功能。这时Oracle已经可以在许多平台和操作系统上运行。1991年,Oracle RDBMS的6.1版在DEC VAX平台中引入了Parallel Server选项

17、,很快该选项也可用于许多其他平台。1992年,Oracle 7发布。Oracle 7在对内存、CPU和I/O的利用方面作了许多体系结构上的变动,这是一个功能完整的关系数据库管理系统,在易用性方面也作了许多改进,引入了SQL*DBA工具和database角色。1997年,Oracle 8发布。Oracle 8除了增加许多新特性和管理工具以外,还加入了对象扩展(Object Extension)特性。2001年,Oracle 9i release 1发布。这是Oracle 9i的第一个发行版,包含RAC(Real Application Cluster)等新功能。2002年,Oracle 9i r

18、elease 2发布,它在release 1的基础上增加了集群文件系统(Cluster File System)等特性。2003年9月,Oracle发布了Oracle 10g 这一版的最大的特性就是加入了网格计算的功能。该版本中Oracle的功能、稳定性和性能的实现都达到了一个新的水平。 2007年7月11日,Oracle发布了Oracle 11g Oracle 11g是甲骨文公司30年来发布的最重要的数据库版本根据用户的需求实现了信息生命周期管(Information sLifecycle Management)等多项创新。3、Oracle 10g的技术特点1)网格化管理2)自动存储管理3)

19、可移植的集群组建4)支持高速无限带宽网络5)计算资源供应6)共振1.5.3 Oracle 10g数据库系统及Navicat的安装1、安装Oracle 10g2、启动Oracle 10g的方法1)用ms-dos启动:在开始菜单中找“运行SQL命令行”,在SQL后输入连接数据库的命令“connect”,输入用户名、密码,密码是不回显的。2) 在开始菜单中找“转至数据库主页”,启动oracle的企业管理器 3) 执行命令:select table_name from user_tables;User_tables是oracle数据库自己的一个数据词典3、安装Navicat:安装navicat成功后,

20、创建连接,设置OCI,具体做法是: 1)创建连接2)设置OCI,如果不设置则navicat下的命令行等不可用菜单toolsoptionsOCI选定OCI后,设置两个路径如下:OCI library的路径:C:oraclexeapporacleproduct10.2.0serverBINoci.dllSQL*Plus的路径:C:oraclexeapporacleproduct10.2.0serverBINsqlplus.exe4、 Oracle安装成功后,新建一个用户root,用navicat把root.sql导入数据库1)创建用户的方法 首先要用system或sys用户登录,得到:然后得到输入

21、用户信息的界面:注意:把角色、直接授予的系统权限中所有的选项都选上。最后点击创建按钮,完成创建。2)对已经创建的用户还可以删除。3)用navicat把root.sql导入。1.6 本章知识点总结1、数据管理技术发展的几个阶段:人工管理阶段、文件管理阶段、数据库管理阶段、分布式数据库管理、面向对象的数据库管理。2、DBS包括:DBMS、DB、DBA等。3、数据库系统的模式:外模式、模式(概念模式)、内模式,它们构成了“外模式/模式”和“模式/内模式”两个映射。4、数据模型:层次模型、网状模型、关系模型。5、关系模式的表示方法:关系名(属性名1,属性名2,属性名n)6、关系数据库,建立在关系模型基

22、础上,而形成的数据库。7、几个概念:关系二维表;元组记录;属性字段8、常用的数据库管理系统:Oracle、 MySQL、SQL Server、DB2、Sybase 、FoxPro、ACCESS等等。第2章 Oracle 10g数据库的SQL语言与查询2.1 SQL语言概述 SQL(Structured Query Language)是一种结构化查询语言,简称为SQL。它是一种面向数据库的通用数据处理语言规范,能完成数据查询、插入修改删除数据、生成修改和删除数据库对象、数据库安全控制、数据库完整性及数据保护控制等。我们的重点是CRUD(create、research、update、delete)

23、即增删改查。 SQL的优点:1)非过程化语言(只需告诉系统做什么、而不需告诉它怎么做);2)统一的语言(DBMS为对数据库操作的全部任务都统一在SQL语言中);3)它是所有关系数据库的公共语言。2.2 Oracle 10g数据库的数据类型、运算符和表达式2.2.1 简单数据类型1、number(p, s) ,p是数字的整个位数,是小数点后的位数2、varchar2(n),表示可变长度的字符串且其最大长度为n,n不能超过4000。3、char(n),表示固定长度为n的字符串。4、date,表示日期,包括年份、月份。5、nvarchar2,不区分中英文,nvarchar2中存的英文字母也占两个字节

24、。6、nchar,用Uicode字符集存储定长的字符数据。7、CLOB:存储4GB单字节字符数据。(别用来存中文)8、BLOB:用来存储4GB无结构的二进制数据。9、timestamp10、binary_float11、binary_double2.2.2 运算符1、算术运算符:+、-、*、/2、比较运算符:=、!=()、=3、逻辑运算符:and、or、not4、范围运算符:betweenand、not betweenand5、列表运算符:in、not in6、is、not is2.2.3 表达式1、算术表达式:用算术运算符连接的表达式。2、关系表达式:用比较运算符连接的表达式。3、逻辑表达式

25、:用逻辑运算符连接的表达式。2.3 Oracle 10g的SELECT查询语句1)查什么;2)从哪里查;3)需要什么条件1、查看表结构的命令:describe tablename; 或desc tablename;2.3.1 简单查询(selectfrom结构)1、基本格式如下 SELECT *|字段名列表 FROM 表名;2、举例: 1)select * from student; /查询所有行所有列 2)查询指定的某些列 3)查询结果显示时,有它们的默认显示规则,如日期型和字符型的左对齐,数值型的右对齐。 4)查询的时候可以使用算术运算符在select后,及对字段进行四则运算。select

26、 studentid,studentname,studentage+1 from student;|字符串连接运算符 5)排重distinct 6)给字段起别名select studentid 学号,studentname 姓名,studentsex 性别 from student; 或者select studentid as 学号,studentname as 姓名,studentsex as 性别 from student;2.3.2 带条件的简单查询(selectfromwhere结构)1、基本格式如下 SELECT *|字段名列表 FROM 表名WHERE 条件表达式;2、具体实例 1

27、)单条件的查询 查询工资高于3000元的教工信息 select * from teacher where salary3000 2)组合条件的查询 查询工资不低于3000元的女教工信息 select * from teacher where salary=3000 and sex=女2.3.3 单表查询的应用1、关键字DISTINCT的使用查询教师表看看有几个教研室 2、关键字BETWEENAND的使用查询总工资在4000,7000之间的教工信息select teachername,salary+bonus as 总工资 from teacher where salary+bonus betw

28、een 4000 and 7000;3、通配符%和_的使用(模糊查询) 注意:转义字符的使用。 like s_% escape :这里用到了转义字符,表示的意思是以“s_”开头的字符串,而s_% 等价于 s%select * from sc where studentid like s_% escape ; 注意:进行模糊查询时用like关键字,而不用等号=4、关键字NULL和NOT NULL的使用查询没有奖金的教工信息字段名 is not null对null或 not null查询时,不能用等号= 而用is5、用ORDER BY子句为查询结果排序(多字段排序)6、字段运算查询(可以对字段进行

29、简单的算术运算,如+、-、*、/) 在navicat的命令行,可以使用“set linesize 300;”命令来设置当行显示字符的数量。7、别名的使用 1)格式:字段名 AS 别名 2)注意:(1)别名不改变数据库的值。(2)如果别名中含有特殊字符(如:空格)和特殊的要求(如:所有字母大写显示等)要用双引号“”把别名引起来。 3)举例2.3.4 多表查询多表查询是指查询结果要从两个以上的表中检索结果,这里仅仅介绍一种简单的多表查询。1、 查询“李寻欢”所在部门的地址。2、 查询“杨过”所在部门的电话。或者select departmenttel from department where d

30、epartmentid in (select departmentid from teacher where teachername=杨过);注意:1)字符串只能用单引号,而不能用双引号”,双引号有特殊的用途。 2)in的用法3、分析总结: 1)注意给表起别名。 2)select的后字段名用“表名.字段名|表别名.字段名”表示,特别是查询结果中有的字段名在from后的表中都是相同的,那么这个字段名必须指出是哪个表的。如果没有这种现象,那么只用字段名即可。3)SQL 标准指定当为表名创建别名后,SQL 语句的其余部分必须使用该别名引用表(即不能再使用原始表名)。2.3.5 子查询如果一个sele

31、ct命令(查询1)出现在另一个select命令(查询2)的一个子句中,则称查询1是查询2的子查询,又称为“嵌套查询”。外层的select语句称为“父查询”,内层的select语句称为“子查询”。子查询可以嵌套多层,子查询操作的数据表可以是父查询不操作的数据表。1、 查询所有高于杨康工资的教师信息。select * from teacher where salary(select salary from teacher where teachername=杨康);2、 查询出跟李寻欢在同一个教研室、而且工资大于王五的工资的所有教员的姓名和工资。练习:1、 查询与李寻欢在同一个教研室工作的教师的姓

32、名。2、 查询不于低软件教研室任何一名教工工资的教工姓名SELECT TEACHERNAME FROM TEAchER where salary=all(select salary from teacher where staffroom=软件)3、 检索已经开设课程的部门信息3、特点:1)子查询的结果仅返回一行(一个)记录,这时可以用算术比较符:、=、=、 BETWEEN.AND. 、IN 、IS NULL、 NOT、 AND、 OR 、子查询 ORDER BY 字段1, 字段2 ASC|DESC第二天2.4 Oracle 10g单行函数和聚合函数 函数是一种有0个或多个参数并且有一个返回值

33、的程序,Oracle的函数主要分为两大类:单行函数和聚合函数(组函数)。SQL和PL/SQL中自带很多类型的函数,如字符、数字、日期、转换和混合型等多种函数用于处理单行数据,这些函数统称为单行函数,这些函数均可用于select、where、order by等子句中。当需要对查询结果的数据行的同类信息合并在一起操作时,就需要用聚合函数来汇总这些数据行;oracle提供了基于组的多行函数,它们可以在select或select的having子句中使用。2.4.1 单行函数单行函数对查询的表或视图的每一行返回一个结果行,分为:数值函数、字符函数、日期函数、转换函数等。单行函数也可以使用在update的

34、set子句中、insert的values子句中、delete的where子句中等,但重点是用在select子句。哑表:dual是oracle提供一个特使的表,主要用于测试函数。2.4.1.1 NVL函数因为在我们的表中经常会有null值出现,而null无法参与其它的运算,如salary+null是非法的,为了解决这个问题,系统提供了NVL函数专门处理null。1)该函数的格式:NVL(x1,x2)其中x1,x2都是表达式,当x1的值为null时返回x2的值,否则返回x1的值。2)举例,找出问题所在先看上述语句会出现什么问题,解决办法如下:注意:x1、x2的数据类型要相匹配。2.4.1.2 字符

35、串函数1) ASCII(c):返回字符c的ASCII码值(十进制数)。2) CHR(i):返回整数i对应的字符。3) CONCAT(C1,C2):连接字符串C1和C2。注意一个字符串的连接运算符:|,如:select 姓名:|teachername from teacher4) INITCAP(C):返回字符串C,并将C中的每个单词的第一个字母大写,其它字母小写。5) INSTR(C1,C2,i,j):在一个字符串中搜索指定的字符,返回发现指定的字符的位置。C1是被搜索的字符串,C2是搜索的字符串,i是搜索的开始位置(默认为1),j是出现的次数(默认为1)例如:求“oracle traing”

36、中从第1个字符开始tr第2次出现的位置。Select instr(oracle training,ra,1,2) from dual;6) LENGTH(C):返回字符串C的长度,注意一个汉字和一个字母的长度都是17) LOWER(C):返回字符串C的所有字符为小写。8) UPPER(C):返回字符串C的所有字符为大写。9) LPAD(C1, , C2):C1、C2均为字符串,i为整数。在C1的左侧用C2补足长度i,可多次重复;如果i小于C1的长度,只返回i那么长的C1字符,其它的被截去;C2的缺省值为单空格。例如:在字符串幸福的右边用*补足到10个字符,然后在结果的左边用&补足到17个字符。

37、SQL select LPAD(Rpad(幸福,10,*),17,&) FROM DUAL;说明:lpad是左填充,rpad是右填充。10) LTRIM(C)和RTRIM(C):分别是删除C的前导空格和删除C尾部空格。11) TRIM(C):既删除C的前导空格又删除C尾部的空格。12) SUBSTR(string,start,count):从母串string中取从start开始的count个字符作为一个子串返回。13) Replace(string,s1,s2):用s2替换出现在string中的s1字符串。 如:select replace(aabbccddeeaaa,aa,AA) FROM

38、DUAL;14) TRANSLATE(C1,C2,C3):它是分级替换的,具体做法如下:a) 若在C1中能找到与C2全部相同的,就用C3把相应的字符全部代替。(第一级)结果:b) 若在C1中能找到与C2部分相同的,就用C3中与C2对应位置上的字符代替(第二级)。可分如下三种情况:I) 若C2长度等于C3的长度,做对应位置字符替换。结果:Ii)若C2长度大于C3的,相当于把C3的末尾加上几个空串直到与C2长度一样,然后再做对应位置字符替换。结果:Iii)若C2长度小于C3的,相当于只保留C3前面的与C2长度的字符串,然后再做对应位置字符替换。实际上这种情况与I)是一样的。结果:2.4.1.3 数

39、值函数1)ABS(a):求指定数a的绝对值。2)EXP(n):返回e的n次幂。3)MOD(m,n):返回m除以n的余数。4)ROUND(n1,n2): n2=0的正整数时返回n1所保留的小数位数,其余的被舍入掉;n2工龄*12作为条件。2.4.1.5 转换函数 转换函数是在日期、字符和数值之间的相互转换。1、 to_char(number/date,format-model):按照format-model的格式把数值number或日期date转换为相应的字符串。1)例如:select to_char(sysdate,yyyy-mm-dd) from dual;2)有关format-model的

40、说明:(1)日期的显示格式:YYYY:4位年份YY:两位年份Year:年的英文全名 如nineteen nityeightMM:月的两位数字Month:月的英文全名 如MAYMON:英文月的前三位简写 如OCTDAY:星期几的英文全名 如MondayDD:2位日期(2)数字的显示格式:9:代表一个数字位0:代表数字前面补0,如to_char(-1200,.00)的结果:.:小数点的位置,:标记数字位置的逗号L:根据数据库字符集加货币符号 如to_char(-1200,L9999.99);结果:$:给浮点数增加$结果:To_char函数中format-model固定格式: 9代表一个数字0强迫0

41、显示$显示美元符号L强制显示一个当地的货币符号.显示一个小数点,显示一个千位分隔符号2、 to_date(c,format-model):c表示字符串,format-model表示一种特殊格式的字符串。返回format-model格式的字符串c所对应的日期。其实该函数将字符串c转换为date数据类型。如:3、 to_number(c):c表示字符串,format-model表示一种特殊格式的字符串。返回format-model格式的数字。其实该函数将字符串c转换相应的数值。2.4.2 聚合函数(组函数)2.4.2.1 聚合函数的应用1、MAX(x):返回某个字段的所有值中的最大值。2、MIN(

42、x):返回某个字段的所有值中的最小值。 例如:查询教工中工资最高和最低的员工3、AVG(x):返回指定字段中的平均值。注意avg()函数只对数值型字段使用,即x的的数值类型只能是数值型的,如果空值,忽略不计。4、 COUNT(*):返回查询中行的数目,*表示返回所有的行,用来统计一个表中有多少条记录(包含有空值的记录)。5、 SUM(x):返回选择列表项目x的数值的总和。2.4.2.2 GROUP BY子句的应用聚合函数一般是处理那些已经分好组的数据,分组可以用group by子句来完成。例如:1、 统计各教研室的人数2、求各个教研室中的最高工资 2.4.2.3 HAVING与WHERE关键字

43、的使用这两个都是条件子句,where主要与select搭配使用,而having只能出现在有group by子句的sql语句中。注意,聚合函数不能出现where子句中。例题:1)查询教研室工资总和超过10000元的教研室2)查询除了助教外哪些教研室的工资总和多于8000元。2.4.2.4 ORDER BY子句的使用使用order by子句可以对查询结果进行排序,其中包括升序(asc,缺省值)和降序(desc)。举例: 2.5 Oracle 10g集合运算进行如下三种集合运算的条件:字段个数相同、对应列的类型匹配。1、 Union 并例如:结果是两个查询结果的并集,若有重复的记录,则只取它们中的一

44、条。2、 Intersect 交结果为空3、Minus 差两个集合A、B,A-B的结果是从A中去掉A与B共同的元素而剩余的元素。A-B=A-AB2.6作业1、 统计每个班的学生数2、 统计每个专业的学生数3、 查询每个教研室中的最低或最高总工资,并按总工资降序排列。4、 查询每个多于1人的教研室中最高和最低总工资,要求显示出教研室名、人数、最低工资和最高工资。5、 查询至少有3人的教研室的名称及人数。6、 求每个教研室的平均工资(要求看到教研室名称、人数和平均工资)。第二天总结1、 单行函数2、 聚合函数:min()、max()、sum()、avg()、count()等3、 Select查询语

45、句扩充 SELECT DISTINCT*,column alias,. FROM table1,table2WHERE condition(s)GROUP BY column HAVING condition(s) ORDER BY column,expr,aliasASC|DESC;4、 三种集合运算:union、intersect、minusOracle第三天上午2.7深入多表查询2.7.1 交叉连接(广义笛卡尔积):1、广义笛卡尔积是不带连接谓词的连接,两个表的广义笛卡尔积即是两表中元组的交叉乘积,其连接的结果会产生一些没有意义的元组,所以这种运算实际很少使用。2、举例 select *

46、 from student,score2.7.2等值与非等值连接查询1、等值连接:连接运算符为 = 的连接操作1)连接条件:.=.2)任何子句中引用表1和表2中同名属性时,都必须加表名前缀。引用唯一属性名时可以省略表名前缀。3)举例:查询每个学生及其选修课程的情况。select * from student st , score sc where st.studentid=sc.studentid 或select st.*,sc.* from student st,score sc where st.studentid=sc.studentid2、非等值连接查询:连接运算符不是 = 的连接操作

47、1)格式:.或. BETWEEN . AND .2)比较运算符:、=、=、!=2.7.3自身连接1、表与其自己进行连接,称为表的自身连接。2、需要给表起别名以示区别,由于所有属性名都是同名属性,因此必须使用别名前缀3、 举例:1)查询每一门课程的先修课(即先修课的先修课)。分析:在Course表中,只有每门课的直接先修课信息,而没有先修课的先修课。要得到这个信息,必须先对一门课找到其先修课,再按此先修课的课程号,查找它的先修课程。这就要将Course表与其自身连接。为清楚起见,可以为Course表取两个别名,一个是FIRST,另一个是SECOND。1)查询课程的先修课First别名看作是有先修

48、课的一个表Second看作是一个普通的课程表得到如下结果:需要写的SQL语句为:2)查询teacher表中各个教师的领导者 得到如下结果Sql语句如下:2.7.4 内连接1、在通常的连接操作中即在内连接中,只有满足连接条件的元组才能作为结果输出。但是有时要用学生表为主体列出每个学生的基本情况及其选课情况,若某个学生没有选课,只输出其基本情况信息,其选课信息为空值即可,这时就需要使用外连接。2、外连接与内连接(普通连接)的区别:1)内连接操作只输出满足连接条件的元组2)外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。3、内连接举例: 查询每个教师开设课程的情况。1)实现方法

49、12)实现方法2:这是一种新的格式Inner可以省略注意:inner join on 其中inner可以省略不写,也是同样的效果。但是有一个问题:郭靖、张三、王五的信息呢?好,解决这个问题就得用外连接了。2.7.5 外连接1、外连接的表示方法为:1)在表名后面加外连接操作符(*)或(+)指定非主体表,注意oracle中只能用(+)。2)非主体表有一“万能”的虚行,该行全部由空值组成。3)虚行可以和主体表中所有不满足连接条件的元组进行连接。4)由于虚行各列全部是空值,因此与虚行连接的结果中,来自非主体表的属性值全部是空值。2、外连接有分为左外连接、右外连接和全外连接1)左外连接:左边表的信息全出

50、现,而右边的表中仅出现满足条件的或2)右外连接:右边表中信息全出现,而左边的表中仅出现满足条件的。或 注意:对于用(+)的左外连接和右外连接,若where子句中包含多个条件,则相应的其它条件中也要加(+)运算符。3)全外连接:左右表中的信息满足不满足条件都出现注意:(+)不适用于全连接。3、连接格式的总结: Select 字段名列表 From 表1 inner | left/right/fullouter join 表2 on 表1.字段名表2.字段名 inner | left/right/fullouter join 表3 on 表3.字段名表1|表2.字段名 whereordery by;

51、例如:查询学生所选的课程名、成绩或者2.7.6 复合条件连接1、在连接查询中,若WHERE子句有多个连接条件,称为复合条件连接。例如查询学生所选的课程名、成绩,并且成绩在80分以上2、连接操作除了可以是两表连接,一个表与其自身连接外,还可以是两个以上的表进行连接,通常称为多表连接。例如:2.7.7 作业1、查询教师表把领导者的id号和姓名显示出来 2、查询查询出有先修课的课程号和课程名3、查询出还没有选课的学生信息4、统计出已选课学生的课程门数。5、查询班级和年龄都相同的学生信息总结1、 交叉连接、等值连接与非等值连接、自连接、外连接、多条件查询2、 连接查询的新格式:第三天下午第3章 Ora

52、cle 10g数据库建模与设计3.1数据库系统的开发过程数据库应用系统的开发是一项软件工程。一般可分为以下几个阶段:1)规划;2) 需求分析;3)概念模型设计;4)逻辑设计;5)物理设计;6)程序编制及调试;7)运行及维护。3.1.1规划规划的主要任务就是作必要性及可行性分析。1)在收集整理有关资料的基础上,要确定将建立的数据库应用系统与周边的关系,要对应用系统定位,其规模的大小、所处的地位、应起的作用均须作全面的分析和论证。明确应用系统的基本功能,划分数据库支持的范围。2)分析数据来源、数据采集的方式和范围,研究数据结构的特点,估算数据量的大小,确立数据处理的基本要求和业务的规范标准。3)规

53、划人力资源调配。对参与研制和以后维护系统运作的管理人员、技术人员的技术业务水平提出要求,对最终用户、操作员的素质作出评估。拟定设备配置方案。4)论证计算机、网络和其他设备在时间、空间两方面的处理能力,要有足够的内外存容量,系统的响应速度、网络传输和输入输出能力应满足应用需求并留有余量。要选择合适的OS,DBMS和其它软件。5)设备配置方案要在使用要求、系统性能、购置成本和维护代价各方面综合权衡。对系统的开发、运行、维护的成本作出估算。6)预测系统效益的期望值。拟定开发进度计划,还要对现行工作模式如何向新系统过渡作出具体安排。7)规划阶段的工作成果是写出详尽的可行性分析报告和数据库应用系统规划书

54、。内容应包括:系统的定位及其功能、数据资源及数据处理能力、人力资源调配、设备配置方案、开发成本估算、开发进度计划等。8)可行性分析报告和数据库应用系统规划书经审定立项后,成为后续开发工作的总纲。3.1.2 需求分析需求分析大致可分成三步来完成。(1) 需求信息的收集, 需求信息的收集一般以机构设置和业务活动为主干线,从高层中层到低层逐步展开。(2) 需求信息的分析整理, 对收集到的信息要做分析整理工作。数据流图(DFD, data flow diagram)是业务流程及业务中数据联系的形式描述。数据字典(DD, data dictionary)详细描述系统中的全部数据。数据字典包含以下几个部分:数据项:是数据的原子单位。 数据组项:由若干数据项组成。数据流:表示某一数据加工过程的输入/输出数据。数据存储:是处理过程中要存取的数据。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!