Oracle 10g数据库开发培训教程1_第1页
Oracle 10g数据库开发培训教程1_第2页
Oracle 10g数据库开发培训教程1_第3页
Oracle 10g数据库开发培训教程1_第4页
Oracle 10g数据库开发培训教程1_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、菏泽学院计算机系Java实训班课程体系 Oracle 10gPAGE PAGE 59目录TOC o 1-3 h z u HYPERLINK l _Toc303232529 目录 PAGEREF _Toc303232529 h 1 HYPERLINK l _Toc303232530 第1章 数据库概述 PAGEREF _Toc303232530 h 1 HYPERLINK l _Toc303232531 1.1 数据库库系统概述 PAGEREF _Toc303232531 h 1 HYPERLINK l _Toc303232532 1.1.1 信信息、数据与与数据库 PAGEREF _Toc30

2、3232532 h 1 HYPERLINK l _Toc303232533 1.1.2 数数据管理技术术的发展 PAGEREF _Toc303232533 h 2 HYPERLINK l _Toc303232534 1.1.3 数数据库系统(Databbase SSystemm DBS)的组成 PAGEREF _Toc303232534 h 2 HYPERLINK l _Toc303232535 1.1.4 数数据库系统的的模式结构 PAGEREF _Toc303232535 h 3 HYPERLINK l _Toc303232536 1.1.5 数数据库系统的的特点 PAGEREF _Toc

3、303232536 h 4 HYPERLINK l _Toc303232537 1.2 数据模模型 PAGEREF _Toc303232537 h 4 HYPERLINK l _Tooc30322325388 1.3 数据据描述 PAGEREF _Toc303232538 h 5 HYPERLINK l _Toc303232539 1.4 关系数数据库 PAGEREF _Toc303232539 h 6 HYPERLINK l _Toc303232540 1.5 数据库库管理系统 PAGEREF _Toc303232540 h 6 HYPERLINK l _Toc303232541 1.5.1

4、 几几个常用的数数据库管理系系统 PAGEREF _Toc303232541 h 6 HYPERLINK l _Toc303232542 1.5.2 OOraclee数据库简介介 PAGEREF _Toc303232542 h 6 HYPERLINK l _Toc303232543 1.5.3 OOraclee 10g数数据库系统及及Naviccat的安装装 PAGEREF _Toc303232543 h 7 HYPERLINK l _Toc303232544 1.66 本章知识识点总结 PAGEREF _Toc303232544 h 9 HYPERLINK l _Toc303232545 第

5、2章 Oraacle 110g数据库库的SQL语言与与查询 PAGEREF _Toc303232545 h 10 HYPERLINK l _Toc303232546 2.1 SQLL语言概述 PAGEREF _Toc303232546 h 10 HYPERLINK l _Toc303232547 2.2 Oraacle 110g数据库库的数据类型型、运算符和和表达式 PAGEREF _Toc303232547 h 10 HYPERLINK l _Toc303232548 2.2.1 简简单数据类型型 PAGEREF _Toc303232548 h 10 HYPERLINK l _Toc3032

6、32549 2.2.2 运运算符 PAGEREF _Toc303232549 h 10 HYPERLINK l _Toc303232550 2.2.3 表表达式 PAGEREF _Toc303232550 h 10 HYPERLINK l _Toc303232551 2.3 Oraacle 110g的SELECCT查询语句句 PAGEREF _Toc303232551 h 10 HYPERLINK l _Toc303232552 2.3.1 简简单查询(sselecttfromm结构) PAGEREF _Toc303232552 h 10 HYPERLINK l _Toc303232553 2

7、.3.2 带带条件的简单单查询(seelectfromwheree结构) PAGEREF _Toc303232553 h 11 HYPERLINK l _Toc303232554 2.3.3 单单表查询的应应用 PAGEREF _Toc303232554 h 11 HYPERLINK l _Toc303232555 2.3.4 多多表查询 PAGEREF _Toc303232555 h 12 HYPERLINK l _Toc3032322556 2.3.55 子查询 PAGEREF _Toc303232556 h 12 HYPERLINK l _Toc303232557 2.3.6 作作业 P

8、AGEREF _Toc303232557 h 13第1章 数据库库概述1.1 数据库库系统概述1.1.1 信信息、数据与与数据库信息是一种已经经被加工为特特定形式的数数据,数据是是信息的载体体和具体表现现形式,信息息不随数据形形式的变化而而变化。很多多人认为数据据就是数(数数字组成),实实际上数据的的有很多种形形式:文字、数数字、声音、图图像等。 数据和信息时时两个相互联联系但又相互互区别的概念念,数据是信信息的具体表表现形式,信信息时数据有有意义的表现现,而数据库库是一个可以以共享的、存存储在计算机机内的、有组组织的数据集集合。1.1.2 数数据管理技术术的发展数据管理技术的的发展分为:人工

9、管理、文文件管理、数数据库管理(分分布式数据库库管理、面向向对象的数据据库管理)等等几个阶段。人工管理阶段 文件管理阶段数据库管理阶段段三个阶段数据管管理技术比较较1.1.3 数数据库系统(Dattabasee Systtem DBBS)的组成成数据库系统由计计算机硬件、数数据库管理系系统(DBMMS)(及其其开发工具)、数据库(DB)、应用程序和用户等几部分组成。1、硬件平台有足够大的内内存,存放OOS、DBMMS的核心模模块、数据缓缓冲区和应用用程序。有足够大的磁磁盘,存放数数据库,并进进行数据备份份。有较高的通道道能力,以提提供高速的数数据传输功能能。2、软件平台DBMS:是是数据库的建

10、建立、使用和和维护所必需需的系统软件件。OS:支持DDBMS的操操作系统平台台。程序设计语言言:与数据库库系统有接口口的程序设计计语言及其编编译系统,用用于开发应用用程序。开发工具与环环境:为数据据库系统的开开发和应用提提供良好的环环境。应用程序:为为特定应用环环境而开发的的数据库应用用系统。3、人员1)数据库管理理员(DattaBasee Admiinistrrator,简简称DBA):数据库系统需要有专门的人员来监督和管理。DBA负责全面管理和控制数据库系统。具体职责包括:决定数据库中中的信息内容容和结构决定数据库的的存储结构和和存取策略定义数据的安安全性要求和和完整性约束束条件监控数据库

11、的的使用和运行行负责数据库的的改进和重组组重构工作2)系统分析员员负责应用系统的的需求分析和和规范说明工工作,要和用用户以及DBBA相互沟通通,确定系统统的硬件、软软件配置,并并参与数据库库系统的概要要设计。3)数据库设计计员负责数据库中数数据的确定、数数据库各级模模式的设计。数数据库设计人人员必须参加加用户需求调调查和系统分分析,然后进进行数据库设设计。4)应用程序员员负责设计和编写写数据库应用用系统的程序序模块,并进进行调试和安安装。5)最终用户通过数据库应用用系统的用户户界面使用数数据库。DBS:DBMMSDBDBA1.1.4 数数据库系统的的模式结构数据库系统的结结构由内部级级、概念级

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

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

14、(例如采用用了更先进的的存储结构),由由数据库管理理员对模式内模式映象象作相应改变变,可以使模模式保持不变变,从而保证证了数据的物物理独立性。1.1.5 数数据库系统的的特点1、实现数据共共享、减少数数据冗余2、采用特定的的数据模型3、具有较高的的数据独立性性4、有统一的数数据控制功能能1.2 数据模模型数据模型的作用用是在计算机机环境中把数数据逻辑地组组织成为数据据库,使得用用户能够有效效地存取和处处理数据。1、层次模型数据结构是有序序的树型结构构,基本特征征是:(l)有有且只有一个个结点无双亲亲,该结点称称为根结点;(2)其他他结点有且只只有一个双亲亲。R1是根结点,RR2和R3是是R1的

15、子结结点,因此它它们是兄弟结结点。R2、RR4、R5是是叶结点。2、网状模型 网状模型型的特征是:(l)允许许有一个以上上的结点没有有双亲;(22)结点可以以有多于一个个的双亲。3、关系模型1)关系模型中中的数据在用用户观点下的的逻辑结构是是二维表,而而关系模型是是建立在集合合代数的基础础上的。在网网状和层次模模型中的联系系都是通过指指针来实现的的,而在关系系模型中的基基本数据结构构是表格,记记录之间的联联系是通过各各个关系模式式的关键码来来体现的。以以二维表格描描述简单、易易懂,用户只只需简单查询询语句就可以以对数据库进进行操作,并并不涉及存储储结构和访问问技术的细节节等。2)在关系模型型中

16、,关系具具有以下基本本特点:关系必须规范范化,属性不不可分割。在同一关系中中不允许出现现相同的属性性名。在同一关系中中元组及属性性的顺序可以以任意。任意交换两个个元组(属性性)的位置,不不会改变关系系模式。3)每个关系都都有一个关系系模式,它是是该关系的关关系名及其全全部属性名的的集合,一般般表示为:关系名(属性名名1,属性名名2,属性名名n)1.3 数据描描述1、计算机处理理信息的过程程 首先从现现实世界中抽抽象出大量描描述客观事物物的信息,再再对这些信息息进行整理、分分类和规范,进进而将规范化化的信息数据据化,最终实实现由数据库库系统存储、处处理。即客观观世界信息世世界数据世界界2、实体与

17、属性性3、实体之间的的关系1)一对一的联联系(1:11),如班长长与班级2)一对多的联联系(1:nn),如班级级与学生3)多对多的联联系(m:nn),如教师师与学生1.4 关系数数据库1、关系数据库库的定义 关系数数据库是建立立在关系模型基础础上的数据库库,它由一些些相关的表和和其它的数据据库对象组成成。这个定义义包含了如下下几层含义:建立在关系模型型基础上;22)信息被存存放在表(二二维表)中;3)表之间间是相互联系系的;4)除除了表之外,还还有其它的数数据库对象如如索引、视图图、存储过程程等。2、关系数据库库的主要功能能和特征1)数据定义,定定义和删除数数据库中的表表、索引、视视图等数据库

18、库对象。2)数据操纵,实实现对数据库库中数据的操操作,基本的的操作有查询询、数据插入入、数据删除除和数据修改改。3)数据控制,主主要控制数据据库的安全,包包括操作权限限的用户密码码和存储权限限等。4)事务管理。3、几个概念 关系二维维表;元组记记录;属性字字段;实体型型、实体集。1.5 数据库库管理系统1.5.1 几几个常用的数数据库管理系系统ACCESS、SSQL Seerver、FFoxProo、Oraccle、MyySQL和SSybasee等。ACCESSS 是美国国Microosoft公公司于19994年推出的的微机数据库库管理系统.它具有界面面友好、易学学易用、开发发简单、接口口灵活

19、等特点点,是典型的的新一代桌面面数据库管理理系统。Oracle公公司是全球最最大的信息管管理软件及服服务供应商,成成立于19777年,总部部位于美国加加州 Reddwood shoree。Oraccle提供的的完整的电子子商务产品和和服务包括: 用于建立立和交付基于于Web的IInternnet平台;综合、全面面的具有Innterneet能力的商商业应用; 强大的专业业服务,帮助助用户实施电电子商务战略略,以及设计计、定制和实实施各种电子子商务解决方方案。 .SQL是英文文Struccturedd Querry Lannguagee的缩写,意意思为结构化化查询语言。SSQL语言的的主要功能就就

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

21、5.2 OOraclee数据库简介介1、什么是Orracle数数据库oracle数数据库是一种种大型数据库库系统,一般般应用于商业业,政府部门门,它的功能能很强大,能能够处理大批批量的数据,在在网络方面也也用的非常多多。不过,一一般的中小型型企业都比较较喜欢用SQQL数据库系系统,它的操操作很简单,功功能也非常齐齐全。只是比比较oraccle数据库库而言,在处处理大量数据据方面有些不不如。2、Oraclle数据库的的发展历程(时时间可能不太太准确,但大大致差不多)1977年,LLarry Ellisson、Boob Minner和Edd Oatees等人组建建了Relaationaal软件公司

22、司(Relaationaal Sofftwaree Inc.,RSI)。他们决定定使用C语言言和SQL界界面构建一个个关系数据库库管理系统(Relattionall Dataabase Managgementt Systtem,RDDBMS),并并很快发布了了第一个版本本(仅是原型型系统)。1979年,RRSI首次向向客户发布了了产品,即第第2版。该版版本的RDBBMS可以在在装有RSXX-11操作作系统的PDDP-11机机器上运行,后后来又移植到到了DEC VAX系统统。1983年,发发布的第3个个版本中加入入了SQL语语言,而且性性能也有所提提升,其他功功能也得到增增强。与前几几个版本不同

23、同的是,这个个版本是完全全用C语言编编写的。同年年,RSI更更名为Oraacle CCorporrationn,也就是今今天的Oraacle公司司。1984年,OOraclee的第4版发发布。该版本本既支持VAAX系统,也也支持IBMM VM操作作系统。这也也是第一个加加入了读一致致性(Reaad-connsisteency)的的版本。1985年,OOraclee的第5版发发布。该版本本可称作是OOraclee发展史上的的里程碑,因因为它通过SSQL*Neet引入了客客户端/服务务器的计算机机模式,同时时它也是第一一个打破6440KB内存存限制的MSS-DOS产产品。1988年,OOracle

24、e的第6版发发布。该版本本除了改进性性能、增强序序列生成与延延迟写入(DDeferrred Wrrites)功能以外,还还引入了底层层锁。除此之之外,该版本本还加入了PPL/SQLL和热备份等等功能。这时时Oraclle已经可以以在许多平台台和操作系统统上运行。1991年,OOraclee RDBMMS的6.11版在DECC VAX平平台中引入了了Paralllel SServerr选项,很快快该选项也可可用于许多其其他平台。1992年,OOraclee 7发布。OOraclee 7在对内内存、CPUU和I/O的的利用方面作作了许多体系系结构上的变变动,这是一一个功能完整整的关系数据据库管理系

25、统统,在易用性性方面也作了了许多改进,引引入了SQLL*DBA工工具和dattabasee角色。1997年,OOraclee 8发布。OOraclee 8除了增增加许多新特特性和管理工工具以外,还还加入了对象象扩展(Obbject Extennsion)特性。2001年,OOraclee 9i rreleasse 1发布布。这是Orracle 9i的第一一个发行版,包包含RAC(Real Appliicatioon Cluuster)等新功能。2002年,OOraclee 9i rreleasse 2发布布,它在reeleasee 1的基础础上增加了集集群文件系统统(Clusster FFil

26、e SSystemm)等特性。2003年9月月,Oraccle发布了了Oraclle 10gg 这一版的的最大的特性性就是加入了了网格计算的的功能。该该版本中Orracle的的功能、稳定定性和性能的的实现都达到到了一个新的的水平。 20007年7月月11日,Oraclle发布了OOraclee 11g Orracle 11g是甲骨骨文公司300年来发布的的最重要的数数据库版本根根据用户的需需求实现了信信息生命周期期管(Infformattion ssLifeccycle Managgementt)等多项创创新。3、Oraclle 10gg的技术特点点1)网格化管理理2)自动存储管管理3)可移植

27、的集集群组建4)支持高速无无限带宽网络络5)计算资源供供应6)共振1.5.3 OOraclee 10g数据库库系统及Naavicatt的安装1、安装Oraacle 110g2、启动Oraacle 110g的方法法1)用ms-ddos启动:在开始菜单单中找“运行SQLL命令行”,在SQL后输输入连接数据据库的命令“conneect”,输入用户户名、密码,密码是不回显的。在开始菜单中找找“转至数据库库主页”,启动orracle的的企业管理器器 执行命令:seelect tablee_namee fromm userr_tablles;User_taables是是oraclle数据库自自己的一个数数

28、据词典3、安装Navvicat:安装navvicat成成功后,创建建连接,设置置OCI,具体做法是是: 1)创建建连接2)设置OCII,如果不设设置则navvicat下下的命令行等等不可用菜单toolssoptioonsOCI选定OCI后,设设置两个路径径如下:OCI libbrary的的路径:C:oracclexeappooracleeprodduct110.2.00servverBIINocii.dllSQL*Pluus的路径:C:orraclexxeappporaccleprroductt10.22.0seerverBINssqlpluus.exeeOracle安安装成功后,新新建一个用

29、户户root,用用naviccat把rooot.sqql导入数据据库1)创建用户的的方法 首先要用用systeem或syss用户登录,得得到:然后得到输入用用户信息的界界面:注意:把角色、直直接授予的系系统权限中所所有的选项都都选上。最后点击创建按按钮,完成创创建。2)对已经创建建的用户还可可以删除。3)用naviicat把rroot.ssql导入。1.6 本章知知识点总结1、数据管理技技术发展的几几个阶段:人人工管理阶段段、文件管理理阶段、数据据库管理阶段段、分布式数数据库管理、面面向对象的数数据库管理。2、DBS包括括:DBMSS、DB、DDBA等。3、数据库系统统的模式:外外模式、模式式

30、(概念模式式)、内模式式,它们构成成了“外模式/模模式”和“模式/内模模式”两个映射。4、数据模型:层次模型、网网状模型、关关系模型。5、关系模式的的表示方法:关系名(属属性名1,属属性名2,属性名名n)6、关系数据库库,建立在关关系模型基础础上,而形成成的数据库。7、几个概念:关系二维表表;元组记录录;属性字段段8、常用的数据据库管理系统统:Oraccle、 MMySQL、SQL SServerr、DB2、Syybase 、FoxPPro、ACCCESS等等等。第2章 Oraacle 110g数据库库的SQL语语言与查询2.1 SQLL语言概述 SQL(SStructtured Queryy

31、 Langguage)是是一种结构化化查询语言,简简称为SQLL。它是一种种面向数据库库的通用数据据处理语言规规范,能完成成数据查询、插插入修改删除除数据、生成成修改和删除除数据库对象象、数据库安安全控制、数数据库完整性性及数据保护护控制等。我我们的重点是是CRUD(ccreatee、reseearch、uupdatee、deleete)即增增删改查。 SQL的的优点:1)非非过程化语言言(只需告诉诉系统做什么么、而不需告告诉它怎么做做);2)统统一的语言(DDBMS为对对数据库操作作的全部任务务都统一在SSQL语言中中);3)它它是所有关系系数据库的公公共语言。2.2 Oraacle 10g

32、数据库库的数据类型型、运算符和和表达式2.2.1 简简单数据类型型1、numbeer(p, s) ,pp是数字的整整个位数,是是小数点后的的位数2、varchhar2(nn),表示可可变长度的字字符串且其最最大长度为nn,n不能超超过40000。3、char(n),表示示固定长度为为n的字符串串。4、date,表表示日期,包包括年份、月月份。5、nvarcchar2,不区分中中英文,nvarcchar2中中存的英文字字母也占两个个字节。6、ncharr,用Uiccode字符符集存储定长长的字符数据据。7、CLOB:存储4GGB单字节字字符数据。(别别用来存中文文)8、BLOB:用来存储4GB无

33、结结构的二进制制数据。9、timesstamp10、binaary_flloat11、binaary_doouble2.2.2 运运算符1、算术运算符符:+、-、*、/2、比较运算符符:=、!=()、=3、逻辑运算符符:and、oor、nott4、范围运算符符:betwweenaand、nnot beetweennand5、列表运算符符:in、nnot inn6、is、noot is2.2.3 表表达式1、算术表达式式:用算术运运算符连接的的表达式。2、关系表达式式:用比较运运算符连接的的表达式。3、逻辑表达式式:用逻辑运运算符连接的的表达式。2.3 Oraacle 110g的SELECCT查

34、询语句1)查什么;22)从哪里查查;3)需要什么条件件1、查看表结构构的命令:ddescriibe taablenaame; 或或desc tableename;2.3.1 简简单查询(sselecttfrom结结构)1、基本格式如如下 SELECCT *|字段名列表表 FROOM 表名;2、举例: 1)sellect * fromm studdent; /查查询所有行所所有列 2)查询指指定的某些列列 3)查询结结果显示时,有有它们的默认认显示规则,如如日期型和字字符型的左对对齐,数值型型的右对齐。 4)查询的的时候可以使使用算术运算算符在sellect后,及及对字段进行行四则运算。sele

35、ct studeentid,studeentnamme,stuudentaage+1 from studeent;|字符串连接接运算符 5)排重ddistinnct 6)给字段段起别名select studeentid 学号,sttudenttname 姓名,sttudenttsex 性性别 froom stuudent; 或者select studeentid as 学号号,studdentnaame ass 姓名,sstudenntsex as 性别别 fromm studdent;2.3.2 带带条件的简单单查询(seelectfromwheree结构)1、基本格式如如下 SELECCT

36、 *|字段名列表表 FROM 表表名WHERE 条件表达达式;2、具体实例 1)单条件件的查询 查询工工资高于30000元的教教工信息 sellect * fromm teaccher wwhere salarry30000 2)组合条条件的查询 查询工工资不低于33000元的的女教工信息息 sellect * fromm teaccher wwhere salarry=30000 annd sexx=女2.3.3 单单表查询的应应用1、关键字DIISTINCCT的使用查询教师表看看看有几个教研研室 2、关键字BEETWEENNAND的使用查询总工资在4000,7000之间的教工工信息sele

37、ct teachhernamme,sallary+bbonus as 总工工资 froom teaacher wheree salaary+boonus bbetweeen 40000 andd 70000;3、通配符%和和_的使用(模模糊查询) 注意:转转义字符的使使用。 likee s_% esscape :这里用到了了转义字符,表示的意思思是以“s_”开头的字符符串,而s_% 等价于于 s%select * froom sc wheree studdentidd likke s_% eescapee ; 注意:进行行模糊查询时时用likee关键字,而而不用等号=4、关键字NUULL和NO

38、OT NULLL的使用查询没有奖金的的教工信息字段名 is not nnull对null或 not nnull查询询时,不能用用等号= 而而用is5、用ORDEER BY子子句为查询结结果排序(多多字段排序)6、字段运算查查询(可以对对字段进行简简单的算术运运算,如+、-、*、/) 在navicaat的命令行行,可以使用用“set llinesiize 3000;”命令来设置置当行显示字字符的数量。7、别名的使用用 1)格式:字段名 AS 别别名 2)注意:(1)别名不改改变数据库的的值。(2)如果别名名中含有特殊殊字符(如:空格)和特特殊的要求(如如:所有字母母大写显示等等)要用双引引号“”

39、把别名引引起来。 3)举例2.3.4 多多表查询多表查询是指查查询结果要从从两个以上的的表中检索结结果,这里仅仅仅介绍一种种简单的多表表查询。查询“李寻欢”所在部门的的地址。查询“杨过”所所在部门的电电话。或者select deparrtmentttel ffrom ddeparttment wheree depaartmenntid iin (selecct deppartmeentid from teachher whhere tteacheernamee=杨过);注意:1)字符符串只能用单单引号,而不能能用双引号”,双引号号有特殊的用用途。 22)in的用用法3、分析总结: 1)注意意给

40、表起别名名。 2)seelect的的后字段名用用“表名.字段名名|表别名.字段名”表示,特别别是查询结果果中有的字段名在在from后后的表中都是相同同的,那么这这个字段名必必须指出是哪哪个表的。如如果没有这种种现象,那么么只用字段名名即可。3)SQL 标标准指定当为为表名创建别别名后,SQQL 语句的的其余部分必必须使用该别别名引用表(即即不能再使用用原始表名)。2.3.5 子子查询如果一个sellect命令令(查询1)出出现在另一个个selecct命令(查查询2)的一一个子句中,则则称查询1是是查询2的子子查询,又称称为“嵌套查询”。外层的sselectt语句称为“父查询”,内层的ssele

41、ctt语句称为“子查询”。子查询可可以嵌套多层层,子查询操操作的数据表表可以是父查查询不操作的的数据表。查询所有高于杨杨康工资的教教师信息。select * froom teaacher wheree salaary(sselectt salaary frrom teeacherr wherre teaachernname=杨康);查询出跟李寻欢欢在同一个教教研室、而且工资大大于王五的工工资的所有教教员的姓名和和工资。练习:查询与李寻欢在在同一个教研研室工作的教教师的姓名。查询不于低软件件教研室任何何一名教工工工资的教工姓姓名SELECT TEACHHERNAMME FROOM TEAAchE

42、R wheree salaary=aall(seelect salarry froom teaacher wheree stafffroomm=软件)检索已经开设课课程的部门信信息3、特点:1)子查询的结结果仅返回一一行(一个)记记录,这时可可以用算术比比较符:、=、=、 BEETWEENN.ANND. 、IN 、IS NUULL、 NOT、 AND、 OR 、子查询 ORDEER BY 字字段1, 字段2 ASC|DESC第二天2.4 Oraacle 110g单行函函数和聚合函函数 函数是是一种有0个个或多个参数数并且有一个个返回值的程程序,Oraclee的函数主要要分为两大类类:单行函数数

43、和聚合函数数(组函数)。SSQL和PLL/SQL中中自带很多类类型的函数,如如字符、数字字、日期、转转换和混合型型等多种函数数用于处理单单行数据,这这些函数统称称为单行函数数,这些函数数均可用于sselectt、wherre、ordder byy等子句中。当当需要对查询询结果的数据据行的同类信信息合并在一一起操作时,就就需要用聚合合函数来汇总总这些数据行行;oraccle提供了了基于组的多多行函数,它它们可以在sselectt或seleect的haaving子子句中使用。2.4.1 单单行函数单行函数对查询询的表或视图图的每一行返返回一个结果果行,分为:数值函数、字字符函数、日日期函数、转转换

44、函数等。单单行函数也可可以使用在uupdatee的set子子句中、innsert的的valuees子句中、ddeletee的wherre子句中等等,但重点是是用在sellect子句句。哑表:duall是oraccle提供一一个特使的表表,主要用于于测试函数。2.4.1.11 NVL函函数因为在我们的表表中经常会有有null值值出现,而nnull无法法参与其它的的运算,如ssalaryy+nulll是非法的,为为了解决这个个问题,系统统提供了NVVL函数专门门处理nulll。1)该函数的格格式:NVLL(x1,xx2)其中x1,x22都是表达式式,当x1的的值为nulll时返回xx2的值,否否则

45、返回x11的值。2)举例,找出出问题所在先看上述语句会会出现什么问问题,解决办办法如下:注意:x1、xx2的数据类类型要相匹配配。2.4.1.22 字符串函数数ASCII(cc):返回字字符c的ASSCII码值值(十进制数数)。CHR(i):返回整数ii对应的字符符。CONCAT(C1,C22):连接字字符串C1和和C2。注意一个字符串串的连接运算算符:|,如如:seleect 姓姓名:|teachhernamme froom teaacherINITCAPP(C):返返回字符串CC,并将C中中的每个单词词的第一个字字母大写,其其它字母小写写。INSTR(CC1,C2,i,j):在一个字符符串

46、中搜索指指定的字符,返返回发现指定定的字符的位位置。C1是是被搜索的字字符串,C22是搜索的字字符串,i是是搜索的开始始位置(默认认为1),jj是出现的次次数(默认为为1)例如:求“orracle trainng”中从第1个个字符开始tr第2次出现现的位置。Select instrr(oraclle traainingg,ra,1,2) fromm duall;LENGTH(C):返回回字符串C的的长度,注意意一个汉字和和一个字母的的长度都是11LOWER(CC):返回字字符串C的所所有字符为小小写。UPPER(CC):返回字字符串C的所所有字符为大大写。LPAD(C11, , C2):C1、

47、C22均为字符串串,i为整数数。在C1的的左侧用C22补足长度ii,可多次重重复;如果ii小于C1的的长度,只返返回i那么长长的C1字符符,其它的被被截去;C22的缺省值为为单空格。例如:在字符串串幸福的右边用*补足到100个字符,然然后在结果的的左边用&补足到177个字符。SQL seelect LPAD(Rpad(幸福,10,*),177,&) FROMM DUALL;说明:lpadd是左填充,rrpad是右右填充。LTRIM(CC)和RTRRIM(C):分别是删删除C的前导导空格和删除除C尾部空格格。TRIM(C):既删除CC的前导空格格又删除C尾尾部的空格。SUBSTR(strinng

48、,staart,coount):从母串sttring中中取从staart开始的的countt个字符作为为一个子串返返回。Replacee(striing,s11,s2):用s2替换换出现在sttring中中的s1字符符串。 如:selecct repplace(aabbbccddeeeaaa,aa,AA) FROOM DUAAL;TRANSLAATE(C11,C2,CC3):它是是分级替换的的,具体做法法如下:若在C1中能找找到与C2全全部相同的,就就用C3把相相应的字符全全部代替。(第第一级)结果:若在C1中能找找到与C2部部分相同的,就就用C3中与与C2对应位位置上的字符符代替(第二二级)

49、。可分分如下三种情情况:I) 若C22长度等于CC3的长度,做做对应位置字字符替换。结果:Ii)若C2长长度大于C33的,相当于于把C3的末末尾加上几个个空串直到与与C2长度一一样,然后再再做对应位置置字符替换。结果:Iii)若C22长度小于CC3的,相当当于只保留CC3前面的与与C2长度的的字符串,然然后再做对应应位置字符替替换。实际上上这种情况与与I)是一样样的。结果:2.4.1.33 数值函数1)ABS(aa):求指定定数a的绝对对值。2)EXP(nn):返回ee的n次幂。3)MOD(mm,n):返返回m除以nn的余数。4)ROUNDD(n1,nn2): nn2=0的的正整数时返返回n1

50、所保保留的小数位位数,其余的的被舍入掉;n2工龄*122作为条件。2.4.1.55 转换函数 转换函函数是在日期期、字符和数数值之间的相相互转换。to_charr(numbber/daate,formaat-moddel):按照fformatt-modeel的格式把把数值nummber或日日期datee转换为相应应的字符串。1)例如:seelect to_chhar(syysdatee,yyyyy-mm-dd) from dual;2)有关forrmat-mmodel的的说明:(1)日期的显显示格式:YYYY:4位位年份YY:两位年份份Year:年的的英文全名 如nineeteen nitye

51、eightMM:月的两位位数字Month:月月的英文全名名 如MAYYMON:英文月月的前三位简简写 如OCCTDAY:星期几几的英文全名名 如MondayyDD:2位日期期(2)数字的显显示格式:9:代表一个数数字位0:代表数字前前面补0,如如to_chhar(-11200,0000000.00)的结果:.:小数点的位位置,:标记数字位位置的逗号L:根据数据库库字符集加货货币符号 如如to_chhar(-11200,L9999.99);结果:$:给浮点数增增加$结果:To_charr函数中forrmat-mmodel固固定格式: 9代表一个数字0强迫0显示$显示美元符号L强制显示一个当当地的

52、货币符符号.显示一个小数点点,显示一个千位分分隔符号to_datee(c,formaat-moddel):c表示字符符串,forrmat-mmodel表表示一种特殊殊格式的字符符串。返回fformatt-modeel格式的字字符串c所对对应的日期。其其实该函数将将字符串c转转换为datte数据类型型。如:to_numbber(c):c表示字字符串,foormat-modell表示一种特特殊格式的字字符串。返回回formaat-moddel格式的的数字。其实实该函数将字字符串c转换换相应的数值值。2.4.2 聚聚合函数(组组函数)2.4.2.11 聚合函数数的应用1、MAX(xx):返回某某个字

53、段的所所有值中的最最大值。2、MIN(xx):返回某某个字段的所所有值中的最最小值。 例如:查查询教工中工工资最高和最最低的员工3、AVG(xx):返回指指定字段中的的平均值。注注意avg()函函数只对数值值型字段使用用,即x的的的数值类型只只能是数值型型的,如果空空值,忽略不不计。COUNT(*):返回查查询中行的数数目,*表示示返回所有的的行,用来统统计一个表中中有多少条记记录(包含有有空值的记录录)。SUM(x):返回选择列列表项目x的的数值的总和和。2.4.2.22 GROUUP BYY子句的应用用聚合函数一般是是处理那些已已经分好组的的数据,分组组可以用grroup bby子句来完完

54、成。例如:统计各教研室的的人数2、求各个教研研室中的最高高工资 2.4.2.33 HAVINNG与WHEERE关键字字的使用这两个都是条件件子句,whhere主要要与seleect搭配使使用,而haaving只只能出现在有有groupp by子句句的sql语语句中。注意意,聚合函数数不能出现wwhere子子句中。例题:1)查询教研室室工资总和超超过100000元的教研研室2)查询除了助助教外哪些教教研室的工资资总和多于88000元。2.4.2.44 ORDERR BY子句句的使用使用orderr by子句句可以对查询询结果进行排排序,其中包包括升序(aasc,缺省省值)和降序序(descc)。

55、举例: Oracle 10g集合运运算进行如下三种集集合运算的条条件:字段个个数相同、对对应列的类型型匹配。Union 并并例如:结果是两个查询询结果的并集集,若有重复复的记录,则则只取它们中中的一条。Interseect 交结果为空3、Minuss 差两个集合A、BB,A-B的的结果是从AA中去掉A与与B共同的元元素而剩余的的元素。A-B=A-AAB2.6作业统计每个班的学学生数统计每个专业的的学生数查询每个教研室室中的最低或或最高总工资资,并按总工工资降序排列列。查询每个多于11人的教研室室中最高和最最低总工资,要要求显示出教教研室名、人人数、最低工工资和最高工工资。查询至少有3人人的教研

56、室的的名称及人数数。求每个教研室的的平均工资(要要求看到教研研室名称、人人数和平均工工资)。第二天总结单行函数聚合函数:miin()、mmax()、ssum()、aavg()、ccount()等等Select查查询语句扩充充 SELLECT DISTIINCT*,collumn aliass, FROOM taable1,tablee2WHERE condditionn(s)GROUP BY coolumn HAVIING coonditiion(s) ORRDER BBY coolumn,expr,aliassASCC|DESCC;三种集合运算:unionn、inteersectt、minu

57、usOracle第第三天上午2.7深入多表表查询2.7.1 交交叉连接(广广义笛卡尔积积):1、广义笛卡尔尔积是不带连连接谓词的连连接,两个表的广广义笛卡尔积积即是两表中中元组的交叉叉乘积,其连连接的结果会会产生一些没没有意义的元元组,所以这这种运算实际际很少使用。2、举例 seelect * froom stuudent,scoree2.7.2等值值与非等值连连接查询1、等值连接:连接运算符符为 = 的的连接操作1)连接条件:.=.2)任何子句中中引用表1和和表2中同名名属性时,都都必须加表名名前缀。引用用唯一属性名名时可以省略略表名前缀。3)举例:查询询每个学生及及其选修课程程的情况。se

58、lect * froom stuudent st , scoree sc wwhere st.sttudenttid=scc.studdentidd 或select st.*,sc.* from studeent stt,scorre sc wheree st.sstudenntid=ssc.stuudentiid2、非等值连接接查询:连接接运算符不是是 = 的连接接操作1)格式:.或. BEETWEENN . AND .2)比较运算符符:、=、=、!=2.7.3自身身连接1、表与其自己己进行连接,称称为表的自身身连接。2、需要给表起起别名以示区区别,由于所所有属性名都都是同名属性性,因此必须

59、须使用别名前前缀举例:1)查询每一门门课程的先修课(即先修课的的先修课)。分析:在Couurse表中中,只有每门门课的直接先先修课信息,而而没有先修课课的先修课。要要得到这个信信息,必须先先对一门课找找到其先修课课,再按此先先修课的课程程号,查找它它的先修课程程。这就要将将Coursse表与其自自身连接。为为清楚起见,可可以为Couurse表取取两个别名,一一个是FIRRST,另一一个是SECCOND。1)查询课程的的先修课First别名名看作是有先先修课的一个个表Second看看作是一个普普通的课程表表得到如下结果:需要写的SQLL语句为:2)查询teaacher表表中各个教师师的领导者 得

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

温馨提示

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

评论

0/150

提交评论