Oracle10g数据库开发培训教程1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle10g数据库开发培训教程1
名目............................................................................................................................................. 错误!未定义书签。

第1章数据库概述.. (2)
1.1 数据库系统概述 (2)
1.1.1 信息、数据与数据库 (2)
1.1.2 数据治理技术的进展 (2)
1.1.3 数据库系统(Database System DBS)的组成 (3)
1.1.4 数据库系统的模式结构 (3)
1.1.5 数据库系统的特点 (4)
1.2 数据模型 (4)
1.3 数据描述 (5)
1.4 关系数据库 (6)
1.5 数据库治理系统 (6)
1.5.1 几个常用的数据库治理系统 (6)
1.5.2 Oracle数据库简介 (6)
1.5.3 Oracle 10g数据库系统及Navicat的安装 (7)
1.6 本章知识点总结 (9)
第2章 Oracle 10g数据库的SQL语言与查询 (10)
2.1 SQL语言概述 (10)
2.2 Oracle 10g数据库的数据类型、运算符和表达式 (10)
2.2.1 简单数据类型 (10)
2.2.2 运算符 (10)
2.2.3 表达式 (10)
2.3 Oracle 10g的SELECT查询语句 (10)
2.3.1 简单查询(select...from结构) .. (10)
2.3.2 带条件的简单查询(select...from...where...结构) (11)
2.3.3 单表查询的应用 (11)
2.3.4 多表查询 (12)
2.3.5 子查询 (12)
2.3.6 作业 (13)
第1章数据库概述
1.1 数据库系统概述
1.1.1 信息、数据与数据库
信息是一种差不多被加工为特定形式的数据,数据是信息的载体和具体表现形式,信息不随数据形式的变化而变化。

专门多人认为数据确实是数(数字组成),实际上数据的有专门多种形式:文字、数字、声音、图像等。

数据和信息时两个相互联系但又相互区别的概念,数据是信息的具体表现形式,信息时数据有意义的表现,而数据库是一个能够共享的、储备在运算机内的、有组织的数据集合。

1.1.2 数据治理技术的进展
数据治理技术的进展分为:人工治理、文件治理、数据库治理(分布式数据库治理、面向对象的数据库治理)等几个时期。

1、人工治理时期
2、文件治理时期
3、数据库治理时期
4、三个时期数据治理技术比较
1.1.3 数据库系统(Database System DBS)的组成
数据库系统由运算机硬件、数据库治理系统(DBMS)(及其开发工具)、、数据库(DB)、应用程序和用户等几部分组成。

1、硬件平台
①有足够大的内存,存放OS、DBMS的核心模块、数据缓冲区和应用程序。

②有足够大的磁盘,存放数据库,并进行数据备份。

③有较高的通道能力,以提供高速的数据传输功能。

2、软件平台
①DBMS:是数据库的建立、使用和爱护所必需的系统软件。

②OS:支持DBMS的操作系统平台。

③程序设计语言:与数据库系统有接口的程序设计语言及其编译系统,用于开发应用程序。

④开发工具与环境:为数据库系统的开发和应用提供良好的环境。

⑤应用程序:为特定应用环境而开发的数据库应用系统。

3、人员
1)数据库治理员(DataBase Administrator,简称DBA):数据库系统需要有专门的人员来监督和治理。

DBA 负责全面治理和操纵数据库系统。

具体职责包括:
①决定数据库中的信息内容和结构
②决定数据库的储备结构和存取策略
③定义数据的安全性要求和完整性约束条件
④监控数据库的使用和运行
⑤负责数据库的改进和重组重构工作
2)系统分析员
负责应用系统的需求分析和规范说明工作,要和用户以及DBA相互沟通,确定系统的硬件、软件配置,并参与数据库系统的概要设计。

3)数据库设计员
负责数据库中数据的确定、数据库各级模式的设计。

数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。

4)应用程序员
负责设计和编写数据库应用系统的程序模块,并进行调试和安装。

5)最终用户
通过数据库应用系统的用户界面使用数据库。

DBS:DBMS\DB\DBA
1.1.4 数据库系统的模式结构
数据库系统的结构由内部级、概念级、外部级三级模式组成。

1、内部级模式(内模式):最靠近物理储备器,是数据在数据库系统中的表示(即对数据的物理结构和储备方式的描述),是物理数据模型对数据的描述。

2、概念级模式(模式):间于上述两者之间。

它又称为逻辑模式,是用逻辑数据模型对一个单位的数据的描述,是数据库中的全体数据的逻辑结构和特性的描述。

3、外部级模式(外模式):又称子模式或用户模式,是数据库用户看到的数据视图。

最靠近用户,是用户和数据库的接口,设计有数据提供给用户的使用方式。

支持以上三级模式的运算机程序确实是数据库治理系统(DBMS)。

数据库的三级模式结构图如下:
4、三级模式构成了两个映射
1)外模式/模式映象
关于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。

这些映象定义通常包含在各自外模式的描述中。

当模式改变时,由数据库治理员对各个外模式/模式的映象作相应改变,能够使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。

2)模式/内模式映象
数据库中只有一个模式,也只有一个内模式,因此模式/内模式映象是唯独的,它定义了逻辑结构与储备结构之间的对应关系。

该映象定义通常包含在模式描述中。

当数据库的储备结构改变了(例如采纳了更先进的储备结构),由数据库治理员对模式/内模式映象作相应改变,能够使模式保持不变,从而保证了数据的物理独立性。

1.1.5 数据库系统的特点
1、实现数据共享、减少数据冗余
2、采纳特定的数据模型
3、具有较高的数据独立性
4、有统一的数据操纵功能
1.2 数据模型
数据模型的作用是在运算机环境中把数据逻辑地组织成为数据库,使得用户能够有效地存取和处理数据。

1、层次模型
数据结构是有序的树型结构,差不多特点是:(l)有且只有一个结点无双亲,该结点称为根结点;(2)其他结点有且只有一个双亲。

R1是根结点,R2和R3是R1的子结点,因此它们是兄弟结点。

R2、R4、R5是叶结点。

2、网状模型
网状模型的特点是:(l)承诺有一个以上的结点没有双亲;(2)结点能够有多于一个的双亲。

3、关系模型
1)关系模型中的数据在用户观点下的逻辑结构是二维表,而关系模型是建立在集合代数的基础上的。

在网状和层次模型中的联系差不多上通过指针来实现的,而在关系模型中的差不多数据结构是表格,记录之间的联系是通过各个关系模式的关键码来表达的。

以二维表格描述简单、易明白,用户只需简单查询语句就能够对数据库进行操作,并不涉及储备结构和访问技术的细节等。

2)在关系模型中,关系具有以下差不多特点:
①关系必须规范化,属性不可分割。

②在同一关系中不承诺显现相同的属性名。

③在同一关系中元组及属性的顺序能够任意。

④任意交换两个元组(属性)的位置,可不能改变关系模式。

3)每个关系都有一个关系模式,它是该关系的关系名及其全部属性名的集合,一样表示为:关系名(属性名1,属性名2,……,属性名n)
1.3 数据描述
1、运算机处理信息的过程
第一从现实世界中抽象出大量描述客观事物的信息,再对这些信息进行整理、分类和规范,进而将规范化的信息数据化,最终实现由数据库系统储备、处理。

即客观世界→信息世界→数据世界
2、实体与属性
3、实体之间的关系
1)一对一的联系(1:1),如班长与班级
2)一对多的联系(1:n),如班级与学生
3)多对多的联系(m:n),如教师与学生
1.4 关系数据库
1、关系数据库的定义
关系数据库是建立在关系模型基础上的数据库,它由一些相关的表和其它的数据库对象组成。

那个定义包含了如下几层含义:
1)建立在关系模型基础上;2)信息被存放在表(二维表)中;3)表之间是相互联系的;4)除了表之外,还有其它的数据库对象如索引、视图、储备过程等。

2、关系数据库的要紧功能和特点
1)数据定义,定义和删除数据库中的表、索引、视图等数据库对象。

2)数据操纵,实现对数据库中数据的操作,差不多的操作有查询、数据插入、数据删除和数据修改。

3)数据操纵,要紧操纵数据库的安全,包括操作权限的用户密码和储备权限等。

4)事务治理。

3、几个概念
关系←→二维表;元组←→记录;属性←→字段;实体型、实体集。

1.5 数据库治理系统
1.5.1 几个常用的数据库治理系统
ACCESS、SQL Server、FoxPro、Oracle、MySQL和Sybase等。

ACCESS 是美国Microsoft公司于1994年推出的微机数据库治理系统.它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库治理系统。

Oracle公司是全球最大的信息治理软件及服务供应商,成立于1977年,总部位于美国加州Redwood shore。

Oracle提供的完整的电子商务产品和服务包括:用于建立和交付基于Web的Internet平台;综合、全面的具有Internet能力的商业应用;强大的专业服务,关心用户实施电子商务战略,以及设计、定制和实施各种电子商务解决方案。

.
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。

SQL语言的要紧功能确实是同各种数据库建立联系,进行沟通。

按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库治理系统的标准语言。

SQL语句能够用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。

目前,绝大多数流行的关系型数据库治理系统,
最大区别:
ACCESS 的功能相对不是那么强大,要紧是开发单机版软件中经常用到;
SQL Server 是目前应用比较广泛和普遍的一款数据库,是数据库进展的一个里程碑。

Oracle的功能是比较强大的,一样用于超大型治理系统软件的建立,现在的应用范畴也差不多比较广泛。

1.5.2 Oracle数据库简介
1、什么是Oracle数据库
oracle数据库是一种大型数据库系统,一样应用于商业,政府部门,它的功能专门强大,能够处理大批量的数据,在网络方面也用的专门多。

只是,一样的中小型企业都比较喜爱用SQL数据库系统,它的操作专门简单,功能也专门齐全。

只是比较oracle数据库而言,在处理大量数据方面有些不如。

2、Oracle数据库的进展历程(时刻可能不太准确,但大致差不多)
1977年,Larry Ellison、Bob Miner和Ed Oates等人组建了Relational软件公司(Relational Software Inc.,RSI)。

他们决定使用C语言和SQL界面构建一个关系数据库治理系统(Relational Database Management System,RDBMS),并专门快公布了第一个版本(仅是原型系统)。

1979年,RSI首次向客户公布了产品,即第2版。

该版本的RDBMS能够在装有RSX-11操作系统的
PDP-11机器上运行,后来又移植到了DEC V AX系统。

1983年,公布的第3个版本中加入了SQL语言,而且性能也有所提升,其他功能也得到增强。

与前几个版本不同的是,那个版本是完全用C语言编写的。

同年,RSI更名为Oracle Corporation,也确实是今天的Oracle公司。

1984年,Oracle的第4版公布。

该版本既支持V AX系统,也支持IBM VM操作系统。

这也是第一个加入了读一致性(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 V AX平台中引入了Parallel Server选项,专门快该选项也可用于许多其他平台。

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 release 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)可移植的集群组建
4)支持高速无限带宽网络
5)运算资源供应
6)共振
1.5.3 Oracle 10g数据库系统及Navicat的安装
1、安装Oracle 10g
2、启动Oracle 10g的方法
1)用ms-dos启动:在开始菜单中找“运行SQL命令行”,
在SQL>后输入连接数据库的命令“connect”,输入用户名、密码,密码是不回显的。

2)在开始菜单中找“转至数据库主页”,启动oracle的企业治理器
3)执行命令:select table_name from user_tables;
User_tables是oracle数据库自己的一个数据词典
3、安装Navicat:安装navicat成功后,创建连接,设置OCI,具体做法是:
1)创建连接
2)设置OCI,假如不设置则navicat下的命令行等不可用
→菜单tools→options…→OCI
→选定OCI后,设置两个路径如下:
OCI library的路径:C:\oraclexe\app\oracle\product\10.2.0\server\BIN\oci.dll
SQL*Plus的路径:C:\oraclexe\app\oracle\product\10.2.0\server\BIN\sqlplus.exe
4、Oracle安装成功后,新建一个用户root,用navicat把root.sql导入数据库
1)创建用户的方法
→第一要用system或sys用户登录,得到:
→然后得到输入用户信息的界面:
注意:把角色、直截了当授予的系统权限中所有的选项都选上。

→最后点击创建按钮,完成创建。

2)对差不多创建的用户还能够删除。

3)用navicat把root.sql导入。

1.6 本章知识点总结
1、数据治理技术进展的几个时期:人工治理时期、文件治理时期、数据库治理时期、分布式数据库治理、面向对象的数据库治理。

2、DBS包括:DBMS、DB、DBA等。

3、数据库系统的模式:外模式、模式(概念模式)、内模式,它们构成了“外模式/模式”和“模式/内模式”两个映射。

4、数据模型:层次模型、网状模型、关系模型。

5、关系模式的表示方法:关系名(属性名1,属性名2,……,属性名n)
6、关系数据库,建立在关系模型基础上,而形成的数据库。

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)即增删改查。

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中存的英文字母也占两个字节。

6、nchar,用Uicode字符集储备定长的字符数据。

7、CLOB:储备<4GB单字节字符数据。

(别用来存中文)
8、BLOB:用来储备<4GB无结构的二进制数据。

9、timestamp
10、binary_float
11、binary_double
2.2.2 运算符
1、算术运算符:+、-、*、/
2、比较运算符:=、!=(<>)、<、>、<=、>=
3、逻辑运算符:and、or、not
4、范畴运算符:between…and…、not between…and…
5、列表运算符:in、not in
6、is、not is
2.2.3 表达式
1、算术表达式:用算术运算符连接的表达式。

2、关系表达式:用比较运算符连接的表达式。

3、逻辑表达式:用逻辑运算符连接的表达式。

2.3 Oracle 10g的SELECT查询语句
1)查什么;2)从哪里查;3)需要什么条件
1、查看表结构的命令:describe tablename; 或desc tablename;
2.3.1 简单查询(select…from结构)
1、差不多格式如下
SELECT {*|字段名列表} FROM 表名;
2、举例:
1)select * from student; //查询所有行所有列
2)查询指定的某些列
3)查询结果显示时,有它们的默认显示规则,如日期型和字符型的左对齐,数值型的右对齐。

4)查询的时候能够使用算术运算符在select后,及对字段进行四则运算。

select 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 带条件的简单查询(select…from…where…结构)
1、差不多格式如下
SELECT {*|字段名列表}
FROM 表名
[WHERE {条件表达式}];
2、具体实例
1)单条件的查询
查询工资高于3000元的教工信息
select * from teacher where salary>3000
2)组合条件的查询
查询工资不低于3000元的女教工信息
select * from teacher where salary>=3000 and sex='女'
2.3.3 单表查询的应用
1、关键字DISTINCT的使用
查询教师表看看有几个教研室
2、关键字BETWEEN…AND…的使用
查询总工资在[4000,7000]之间的教工信息
select teachername,salary+bonus as 总工资from teacher where salary+bonus between 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查询时,不能用等号= 而用is
5、用ORDER BY子句为查询结果排序(多字段排序)
6、字段运算查询(能够对字段进行简单的算术运算,如+、-、*、/)
在navicat的命令行,能够使用“set linesize 300;”命令来设置当行显示字符的数量。

7、别名的使用
1)格式:字段名[AS] 别名
2)注意:
(1)别名不改变数据库的值。

(2)假如别名中含有专门字符(如:空格)和专门的要求(如:所有字母大写显示等)要用双引号“”把别名引起来。

3)举例
2.3.4 多表查询
多表查询是指查询结果要从两个以上的表中检索结果,那个地点仅仅介绍一种简单的多表查询。

1、查询“李寻欢”所在部门的地址。

2、查询“杨过”所在部门的。

或者
select departmenttel from department where departmentid in
(select departmentid from teacher where teachername='杨过');
注意:1)字符串只能用单引号’’,而不能用双引号””,双引号有专门的用途。

2)in的用法
3、分析总结:
1)注意给表起别名。

2)select的后字段名用“表名.字段名|表别名.字段名”表示,专门是查询结果中有的字段名在from后的表中差不多上相同的,那么那个字段名必须指出是哪个表的。

假如没有这种现象,那么只用字段名即可。

3)SQL 标准指定当为表名创建别名后,SQL 语句的其余部分必须使用该别名引用表(即不能再使用原始表名)。

2.3.5 子查询
假如一个select命令(查询1)显现在另一个select命令(查询2)的一个子句中,则称查询1是查询2的子查询,又称为“嵌套查询”。

外层的select语句称为“父查询”,内层的select语句称为“子查询”。

子查询能够嵌套多层,子查询操作的数据表能够是父查询不操作的数据表。

1、查询所有高于杨康工资的教师信息。

select * from teacher where salary>(select salary from teacher where teachername='杨康');
2、查询出跟李寻欢在同一个教研室、而且工资大于王五的工资的所有教员的姓名和工资。

练习:
1、查询与李寻欢在同一个教研室工作的教师的姓名。

2、查询不于低软件教研室任何一名教工工资的教工姓名
SELECT TEACHERNAME FROM TEAchER where salary>=all(select salary from teacher where staffroom='软件')
3、检索差不多开设课程的部门信息
3、特点:
1)子查询的结果仅返回一行(一个)记录,这时能够用算术比较符:>、=、<、>=、<=、in等。

2)子查询的结果多于一行(多个)记录,这时要用in、some、any、all等。

3)用not in时,子查询中不能有null
2.3.6 作业
1、检索没有预选课的课程信息。

2、检索差不多开设课程的部门信息
3、检索有教工工资大于等于网络教研室教工工资的非网络教研室的名称。

4、查询不低软件教研室所有教工工资的其他教工姓名
第一天总结(Summary):
一、数据库概述中知识点
1、数据治理技术进展的几个时期:人工治理时期、文件治理时期、数据库治理时期、分布式数据库治理、面向对象的数据库治理。

2、DBS包括:DBMS、DB、DBA等。

3、数据库系统的模式:外模式、模式(概念模式)、内模式,它们构成了“外模式/模式”和“模式/内模式”两个映射。

4、数据模型:层次模型、网状模型、关系模型。

5、实体间的三种联系:1:1 、1:N、M:N
6、关系模式的表示方法:关系名(属性名1,属性名2,……,属性名n)
7、关系数据库,建立在关系模型基础上,而形成的数据库。

8、几个概念:关系←→二维表;元组←→记录;属性←→字段
9、常用的数据库治理系统:Oracle、MySQL、SQL Server、DB2、Sybase 、FoxPro、ACCESS等等。

10、oracle 10g及Navicat9的安装与使用
二、第一天select查询总结
SELECT [DISTINCT]{*,column [alias],...}
FROM table
[WHERE condition(s)]
[ORDER BY {column,expr,alias}[ASC|DESC]];
即:
SELECT
排重* 字段名别名
FROM
表名列表
WHERE
查询条件:> < <> BETWEEN...AND... 、IN 、IS NULL、NOT、AND、OR 、子查询ORDER BY
字段1, 字段2[ ASC|DESC]
翌日
2.4 Oracle 10g单行函数和聚合函数
函数是一种有0个或多个参数同时有一个返回值的程序,Oracle的函数要紧分为两大类:单行函数和聚合函数(组函数)。

SQL和PL/SQL中自带专门多类型的函数,如字符、数字、日期、转换和混合型等多种函数用于处理单行数据,这些函数统称为单行函数,这些函数均可用于select、where、order by等子句中。

当需要对查询结果的数据行的同类信息合并在一起操作时,就需要用聚合函数来汇总这些数据行;oracle 提供了基于组的多行函数,它们能够在select或select的having子句中使用。

2.4.1 单行函数
单行函数对查询的表或视图的每一行返回一个结果行,分为:数值函数、字符函数、日期函数、转换函数等。

单行函数也能够使用在update的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 字符串函数
1)ASCII(c):返回字符c的ASCII码值(十进制数)。

2)CHR(i):返回整数i对应的字符。

3)CONCAT(C1,C2):连接字符串C1和C2。

注意一个字符串的连接运算符:||,如:select '姓名:'||teachername from teacher 4)INITCAP(C):返回字符串C,并将C中的每个单词的第一个字母大写,其它字母小写。

5)INSTR(C1,C2,i,j):在一个字符串中搜索指定的字符,返回发觉指定的字符的位置。

C1是被搜索的字符串,C2是搜索的字符串,i是搜索的开始位置(默认为1),j是显现的次数(默认为1)
例如:求“oracle traing”中从第1个字符开始‘tr’第2次显现的位置。

Select instr(‘oracle training’,’ra’,1,2) from dual;
6)LENGTH(C):返回字符串C的长度,注意一个汉字和一个字母的长度差不多上1
7)LOWER(C):返回字符串C的所有字符为小写。

8)UPPER(C):返回字符串C的所有字符为大写。

9)LPAD(C1, <i>[, C2]):C1、C2均为字符串,i为整数。

在C1的左侧用C2补足长度i,可多次重复;
假如i小于C1的长度,只返回i那么长的C1字符,其它的被截去;C2的缺省值为单空格。

例如:在字符串‘幸福’的右边用‘*’补足到10个字符,然后在结果的左边用‘&’补足到17个字符。

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 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 数值函数
1)ABS(a):求指定数a的绝对值。

2)EXP(n):返回e的n次幂。

3)MOD(m,n):返回m除以n的余数。

4)ROUND(n1,n2):n2>=0的正整数时返回n1所保留的小数位数,其余的被舍入掉;n2<0的负整。

相关文档
最新文档