Oracle 10g数据库开发培训教程1.docx
《Oracle 10g数据库开发培训教程1.docx》由会员分享,可在线阅读,更多相关《Oracle 10g数据库开发培训教程1.docx(49页珍藏版)》请在冰豆网上搜索。
Oracle10g数据库开发培训教程1
目录
目录1
第1章数据库概述1
1.1数据库系统概述1
1.1.1信息、数据与数据库1
1.1.2数据管理技术的发展2
1.1.3数据库系统(DatabaseSystemDBS)的组成2
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.2Oracle数据库简介6
1.5.3Oracle10g数据库系统及Navicat的安装7
1.6本章知识点总结9
第2章Oracle10g数据库的SQL语言与查询10
2.1SQL语言概述10
2.2Oracle10g数据库的数据类型、运算符和表达式10
2.2.1简单数据类型10
2.2.2运算符10
2.2.3表达式10
2.3Oracle10g的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数据库系统(DatabaseSystemDBS)的组成
数据库系统由计算机硬件、数据库管理系统(DBMS)(及其开发工具)、、数据库(DB)、应用程序和用户等几部分组成。
1、硬件平台
①有足够大的内存,存放OS、DBMS的核心模块、数据缓冲区和应用程序。
②有足够大的磁盘,存放数据库,并进行数据备份。
③有较高的通道能力,以提供高速的数据传输功能。
2、软件平台
①DBMS:
是数据库的建立、使用和维护所必需的系统软件。
②OS:
支持DBMS的操作系统平台。
③程序设计语言:
与数据库系统有接口的程序设计语言及其编译系统,用于开发应用程序。
④开发工具与环境:
为数据库系统的开发和应用提供良好的环境。
⑤应用程序:
为特定应用环境而开发的数据库应用系统。
3、人员
1)数据库管理员(DataBaseAdministrator,简称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、SQLServer、FoxPro、Oracle、MySQL和Sybase等。
ACCESS是美国Microsoft公司于1994年推出的微机数据库管理系统.它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。
Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州Redwoodshore。
Oracle提供的完整的电子商务产品和服务包括:
用于建立和交付基于Web的Internet平台;综合、全面的具有Internet能力的商业应用;强大的专业服务,帮助用户实施电子商务战略,以及设计、定制和实施各种电子商务解决方案。
.
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,
最大区别:
ACCESS的功能相对不是那么强大,主要是开发单机版软件中经常用到;
SQLServer是目前应用比较广泛和普遍的一款数据库,是数据库发展的一个里程碑。
Oracle的功能是比较强大的,一般用于超大型管理系统软件的建立,现在的应用范围也已经比较广泛。
1.5.2Oracle数据库简介
1、什么是Oracle数据库
oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。
不过,一般的中小型企业都比较喜欢用SQL数据库系统,它的操作很简单,功能也非常齐全。
只是比较oracle数据库而言,在处理大量数据方面有些不如。
2、Oracle数据库的发展历程(时间可能不太准确,但大致差不多)
1977年,LarryEllison、BobMiner和EdOates等人组建了Relational软件公司(RelationalSoftwareInc.,RSI)。
他们决定使用C语言和SQL界面构建一个关系数据库管理系统(RelationalDatabaseManagementSystem,RDBMS),并很快发布了第一个版本(仅是原型系统)。
1979年,RSI首次向客户发布了产品,即第2版。
该版本的RDBMS可以在装有RSX-11操作系统的PDP-11机器上运行,后来又移植到了DECVAX系统。
1983年,发布的第3个版本中加入了SQL语言,而且性能也有所提升,其他功能也得到增强。
与前几个版本不同的是,这个版本是完全用C语言编写的。
同年,RSI更名为OracleCorporation,也就是今天的Oracle公司。
1984年,Oracle的第4版发布。
该版本既支持VAX系统,也支持IBMVM操作系统。
这也是第一个加入了读一致性(Read-consistency)的版本。
1985年,Oracle的第5版发布。
该版本可称作是Oracle发展史上的里程碑,因为它通过SQL*Net引入了客户端/服务器的计算机模式,同时它也是第一个打破640KB内存限制的MS-DOS产品。
1988年,Oracle的第6版发布。
该版本除了改进性能、增强序列生成与延迟写入(DeferredWrites)功能以外,还引入了底层锁。
除此之外,该版本还加入了PL/SQL和热备份等功能。
这时Oracle已经可以在许多平台和操作系统上运行。
1991年,OracleRDBMS的6.1版在DECVAX平台中引入了ParallelServer选项,很快该选项也可用于许多其他平台。
1992年,Oracle7发布。
Oracle7在对内存、CPU和I/O的利用方面作了许多体系结构上的变动,这是一个功能完整的关系数据库管理系统,在易用性方面也作了许多改进,引入了SQL*DBA工具和database角色。
1997年,Oracle8发布。
Oracle8除了增加许多新特性和管理工具以外,还加入了对象扩展(ObjectExtension)特性。
2001年,Oracle9irelease1发布。
这是Oracle9i的第一个发行版,包含RAC(RealApplicationCluster)等新功能。
2002年,Oracle9irelease2发布,它在release1的基础上增加了集群文件系统(ClusterFileSystem)等特性。
2003年9月,Oracle发布了Oracle10g
这一版的最大的特性就是加入了网格计算的功能。
。
该版本中Oracle的功能、稳定性和性能的实现都达到了一个新的水平。
2007年7月11日,Oracle发布了Oracle11g
Oracle11g是甲骨文公司30年来发布的最重要的数据库版本根据用户的需求实现了信息生命周期管(InformationsLifecycleManagement)等多项创新。
3、Oracle10g的技术特点
1)网格化管理
2)自动存储管理
3)可移植的集群组建
4)支持高速无限带宽网络
5)计算资源供应
6)共振
1.5.3Oracle10g数据库系统及Navicat的安装
1、安装Oracle10g
2、启动Oracle10g的方法
1)用ms-dos启动:
在开始菜单中找“运行SQL命令行”,
在SQL>后输入连接数据库的命令“connect”,输入用户名、密码,密码是不回显的。
2)在开始菜单中找“转至数据库主页”,启动oracle的企业管理器
3)执行命令:
selecttable_namefromuser_tables;
User_tables是oracle数据库自己的一个数据词典
3、安装Navicat:
安装navicat成功后,创建连接,设置OCI,具体做法是:
1)创建连接
2)设置OCI,如果不设置则navicat下的命令行等不可用
菜单toolsoptions…OCI
选定OCI后,设置两个路径如下:
OCIlibrary的路径:
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、SQLServer、DB2、Sybase、FoxPro、ACCESS等等。
第2章Oracle10g数据库的SQL语言与查询
2.1SQL语言概述
SQL(StructuredQueryLanguage)是一种结构化查询语言,简称为SQL。
它是一种面向数据库的通用数据处理语言规范,能完成数据查询、插入修改删除数据、生成修改和删除数据库对象、数据库安全控制、数据库完整性及数据保护控制等。
我们的重点是CRUD(create、research、update、delete)即增删改查。
SQL的优点:
1)非过程化语言(只需告诉系统做什么、而不需告诉它怎么做);2)统一的语言(DBMS为对数据库操作的全部任务都统一在SQL语言中);3)它是所有关系数据库的公共语言。
2.2Oracle10g数据库的数据类型、运算符和表达式
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…、notbetween…and…
5、列表运算符:
in、notin
6、is、notis
2.2.3表达式
1、算术表达式:
用算术运算符连接的表达式。
2、关系表达式:
用比较运算符连接的表达式。
3、逻辑表达式:
用逻辑运算符连接的表达式。
2.3Oracle10g的SELECT查询语句
1)查什么;2)从哪里查;3)需要什么条件
1、查看表结构的命令:
describetablename;或desctablename;
2.3.1简单查询(select…from结构)
1、基本格式如下
SELECT{*|字段名列表}FROM表名;
2、举例:
1)select*fromstudent;//查询所有行所有列
2)查询指定的某些列
3)查询结果显示时,有它们的默认显示规则,如日期型和字符型的左对齐,数值型的右对齐。
4)查询的时候可以使用算术运算符在select后,及对字段进行四则运算。
selectstudentid,studentname,studentage+1fromstudent;
||字符串连接运算符
5)排重distinct
6)给字段起别名
selectstudentid学号,studentname姓名,studentsex性别fromstudent;
或者
selectstudentidas学号,studentnameas姓名,studentsexas性别fromstudent;
2.3.2带条件的简单查询(select…from…where…结构)
1、基本格式如下
SELECT{*|字段名列表}
FROM表名
[WHERE{条件表达式}];
2、具体实例
1)单条件的查询
查询工资高于3000元的教工信息
select*fromteacherwheresalary>3000
2)组合条件的查询
查询工资不低于3000元的女教工信息
select*fromteacherwheresalary>=3000andsex='女'
2.3.3单表查询的应用
1、关键字DISTINCT的使用
查询教师表看看有几个教研室
2、关键字BETWEEN…AND…的使用
查询总工资在[4000,7000]之间的教工信息
selectteachername,salary+bonusas总工资fromteacherwheresalary+bonusbetween4000and7000;
3、通配符%和_的使用(模糊查询)
注意:
转义字符的使用。
like's\_%'escape'\':
这里用到了转义字符,表示的意思是以“s_”开头的字符串,而s_%等价于s%
select*fromscwherestudentidlike's\_%'escape'\';
注意:
进行模糊查询时用like关键字,而不用等号=
4、关键字NULL和NOTNULL的使用
查询没有奖金的教工信息
字段名isnotnull
对null或notnull查询时,不能用等号=而用is
5、用ORDERBY子句为查询结果排序(多字段排序)
6、字段运算查询(可以对字段进行简单的算术运算,如+、-、*、/)
在navicat的命令行,可以使用“setlinesize300;”命令来设置当行显示字符的数量。
7、别名的使用
1)格式:
字段名[AS]别名
2)注意:
(1)别名不改变数据库的值。
(2)如果别名中含有特殊字符(如:
空格)和特殊的要求(如:
所有字母大写显示等)要用双引号“”把别名引起来。
3)举例
2.3.4多表查询
多表查询是指查询结果要从两个以上的表中检索结果,这里仅仅介绍一种简单的多表查询。
1、查询“李寻欢”所在部门的地址。
2、查询“杨过”所在部门的电话。
或者
selectdepartmenttelfromdepartmentwheredepartmentidin
(selectdepartmentidfromteacherwhereteachername='杨过');
注意:
1)字符串只能用单引号’’,而不能用双引号””,双引号有特殊的用途。
2)in的用法
3、分析总结:
1)注意给表起别名。
2)select的后字段名用“表名.字段名|表别名.字段名”表示,特别是查询结果中有的字段名在from后的表中都是相同的,那么这个字段名必须指出是哪个表的。
如果没有这种现象,那么只用字段名即可。
3)SQL标准指定当为表名创建别名后,SQL语句的其余部分必须使用该别名引用表(即不能再使用原始表名)。
2.3.5子查询
如果一个select命令(查询1)出现在另一个select命令(查询2)的一个子句中,则称查询1是查询2的子查询,又称为“嵌套查询”。
外层的select语句称为“父查询”,内层的select语句称为“子查询”。
子查询可以嵌套多层,子查询操作的数据表可以是父查询不操作的数据表。
1、查询所有高于杨康工资的教师信息。
select*fromteacherwheresalary>(selectsalaryfromteacherwhereteachername='杨康');