Oracle数据库经典学习教程.docx
- 文档编号:10090539
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:135
- 大小:2.10MB
Oracle数据库经典学习教程.docx
《Oracle数据库经典学习教程.docx》由会员分享,可在线阅读,更多相关《Oracle数据库经典学习教程.docx(135页珍藏版)》请在冰豆网上搜索。
Oracle数据库经典学习教程
第1章
走进Oracle
主要容
✓Oracle安装
✓Oracle创建用户和角色
✓客户端Oracle服务器
Oracle简介
在第一学期我们已经接触过关系型数据库SQLServer,对数据库、表、记录、表的增删改查操作等这些基本的概念已经了解。
Oracle是基于对象的关系型数据库,Oracle也是用表的形式对数据存储和管理,并且在Oracle的操作中添加了一些面向对象的思想。
Oracle数据库是Oracle(中文名称叫甲骨文)公司的核心产品,Oracle数据库是一个适合于大中型企业的数据库管理系统。
在所有的数据库管理系统中(比如:
微软的SQLServer,IBM的DB2等),Oracle的主要用户涉及面非常广,包括:
银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等。
Oracle产品是免费的,可以在Oracle官方上下载到安装包,另一方面Oracle服务是收费的。
Oracle公司成立以来,从最初的数据库版本到Oracle7、Oracle8i、Oracle9i,Oracle10g到Oracle11g,虽然每一个版本之间的操作都存在一定的差别,但是Oracle对数据的操作基本上都遵循SQL标准。
因此对Oracle开发来说版本之间的差别不大。
很多人没有学习Oracle就开始发怵,因为人们在误解Oracle,认为Oracle太难学了,认为Oracle不是一般人用的数据库,其实任何数据库对应用程序研发人员来说,都是小异,因为目前多数数据库都支持标准的SQL。
在Oracle这本书中,我们能学习到:
ØOracle的安装
ØOracle数据管理
Ø常用子查询及常用函数
ØPL/SQL编程
ØOracle基本管理
由于在第一学期已经接触了SQLServer,Oracle数据库的概念不是很难,主要是实践,因此在本书的学习中,认真的完成上机练习是学习好本书的关键。
接下来我们先从Oracle安装开始,接触一些Oracle中基本的概念。
Oracle安装
Oracle数据库产品是免费的,我们可以从Oracle的官方(.oracle.)下载到程序安装包,Oracle在Windows下的安装非常方便,安装开始后,一直点击安装程序的“下一步”即可。
1.下载Oracle10g后,解压到一个文件夹下,单击“setup.exe”文件即可启动安装界面。
如下图:
图1Oracle安装启动界面
Oracle主目录位置就是Oracle准备安装的位置,称为“Oracle_Home”,一般Oracle根据当前计算机的硬盘大小默认给出一个合适的位置。
Oracle安装时可以只安装Oracle软件,然后单独创建数据库,也可以在上图中选中“创建启动数据库”复选框,在安装Oracle产品时,同时创建一个数据库,对初学者来说,推荐这样安装。
填写全局数据库名,以及管理员的密码。
全局数据库名是数据库在服务器网络中的唯一标识。
2.点击“下一步”,就会出现如下图容,开始对Oracle服务器进行环境检查,主要查看服务器是否符合Oracle安装的条件,比如操作系统是否支持、系统存是否符合Oracle安装的最低要求等。
图2Oracle安装前环境检查
3.Oracle检查通过后,单击“下一步”,就会列出所有安装Oracle过程中的默认选项。
图3Oracle默认安装设置
4.单击“安装”按钮,进入安装界面,这一过程经历时间比较长,根据计算机的性能不同有很大差别。
图4Oracle安装
5.上图完成后,进入了各种Oracle工具的安装阶段,包括网络配置向导,iSQL*plus等(后面课程中讲解)。
如下图所示:
图5Oracle各种工具的安装
6.接下来自动启动DBCA(DatabaseConfigurationAssistant)进入创建默认数据库阶段。
图6DBCA下安装数据库
Oracle中的数据库主要是指存放数据的文件,这些文件在Oracle安装完成后,在计算机硬盘上都能找到,包括数据文件、控制文件和数据库日志文件。
数据库创建后会有一系列为该数据库提供服务的存空间和后台进程,称为该数据库的实例。
每一个数据库至少会有一个实例为其服务。
实例中的存结构称为系统全局区(SGA),系统会根据当前计算机系统的性能给SGA分配非常可观的存空间。
Oracle创建数据库不能像SQLServer那样用一个简单的CREATEDATABASE命令就能完成,在创建数据库的过程中还需要配置各种参数。
虽然有DBCA工具向导,但是仍然需要进行比较麻烦的配置。
虽然一个Oracle数据库服务器中可以安装多个数据库,但是一个数据库需要占用非常大的存空间,因此一般一个服务器只安装一个数据库。
每一个数据库可以有很多用户,不同的用户拥有自己的数据库对象(比如:
数据库表),一个用户如果访问其他用户的数据库对象,必须由对方用户授予一定的权限。
不同的用户创建的表,只能被当前用户访问。
因此在Oracle开发中,不同的应用程序只需使用不同的用户访问即可。
7.数据库创建完毕后,需要设置数据库的默认用户。
Oracle中为管理员预置了两个用户分别是SYS和SYSTEM。
同时Oracle为程序测试提供了一个普通用户scott,口令管理中,可以对数据库用户设置密码,设置是否锁定。
Oracle客户端使用用户名和密码登录Oracle系统后才能对数据库操作。
图7DBCA下的口令管理
图8为system,sys,scott用户设置密码
默认的用户中,SYS和SYSTEM用户是没有锁定的,安装成功后可以直接使用,SCOTT用户默认为锁定状态,因此不能直接使用,需要把SCOTT用户设定为非锁定状态才能正常使用。
这一步完成后,Oracle系统安装成功。
Oracle数据库中,默认情况下,所有系统的数据,SQL关键字等都是大写的,在操作过程中,Oracle会自动把这些容转换为大写,因此用户操作时不需考虑大小写问题,一般情况下,为了良好的程序风格,程序中建议关键字用大写,非关键字可以使用小写。
Oracle客户端工具
Oracle服务器安装成功后,就可以通过客户端工具连接Oracle服务器了,可以到Oracle官方下载Oracle专用的客户端软件,大多客户端工具都是基于Oracle客户端软件的。
接下来介绍几种常用的Oracle客户端工具。
✧SQL*Plus工具
该工具是Oracle系统默认安装下,自带的一个客户端工具。
在Windows命令行中输入“sqlplusw”命令,就能够启动该工具了。
图9SQL*Plus工具
输入用户名和密码后,如果SQL*Plus与数据库服务器在同一台计算机上,并且当前服务器下只有一个数据库实例,那么“主机字符串”可以不用填写。
SQL*Plus工具虽然是Oracle自带的工具,但是在现实开发中,基于该环境对开发不方便,因此很少使用。
SQL*Plus连接成功后就如图所示:
图10SQL*Plus工具登录后
✧SQL*Plus命令行工具
该命令行工具,提供了与数据库交互的能力和维护数据库的能力,包括了Oracle自带的SQL*Plus工具的全部功能,在Oracle管理中经常使用。
在命令行中输入:
“sqlplus/nolog”即可启动该工具。
如下图:
图11启动SQL*Plus命令行工具
输入“sqlplus/nolog”命令后,只是启动了一个客户端进程,并没有与服务器连接,连接到Oracle服务器的命令是:
conn用户名/密码as连接身份服务器连接字符串
说明:
1.连接身份:
表示该用户连接后拥有的权限。
Øsysdba:
即数据库管理员,权限包括:
打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库。
sys用户必须用sysdba身份才能登录,system用户可以用普通身份登录。
Øsysyoper:
即数据库操作员,权限包括:
打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。
Ønormal:
即普通用户,权限只有查询某些数据表的数据。
默认的身份是normal用户。
2.客户端工具可以根据“服务器连接字符串”对服务器进行连接,有了连接字符串后客户端就可以像操作本机一样操作远程数据库,因此“服务器连接字符串”的配置也叫本地网络服务配置,如果SQL*Plus工具启动在服务器上,并且服务器上只有一个数据库实例的情况下,连接字符串可以缺省,在连接字符串中包括连接服务器的协议,服务器的地址,服务器的端口等设置,Oracle服务名等,该配置文件在Oracle安装目录下的:
network/ADMIN/tnsnames.ora。
该文件是一个文本文件,用记事本打开后如下所示:
图12服务器连接字符串配置
✧配置本地网络服务名
本地网络服务名,即客户端与服务器的连接字符串,本地网络服务名是客户端的配置,Oracle客户端安装后,可以使用客户端自带的网络配置向导(NetConfigurationAssistant)进行配置:
1.启动NetConfigurationAssistant。
选择“本地Net服务名配置”选项。
如下图所示:
图13启动NetConfigurationAssistant
2.选择“下一步”,本步骤可以对本地网络服务名进行添加,删除,测试是否正常连接等操作,选择“添加”选项。
图14NetConfigurationAssistant
3.点击“下一步”,填写服务名,该服务名就是Oracle安装时(图1),为数据库取的全局数据库名。
图15服务名配置
4.点击“下一步”,选择服务需要的协议,默认是TCP协议。
推荐使用默认的TCP协议。
图16选择协议
5.点击“下一步”,输入主机名,主机名可以是计算机名称,也可以是一个IP地址,主机如果是本机,可以使用本机计算机名称、“localhost”、“127.0.0.1”、或者本机的IP地址。
图17输入主机名和端口
6.单击“下一步”,选择“是,进行测试”选项。
进入下图界面。
图18测试成功
在测试时,默认采用的用户名和密码是system/manager进行测试,如果用户system的密码不是“manager”,有可能测试通不过,更改登录后,输入正确的用户名和密码后再进行测试即可。
7.测试成功后,单击“下一步”,出现如下界面,这一步是为本地网络服务命名,即图12中的服务器连接字符串名。
图19为网络服务名命名
点击“下一步”,配置就完成了,进入tnsnames.ora文件中查看,就出现了如图12中的容。
✧PL/SQLDeveloper工具
在实际Oracle开发中,经常使用一个功能强大的第三方工具:
“PL/SQLDeveloper”工具。
PL/SQLDeveloper基本上可以实现Oracle开发中的任何操作。
它运行在客户端时必须先安装Oracle客户端,并且通过网络配置向导配置网络服务名后才能正常与服务器连接。
图20PL/SQLDeveloper
Oracle服务
Oracle在windows中安装完成后,会安装很多服务,下面介绍几个主要的服务。
图21Oracle服务
ØOracleService+服务名,该服务是数据库启动的基础,只有该服务启动了,Oracle数据库才能正常启动。
这是必须启动的服务。
ØOracleOraDb10g_home1TNSListener,该服务是服务器端为客户端提供的监听服务,只有该服务在服务器上正常启动,客户端才能连接到服务器。
该监听服务接收客户端发出的请求,然后将请求传递给数据库服务器。
一旦建立了连接,客户端和数据库服务器就能直接通信了。
ØOracleOraDb10g_home1iSQL*Plus,该服务提供了用浏览器对数据库中数据操作的方式。
该服务启动后,就可以使用浏览器进行远程登录并进行数据库操作了。
如下图所示:
图22iSQL*Plus
ØOracleDBConsole+服务名,Oracle10g中的一个新服务。
在Oracle9i之前,Oracle官方提供了一个基于图形界面的企业管理器(EM),从Oracle10g开始,Oracle提供了一个基于B/S的企业管理器,在操作系统的命令行中输入命令:
emctlstartdbconsole,就可以启动OracleDbConsole服务,如下图所示:
图23EM服务的启动
服务启动之后,就可以在浏览器中输入上图中进入EM的地址,使用B/S方式管理Oracle服务器。
Oracle启动和关闭
OracleService启动动后,就可以对数据库进行管理了,Oracle的启动和关闭是最基本的命令,在SQL*Plus中,启动Oracle必须是sys用户,命令格式是:
startupopen
图24Oracle服务启动
Oracle服务关闭用命令:
shutdownimmediate
图25Oracle服务关闭
Oracle用户和权限
Oracle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在Oracle中非常重要。
Oracle的用户可以用CREATEUSER命令来创建。
其语法是:
语法结构:
创建用户
CREATEUSER用户名IDENTIFIEDBY口令[ACCOUNTLOCK|UNLOCK]
语法解析:
LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态。
锁定的用户无常的登录进行数据库操作。
代码演示:
创建用户
SQL>CREATEUSERjerry
2IDENTIFIEDBYtom
3ACCOUNTUNLOCK;
Oracle在SQL*Plus中的命令以分号(;)结尾,代表命令完毕并执行,系统同时会把该命令保存在缓存中,缓存中只保存最近执行过的命令,如果重新执行缓存中的命令,直接使用左斜杠符号(/)。
如果命令不以分号结尾,该命令只是写入缓存保存起来,但并不执行。
尽管用户成功创建,但是还不能正常的登录Oracle数据库系统,因为该用户还没有任何权限。
如果用户能够正常登录,至少需要CREATESESSION系统权限。
Oracle用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。
系统权限比如:
CREATESESSION,CREATETABLE等,拥有系统权限的用户,允许拥有相应的系统操作。
数据库对象权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应的操作。
还有一个概念就是数据库角色(role),数据库角色就是若干个系统权限的集合。
下面介绍几个常用角色:
ØCONNECT角色,主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTrole。
CONNECT是使用Oracle的简单权限,拥有CONNECT角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话)。
ØRESOURCE角色,更可靠和正式的数据库用户可以授予RESOURCErole。
RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。
ØDBA角色,DBArole拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。
用户SYSTEM拥有DBA角色。
一般情况下,一个普通的用户(如SCOTT),拥有CONNECT和RESOURCE两个角色即可进行常规的数据库开发工作。
可以把某个权限授予某个角色,可以把权限、角色授予某个用户。
系统权限只能由DBA用户授权,对象权限由拥有该对象的用户授权,授权语法是:
语法结构:
授权
GRANT角色|权限TO用户(角色)
代码演示:
授权
SQL>GRANTCONNECTTOjerry;
授权成功。
SQL>GRANTRESOURCETOjerry;
授权成功。
SQL>
语法结构:
其他操作
//回收权限
REVOKE角色|权限FROM用户(角色)
//修改用户的密码
ALTERUSER用户名IDENTIFIEDBY新密码
//修改用户处于锁定(非锁定)状态
ALTERUSER用户名ACCOUNTLOCK|UNLOCK
本章总结
ØOracle是基于对象的关系型数据库,Oracle产品免费,服务收费。
ØOracle安装后默认会有两个管理员用户(system,sys)和一个普通用户Scott。
ØSql*plus是Oracle管理和数据操作的客户端工具。
Ø客户端服务器前,服务器要启动监听服务,并且客户端工具要安装Oracle客户端,并且在客户端要建立本地网络服务名。
ØOracle服务和监听启动后才能对数据库进行操作。
Ø用startup命令启动数据库,用shutdown命令关闭数据库。
ØOracle的角色包括了一系列系统权限和普通对象权限,可以把权限授权给角色,把权限或者角色授权给用户。
本章练习
1.描述Oracle安装过程中的关键点。
2.描述创建本地网络服务名的步骤。
3.描述Oracle主要服务的作用。
4.Oracle使用什么命令才能启动和关闭。
5.什么是Oracle权限和角色?
他们的关系是什么?
6.创建一个用户,并授权CONNECT和RESOURCE。
章节知识结构图
第2章
SQL数据操作和查询
主要容
✓Oracle数据类型
✓SQL建表和约束
✓SQL对数据增删改
✓SQL查询
✓Oracle伪列
1.SQL简介
在第一学期的SQLServer学习中,已经知道,SQL是结构化查询语言(StructuredQueryLanguage),专门用于数据存取、数据更新及数据库管理等操作。
并且已经学习了用SQL语句对数据库的表进行增删改查的操作。
在Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端。
OracleSQL语句由如下命令组成:
Ø数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DROP(删除)命令等。
Ø数据操纵语言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令、SELECT…FORUPDATE(查询)等。
Ø数据查询语言(DQL),包括基本查询语句、OrderBy子句、GroupBy子句等。
Ø事务控制语言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
Ø数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。
目前主流的数据库产品(比如:
SQLServer、Oracle)都支持标准的SQL语句。
数据定义语言,表的增删改操作,数据的简单查询,事务的提交和回滚,权限的授权和撤销等,Oracle与SQLServer在操作上基本一致。
Oracle数据类型
Oracle数据库的核心是表,表中的列使用到的常见数据类型如下:
类型
含义
CHAR(length)
存储固定长度的字符串。
参数length指定了长度,如果存储的字符串长度小于length,用空格填充。
默认长度是1,最长不超过2000字节。
VARCHAR2(length)
存储可变长度的字符串。
length指定了该字符串的最大长度。
默认长度是1,最长不超过4000字符。
NUMBER(p,s)
既可以存储浮点数,也可以存储整数,p表示数字的最大位数(如果是小数包括整数部分和小数部分和小数点,p默认是38为),s是指小数位数。
DATE
存储日期和时间,存储纪元、4位年、月、日、时、分、秒,存储时间从公元前4712年1月1日到公元后4712年12月31日。
TIMESTAMP
不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。
CLOB
存储大的文本,比如存储非结构化的XML文档
BLOB
存储二进制对象,如图形、视频、声音等。
表1Oracle的部分数据类型
对应NUMBER类型的示例:
格式
输入的数字
实际的存储
NUMBER
1234.567
1234.567
NUMBER(6,2)
123.4567
123.46
NUMBER(4,2)
12345.67
输入的数字超过了所指定的精度,数据库不能存储
表2Number示例
对于日期类型,可以使用sysdate置函数可以获取当前的系统日期和时间,返回DATE类型,用systimestamp函数可以返回当前日期、时间和时区。
图1sysdate和sysTimestamp
Oracle的查询中,必须使用“select列…from表”的完整语法,当查询单行函数的时候,from后面使用DUAL表,dual表在系统中只有一行一列,该表在输出单行函数时为了select…from的语法完整性而使用。
创建表和约束
Oracle创建表同SQLServer一样,使用CREATETABLE命令来完成。
创建约束则使用如下命令:
语法格式:
ALTERTABLE命令
ALTERTABLE表名ADDCONSTRAINT约束名约束容。
不论创建表还是约束,与SQLServer基本相同,注意:
在Oracle中default是一个值,而SQLServer中default是一个约束,因此Oracle的default设置可以在建表的时候创建。
案例1:
创建一个学生信息(INFOS)表和约束
代码演示:
Oracle创建表和约束
CREATETABLEINFOS
(
STUIDVARCHAR2(7)NOTNULL,--学号学号=‘S’+班号+2位序号
STUNAMEVARCHAR2(10)NOTNULL,--
GENDERVARCHAR2
(2)NOTNULL,--性别
AGENUMBER
(2)NOTNULL,--年龄
SEATNUMBER
(2)NOTNULL,--座号
ENROLLDATEDATE,--入学时间
STUADDRESSVARCHAR2(50)DEFAULT'地址不详',--住址
CLASSNOVARCHAR2(4)NOTNULL--班号班号=学期序号+班级序号
)
/①
ALTERTABLEINFOSADDCONSTRAINTPK_INFOSPRIMARYKEY(STUID)②
/
ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_GENDER
CHECK(GENDER='男'ORGENDER='女')③
/
ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_SEAT
CHECK(SEAT>=0ANDSEAT<=50)④
/
ALTERTABLEINFOSADDCONSTRAIN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 经典 学习 教程