欢迎光临
免费的PDF电子书下载网站

Oracle教程(第2版) PDF下载

编辑推荐

Oracle是目前*流行的关系型数据库管理系统之一,广泛应用于信息系统管理、企业数据处理、Internet、电子商务网站等领域。本书以当前流行Oracle 11g(中文版)为平台,先介绍数据库基础,然后系统介绍Oracle11g主要功能,共12章。包括创建数据库、创建表、操作表记录、数据库的查询和视图、索引与数据完整性、PL/SQL编程、存储过程和触发器、高级数据类型、备份与恢复、系统安全管理、事务锁闪回和Undo表空间、同义词链接快照和序列等内容。采用DBCA创建数据库、SQL Developer界面操作工具和SQL*Plus命令。界面操作和命令结合,以命令操作为主。第14章为实验和练习,与教程紧密配套,在结合完成本书的部分实例,主要完成思考和练习,基本上包含了Oracle 11g主要内容。并在此基础上介绍流行平台上开发Oracle数据库应用系统。包括Visual Basic.NET、Visual C#、、ASP.NET、PHP和Java EE。综合应用实践数据准备不但简单总结了Oracle的主要命令,而且为后面数据库应用开发准备了基本条件。不同平台操作同样的数据库,实现同样功能,给读者带来了极大的方便。每个平台都介绍了连接数据库的基本知识,操作Oracle数据库的主要方法,并且构成了一个小的应用系统,网上提供源代码和数据库免费下载,很容易让读者模仿和掌握开发Oracle数据库应用系统。本教程不仅适合教学,也适合Oracle的各类培训和用Oracle编程开发应用程序的用户学习和参考。本教程免费提供下载教学课件、综合应用实习源文件和有关数据库。下载网址为http://www.tup.com.cn。 ;

内容简介

本书以当前流行的Oracle 11g(中文版)为平台,主要介绍Oracle基础以及如何在流行平台上开发Oracle数据库应用系统。Oracle基础部分首先介绍数据库基础,然后系统介绍Oracle 11g的主要功能。本书采用DBCA创建数据库、SQL Developer界面操作工具和SQL*Plus命令。实验和练习与教程紧密结合完成本书的部分实例,并给出思考和练习,基本上包含了Oracle 11g的主要内容。在上述基础上介绍如何在流行平台上开发Oracle数据库应用系统,流行平台包括Visual Basic.NET、Visual C#、ASP.NET、PHP和Java EE。综合应用实践数据准备不但简单总结了Oracle的主要命令,而且为后面的数据库应用开发打下了基础。不同平台操作同样的数据库,实现同样的功能,这给读者带来了极大的方便。 本书可作为大学本科、高职高专有关课程的教材,也可供广大数据库应用开发人员使用或参考。

作者简介

暂无

Oracle教程(第2版) PDF下载

目录

目录

 ;第1章数据库的基本概念1

1.1数据库1

1.1.1数据库、数据库管理系统和数据库系统1

1.1.2数据模型1

1.1.3关系型数据库语言4

1.2数据库设计4

1.2.1概念结构设计4

1.2.2逻辑结构设计6

1.2.3物理结构设计7

1.3数据库应用系统7

1.3.1C/S架构的应用系统8

1.3.2B/S架构的应用系统8

第2章数据库的基本结构和安装10

 ;

2.1Oracle数据库的基本结构10

2.1.1内部结构10

2.1.2外部结构12

2.1.3数据库实例13

2.2Oracle 11g安装16

2.3Oracle 11g数据库工具20

第3章界面创建和操作数据库25

3.1使用数据库配置向导创建数据库25

3.2SQL Developer操作数据库31

3.2.1表结构和数据类型31

3.2.2表数据操作37

3.2.3执行SQL命令40

3.3表空间40

3.3.1创建表空间41

3.3.2管理表空间43Oracle教程(第2版)目录3.3.3删除表空间44

第4章命令操作数据库表46

4.1创建表结构46

4.1.1创建表46

4.1.2修改表49

4.1.3删除表52

4.2操作表记录52

4.2.1插入记录52

4.2.2删除记录56

4.2.3修改记录57

第5章数据库的查询和视图60

5.1数据库的查询60

5.1.1选择列60

5.1.2选择行64

5.1.3查询对象71

5.1.4连接72

5.1.5统计汇总分组75

5.1.6排序79

5.1.7合并80

5.2数据库视图81

5.2.1创建视图81

5.2.2查询视图84

5.2.3更新视图85

5.2.4修改视图的定义87

5.2.5删除视图88

5.3含替换变量的查询88

5.3.1&;替换变量88

5.3.2&;&;替换变量90

5.3.3变量定义91

第7章索引与数据完整性93

6.1索引93

6.1.1索引的分类93

6.1.2使用索引的原则94

6.1.3创建索引95

6.1.4维护索引98

6.1.5删除索引99

6.2数据完整性100

6.2.1数据完整性的分类100

6.2.2域完整性的实现102

6.2.3实体完整性的实现105

6.2.4参照完整性的实现109

第7章PL/SQL编程113

7.1PL/SQL概述113

7.1.1PL/SQL的组成113

7.1.2PL/SQL的特点115

7.1.3PL/SQL的开发和运行环境116

7.2PL/SQL字符集116

7.2.1合法字符116

7.2.2运算符117

7.2.3其他符号119

7.3PL/SQL变量、常量和数据类型119

7.3.1变量119

7.3.2常量121

7.3.3常用数据类型122

7.3.4对象类型122

7.3.5数据类型转换124

7.4PL/SQL基本程序结构和语句124

7.4.1PL/SQL程序块125

7.4.2条件结构126

7.4.3循环结构129

7.4.4选择和跳转语句131

7.4.5异常133

7.5系统内置函数137

7.6用户定义函数141

7.6.1创建函数141

7.6.2调用函数144

7.6.3删除函数144

7.7游标145

7.7.1显式游标145

7.7.2隐式游标147

7.7.3游标FOR循环148

7.7.4游标变量150

7.8包152

7.8.1包的创建152

7.8.2包的初始化155

7.8.3重载156

7.8.4Oracle 11g内置包157

7.9集合157

7.9.1联合数组158

7.9.2嵌套表159

7.9.3可变数组160

7.9.4集合的属性和方法161

第8章存储过程和触发器165

8.1存储过程165

8.1.1存储过程的创建165

8.1.2存储过程的调用167

8.1.3存储过程的修改169

8.1.4存储过程的删除170

8.2触发器170

8.2.1命令创建触发器171

8.2.2界面创建触发器176

8.2.3启用和禁用触发器177

8.2.4触发器的删除177

第9章高级数据类型178

9.1Oracle数据库与大对象数据178

9.1.1大对象数据类型178

9.1.2Oracle数据库中导入大对象数据179

9.2Oracle数据库与XML181

9.2.1XML概述182

9.2.2Oracle XML DB概述184

9.2.3Oracle数据库中导入XML数据185

9.2.4XQuery的基本用法187

第10章备份和恢复192

10.1备份/恢复192

10.1.1备份概述192

10.1.2恢复195

10.2导出/导入196

10.2.1导出196

10.2.2导入198

10.3脱机备份202

10.4联机备份203

10.4.1以ARCHIVELOG方式运行数据库203

10.4.2执行数据库联机备份204

10.5数据泵205

10.5.1数据泵概述205

10.5.2EXPDP导出205

10.5.3IMPDP导入207

第11章系统安全管理209

11.1用户209

11.1.1创建用户209

11.1.2管理用户215

11.2权限管理216

11.2.1权限概述216

11.2.2系统权限管理217

11.2.3对象权限管理223

11.2.4安全特性224

11.3角色管理226

11.3.1角色概述226

11.3.2创建用户角色227

11.3.3管理用户角色228

11.4概要文件和数据字典视图229

11.4.1创建概要文件229

11.4.2修改概要文件231

11.4.3数据字典视图231

11.5审计234

11.5.1登录审计234

11.5.2操作审计235

11.5.3对象审计236

11.5.4权限审计237

第12章事务、锁、闪回和Undo表空间239

12.1事务239

12.1.1事务的概念239

12.1.2事务处理240

12.1.3自治事务244

12.2锁246

12.2.1锁机制和死锁247

12.2.2锁的类型247

12.2.3表锁和事务锁248

12.3闪回操作249

12.3.1基本概念249

12.3.2查询闪回250

12.3.3表闪回251

12.3.4删除闪回253

12.3.5数据库闪回255

12.3.6归档闪回259

12.4Undo表空间260

12.4.1自动Undo管理261

12.4.2Undo表空间的优点261

12.4.3Undo表空间管理参数261

12.4.4创建和管理Undo表空间262

第13章同义词、链接、快照和序列265

13.1同义词265

13.1.1创建同义词265

13.1.2使用同义词266

13.1.3删除同义词267

13.2数据库链接268

13.2.1创建数据库链接268

13.2.2使用数据库链接269

13.2.3删除数据库链接270

13.3快照271

13.3.1创建快照271

13.3.2修改快照275

13.3.3删除快照276

13.4序列277

13.4.1创建序列277

13.4.2修改序列279

13.4.3删除序列279

第14章实验和练习280

14.1实验1创建数据库和表280

14.1.1界面创建数据库和表280

14.1.2界面操作表记录280

14.1.3操作表空间281

14.2实验2创建数据库和表281

14.2.1命令创建表结构281

14.2.2命令创建学生表(xsb)记录281

14.2.3命令创建课程表(kcb)和成绩表(cjb)记录282

14.3实验3数据库的查询和视图282

14.3.1数据库的查询282

14.3.2数据库视图283

14.3.3含替换变量的查询283

14.4实验4索引和数据完整性284

14.4.1索引284

14.4.2数据完整性284

14.5实验5PL/SQL编程285

14.6实验6存储过程和触发器285

14.6.1存储过程285

14.6.2触发器286

14.7实验7高级数据类型286

14.8实验8系统安全管理287

第15章综合应用实践数据准备288

15.1数据库与基本表288

15.2视图289

15.3触发器与完整性约束290

15.4存储过程291

15.5综合应用实习功能292

第16章Visual Basic.NET/Oracle 11g学生成绩管理系统293

16.1Visual Basic.NET环境的使用293

16.1.1切换到Visual Basic.NET开发环境293

16.1.2创建Visual Basic.NET项目296

16.1.3Visual Basic.NET连接Oracle296

16.2学生成绩管理系统的实现302

16.2.1主窗体设计302

16.2.2学生信息查询303

16.2.3学生信息管理307

16.2.4学生成绩录入312

第17章Visual C#/Oracle 11g学生成绩管理系统317

17.1ADO.NET模型317

17.1.1ADO.NET模型简介317

17.1.2重定目标到.NET 4319

17.2Visual C#操作Oracle数据库320

17.2.1连接数据库320

17.2.2执行SQL命令320

17.2.3使用OracleDataReader对象访问数据323

17.2.4使用DataSet对象访问数据324

17.2.5执行存储过程325

17.3使用Visual C#开发学生成绩管理系统326

17.3.1创建学生成绩管理系统326

17.3.2父窗体设计328

17.3.3学生信息查询330

17.3.4学生信息管理334

17.3.5学生成绩录入340

第18章ASP.NET(C#)/Oracle 11g学生成绩管理系统346

18.1使用ASP.NET操作Oracle数据库346

18.1.1将数据库连接字符串写入配置文件346

18.1.2操作Oracle数据库349

18.2使用ASP.NET开发学生成绩管理系统350

18.2.1创建学生成绩管理网站350

18.2.2设计母版页352

18.2.3设计显示照片页面354

18.2.4学生信息查询355

18.2.5学生信息管理363

18.2.6学生成绩录入369

第19章PHP(Apache)/Oracle 11g学生成绩管理系统376

19.1开发环境的搭建376

19.1.1Apache的下载与安装376

19.1.2PHP的安装与配置379

19.1.3Eclipse开发工具381

19.1.4PHP连接Oracle 11g385

19.2PHP操作Oracle数据库388

19.2.1连接数据库388

19.2.2执行PL/SQL命令389

19.2.3访问数据390

19.2.4执行存储过程392

19.2.5插入图片393

19.3学生成绩管理系统的实现393

19.3.1主程序界面设计393

19.3.2学生信息查询395

19.3.3学生信息管理400

19.3.4学生成绩录入406

第20章Java EE(Struts 2)/Oracle 11g学生成绩管理系统411

20.1认识Struts 2411

20.2Java EE开发平台搭建412

20.3基于Struts 2的架构设计424

20.4设计系统主界面426

20.5Java EE应用访问Oracle430

20.6学生信息录入435

20.7学生信息查询、修改和删除439

20.8学生成绩录入453

附录AXSCJ数据库样本数据459

前沿

前言

 ;Oracle是目前最流行的关系型数据库管理系统之一,广泛应用于信息系统管理、企业数据处理、Internet和电子商务网站等领域。

本书以当前流行的Oracle 11g(中文版)为平台,首先第1章介绍数据库基础,然后第2~13章系统地介绍Oracle 11g的主要功能,包括:创建数据库,创建表,操作表记录,数据库的查询和视图,索引与数据完整性,PL/SQL编程,存储过程和触发器,高级数据类型,备份与恢复,系统安全管理,事务、锁、闪回和Undo表空间,以及同义词、链接、快照和序列等内容。

本书采用DBCA创建数据库、SQL Developer界面操作工具和SQL*Plus命令。界面操作和命令相结合,以命令操作为主。第14章实验和练习与教程紧密结合完成本书的部分实例,并且完成思考和练习,基本包含了Oracle 11g的主要内容。

在上述基础上介绍如何在流行平台上开发Oracle数据库应用系统,流行平台包括Visual Basic.NET、Visual C#、ASP.NET、PHP和Java EE。第15章综合应用实践数据准备不但简单总结了Oracle的主要命令,而且为后面数据库应用开发准备了基本条件,打下了良好基础。第16~20章不同平台操作同样的数据库,实现同样的功能,这给读者带来了极大的方便。每个平台都介绍了连接数据库的基本知识,操作Oracle数据库的主要方法,并且构成了一个小的应用系统。网上免费提供源代码和数据库下载,很容易让读者模仿和掌握如何开发Oracle数据库应用系统。

本书不仅适合作为高等学校的教材,也适合作为Oracle的各类培训用书,还可供用Oracle开发应用程序的用户学习和参考。

本教程免费提供教学课件、综合应用实习源文件和有关数据库,下载网址为http://www.tup.com.cn。

本书由东南大学周怡君编写,南京师范大学郑阿奇主编。参加本套丛书编写的还有丁有和、顾韵华、陶卫冬、刘启芬、刘博宇、刘建、郑进、孙德荣、周何骏、周怡明、刘忠等。

由于作者水平有限,不当之处在所难免,恳请读者批评指正。

 ;编者

2018年1月Oracle教程(第2版)前言

免费在线读

第3章界面创建和操作数据库在Oracle 11g环境下,操作数据库有两种方式: 一种是通过图形界面管理工具;另一种是通过命令方式。本章主要介绍如何通过Oracle 11g服务器组件以图形界面方式创建数据库。3.1使用数据库配置向导创建数据库在Oracle 11g中,以界面方式创建数据库主要使用数据库配置向导(Database Configuration Assistant,DBCA)来完成。下面使用DBCA创建学生成绩管理数据库XSCJ,步骤如下。(1) 启动DBCA,出现“欢迎使用”界面,如图3.1所示,单击“下一步”按钮进入创建数据库的向导。图3.1“欢迎使用”界面Oracle教程(第2版)第3章界面创建和操作数据库(2) 在“操作”窗口中,用户可以选择要执行的操作,这里选中“创建数据库”选项,如图3.2所示,单击“下一步”按钮。图3.2“操作”窗口(3) 在“数据库模板”窗口中,选择相应选项后单击“显示详细资料”按钮就可查看该数据库模板的各种信息。这里选择“一般用途或事务处理”选项,如图3.3所示,单击“下一步”按钮。图3.3“数据库模板”窗口(4) 在“数据库标识”窗口中输入“全局数据库名”和“SID”,如图3.4所示,单击“下一步”按钮。图3.4“数据库标识”窗口说明: SID是数据库实例的唯一标识符,创建系统服务和操作数据库时都要用到。SID在同一数据库服务器中必须是唯一的。(5) 在“管理选项”窗口中可以选择“配置Enterprise Manager”企业管理器或者“配置Database Control以进行本地管理”来管理本地数据库,这里保持默认设置,如图3.5所示,单击“下一步”按钮。图3.5“管理选项”窗口(6) 在“数据库身份证明”窗口中,将所有账户设置为同一管理口令(Mm123456) ,如图3.6所示,单击“下一步”按钮。图3.6“数据库身份证明”窗口(7) 在“数据库文件所在位置”窗口中,选择“所有数据库文件使用公共位置”,单击“浏览”按钮,选择数据库文件的存放路径,如图3.7所示,单击“下一步”按钮。图3.7“数据库文件所在位置”窗口(8) 在“恢复配置”窗口中,采取默认的配置,单击“下一步”按钮继续。(9) 在“数据库内容”窗口中,勾选“示例方案”,如图3.8所示,这样就可以在学习的过程中参考标准设置,也可以了解基础的数据库创建方法和SQL语言。如果有SQL脚本,还可以在这一步加载,系统会根据脚本在这个数据库中创建用户、表空间、表、权限等。但要注意,加载SQL脚本的先后顺序一定要正确。这里暂不加载脚本,直接单击“下一步”按钮。图3.8“数据库内容”窗口(10) 在“初始化参数”和“数据库存储”窗口中也保持默认配置,两次单击“下一步”按钮。(11) 在“创建选项”窗口中,选择“创建数据库”选项,如图3.9所示,单击“完成”按钮,之后会弹出确认创建的对话框,单击“确定”按钮开始创建数据库。图3.9创建数据库(12) 创建数据库期间显示的创建进度窗口如图3.10所示,过程较为漫长,读者要耐心等待。图3.10创建进度窗口(13) 创建数据库完毕后,系统会弹出窗口显示相关的提示信息,如图3.11所示。需要在这一步解锁SCOTT、SYSTEM、SYS账户并设置其口令,单击窗口中的“口令管理”按钮,弹出“口令管理”对话框。图3.11解锁账户并设置口令找到以上的3个用户账户,将“是否锁定账户?”一栏里的√去掉,口令均设为Mm123456,该口令用于后面登录和操作数据库,请读者务必牢记,单击“确定”按钮返回后再单击“退出”按钮。至此,所有步骤都已全部完成。现在,系统服务中应该已经有SID为XSCJ的服务选项并已设置为“自动”启动,服务正在运行,如图3.12所示。访问XSCJ数据库前,必须保证已经启动了OracleOraDb11g_home1TNSListener和OracleServiceXSCJ两个系统服务。图3.12运行XSCJ数据库所必需的服务3.2SQL Developer操作数据库
3.2.1表结构和数据类型1. 表表是Oracle中最主要的数据库对象,每个数据库都包含了若干个表。表是用来存储数据的一种逻辑结构,由行和列组成,故也称为二维表。表是日常工作和生活中经常使用的一种表示数据及其关系的形式,表3.1是用来表示学生信息的一个学生表。表3.1学生表(XSB)学号姓名性别出生时间专业总学分备注151101王林男19970210计算机50151103王燕女19961006计算机50151108林一帆男19960805计算机52已提前修完一门课151202王林男19960129通信工程40有一门课不及格,待补考151204马琳琳女19960210通信工程42每个表都要有一个名字以标识该表,如表3.1的名字是XSB,它共有7列,每一列也都有一个名字称为列名(一般就用标题作为列名),描述了学生某一方面的属性。表由若干行组成,第一行为各列的标题,其余各行都是数据。关系数据库使用表(即关系)来表示实体及其联系。表包含下列概念。(1) 表结构: 每个表都包含一组固定的列,而列由数据类型和长度两部分组成,以描述该表所代表的实体的属性。(2) 记录: 每个表包含了若干行数据,它们是表的“值”,其中的一行称为一个记录,因此,表是记录的有限集合。(3) 字段: 每个记录由若干个数据项构成,将构成记录的数据项称为字段。例如表3.1中的XSB,其表结构为(学号,姓名,性别,出生时间,专业,总学分,备注),包含7个字段,由5个记录组成。(4) 关键字: 若表中记录的某个字段或字段组合能唯一标识记录,则称该字段(字段组合)为候选关键字(Candidate key)。若一个表有多个候选关键字,则选定其中一个为主关键字(Primary key),也称为主键。当一个表仅有唯一候选关键字时,该候选关键字就是主关键字。这里的主关键字与第1章中介绍的主码所起的作用相同,都用来唯一标识记录行。例如,在XSB表中,两个及以上记录的姓名、性别、出生时间、专业、总学分和备注这6个字段的值都有可能相同,唯独“学号”字段的值对表中所有记录来说一定不同,即通过“学号”字段可将表中的不同记录区分开,故“学号”是唯一的候选关键字,也是主关键字。2. 数据类型在设计表的列时,必须为其指定数据类型,它决定了该列数据的取值、范围和存储格式。列的数据类型可以是Oracle提供的系统数据类型,其中主要的类型列于表3.2中。除了表中所列之外,Oracle还提供可作为ANSI标准数据类型的替代类型。对于ANSI的CHARACTER及CHAR,使用Oracle的CHAR类型;对于ANSI的CHARACTER VARYING及CHARVARYING,使用Oracle的VARCHAR2类型;对于ANSI的NUMERIC、DECIMAL、DEC、INTEGER、INT和SMALLINT类型,使用Oracle的NUMBER类型。用户还可以创建自己的抽象数据类型,也可以使用特定的REF数据类型,这些REF类型引用数据库其他地方的行对象。表3.2Oracle提供的主要数据类型数据类型及格式描述CHAR[(<;长度>; [BYTE|CHAR])]固定长度字符域,最大长度可为2000B。BYTE和CHAR关键字表示长度单位是字节还是字符,默认为BYTENCHAR[(<;长度>;)]多字节字符集的固定长度字符域,长度随字符集而定,最多为2000字符或2000BVARCHAR2(<;长度>;[BYTE|CHAR])可变长度字符域,最大长度可达4000字符NVARCHAR2[(长度>;)]多字节字符集的可变长度字符域,长度随字符集而定,最多为4000字符或4000BDATE用于存储全部日期的固定长度(7B)字符域,时间作为日期的一部分存储其中。除非通过设置NLS_DATE_FORMAT参数来取代日期格式,否则查询时,日期以DDMONRR格式表示TIMESTAMP[(<;位数>;)]用亚秒的粒度存储一个日期和时间。参数是亚秒粒度的位数,默认为6,范围为0~9续表数据类型及格式描述TIMESTAMP[(<;位数>;)] WITHTIME ZONE通过另外存储一个时区偏差来扩展TIMESTAMP数据类型,这个时区偏差定义本地时区与UTC之间的差值TIMESTAMP[(<;位数>;)] WITHLOCAL TIME ZONE通过另外存储一个时区偏差来扩展TIMESTAMP数据类型,该类型不存储时区偏差,但存储时间作为数据库时区的标准形式,时间信息将从本地时区转换到数据库时区INTERVAL YEAR [(<;年的位数>;)] ;TO MONTH以年和月的形式存储一段时间,年的位数默认为2INTERVAL DAY [(<;天的最大位数>;)] TO SECOND[(<;秒部分小数点右边的位数>;)]以天、时、分和秒的形式存储一段时间,天部分所要求的最大位数默认为2。秒部分所要求的小数点右边的位数默认为6NUMBER[(<;总位数>;[, <;小数点右边的位数>;])]可变长度数值列,允许值为0、正数和负数。总位数默认为38,小数点右边的位数默认为0FLOAT[(<;数值位数>;)]浮点型数值列LONG可变长度字符域,最大长度可到2GBRAW(<;长度>;)表示二进制数据的可变长度字符域,最长为2000BLONG RAW表示二进制数据的可变长度字符域,最长为2GBBLOB二进制大对象,最大长度为4GBCLOB字符大对象,最大长度为4GBNCLOB多字节字符集的CLOB数据类型,最大长度为4GBBFILE外部二进制文件,大小由操作系统决定ROWID表示RowID的二进制数据,数值为10BUROWID[(<;长度>;)]用于数据寻址的二进制数据,最大长度为4000BBINARY_FLOAT表示浮点类型,比NUMBER效率更高,32bBINARY_DOUBLE表示双精度数字类型,64b3. 表结构设计创建表的实质就是定义表结构以及设置表和列的属性。在创建表之前,先要确定表的名字、表的属性,同时确定表所包含的列名、列的数据类型、长度、是否可为空值、约束条件、默认值设置、规则以及所需索引、哪些列是主键、哪些列是外键等属性,这些属性构成表结构。这里以本书要使用到的学生成绩管理系统的3个表,即学生表(表名为XSB)、课程表(表名为KCB)和成绩表(表名为CJB)为例,介绍如何设计表的结构。本书基础部分使用的学生表(XSB)包含的列有学号、姓名、性别、出生时间、专业、总学分、备注。为了便于理解,书中使用中文的列名(实际开发应使用英文字母表示列名)。“学号”列: 是学生的学号,其值有一定的意义,例如“151101”中的“15”表示该学生所在年级,“11”表示所属班级,“01”表示该学生在班级中的序号,故“学号”列的数据类型是6位的定长字符型。“姓名”列: 记录学生的姓名,一般不超过4个中文字符,所以可以用8位定长字符型数据。“性别”列: 有“男”“女”两种取值,用2位定长字符型数据,默认是“男”。“出生时间”列: 是日期时间类型数据,列的数据类型定为DATE。“专业”列: 为12位定长字符型数据。“总学分”列: 是整数型数据,列的数据类型定为NUMBER,长度为2(值为0~100,默认是0)。“备注”列: 需要存放学生的备注信息,备注信息的内容为0~200个字,所以应该使用VARCHAR2类型。在XSB表中,只有“学号”列能唯一标识一个学生,所以将该列设为主键。最终设计出XSB的表结构如表3.3所示。表3.3XSB的表结构列名数据类型是否可空默认值说明学号CHAR(6)×无主键姓名CHAR(8)×无性别CHAR(2)ד男”出生时间DATE×无专业CHAR(12)√无总学分NUMBER(2)√00≤总学分<;100备注VARCHAR2(200)√无当然,如果要包含学生的“照片”列,可以使用BLOB数据类型;要包含学生的“联系方式”列,可以使用XML类型。参照XSB表结构的设计方法,同样可以设计出其他两个表的结构,如表3.4所示是KCB的表结构,表3.5是CJB的表结构。表3.4KCB的表结构列名数据类型是否可空默认值说明课程号CHAR(3)×无主键课程名CHAR(16)×无开课学期NUMBER(1)√1只能为1~8学时NUMBER(2)√0学分NUMBER(1)×0表3.5CJB的表结构列名数据类型是否可空默认值说明学号CHAR(6)×无主键课程号CHAR(3)×无主键成绩NUMBER(2)√无4. 创建表用Oracle 11g自带的SQL Developer工具可以十分灵活地创建表。这里以创建XSB表为例,操作的步骤如下。(1) 启动SQL Developer,在“连接”节点下打开数据库连接myorcl(已创建)。右击“表”节点,选择“新建表”菜单项。(2) 进入“创建表”窗口,在“名称”栏中填写表名XSB,在“表”选项卡的“列名”“类型”“大小”“非空”“主键”栏中分别填入(选择)XSB表中“学号”列的列名、数据类型、长度、非空性和是否为主键等信息,完成后单击“添加列”按钮输入下一列,直到输入完所有的列为止,如图3.13所示。(3) 输入完最后一列的信息后,选中右上角的“高级”复选框,这时会显示出更多的表选项,如表类型、列的默认值、约束条件、外键和存储选项等,如图3.14所示。例如,要设置默认值,可以在“列属性”选项页中该列的“默认”栏中输入默认值。这里暂不对其他选项进行设置,单击“确定”按钮完成表的创建。说明: 在之前的数据类型选择中没有CHAR类型可选,在“高级”选项窗口中可以将原来的VARCHAR2类型修改为CHAR类型。图3.13创建XSB表图3.14”创建表”中的“高级”选项窗口(4) 选择表属性,可以看到当前表使用的表空间、存储参数。用户可以先用CREATE TABLESPACE命令创建表空间,然后在创建表时更换成自己创建的表空间。5. 修改表使用SQL Developer工具修改表的方法很简单。XSB表创建完成后,在主界面的“表”目录下可以找到该表。右击XSB表选择“编辑”菜单项,进入“编辑表”窗口(类似图3.14的界面),在该窗口中的“列”选项页右侧单击按钮可以添加新列,单击按钮可以删除列,在“列属性”选项页的各栏中可以修改列的属性。表的主键列不能直接删除,要删除必须先取消主键。单击窗口左侧“主键”选项,在窗口右边的“所选列”栏中会显示已被设为主键的列,如图3.15所示。双击该列即可取消主键,如果要设某一列为主键,在“可用列”栏中双击该列或单击按钮即可添加该列为主键。图3.15设置(取消)主键6. 删除表以删除XSB表为例,在“表”目录下右击XSB表选择“表”菜单下的“删除”子菜单项,如图3.16所示,之后弹出“删除”对话框,选中“级联约束条件”复选框,单击“应用”按钮,弹出表已删除的提示消息,单击“确定”按钮即可。注意,实际操作时不要删除。图3.16删除表3.2.2表数据操作创建数据库和表后,需要对表中的数据进行操作。对表中的数据操作包括插入、删除和修改,可以直接在SQL Developer中插入、删除和修改数据。下面以前面所创建的XSCJ数据库中的XSB表为例,说明操作表数据的方法。1. 插入记录首先,启动SQL Developer,打开myorcl连接(需要输入SCOTT用户口令),展开“表”目录,单击XSB表,在右边窗口中单击“数据”选项卡标签,切换到表数据窗口,如图3.17所示。在此窗口中,表中的记录按行显示,每个记录占一行,因为此时表中尚没有数据,故只能看到一行列标题。图3.17表数据窗口单击(插入行)按钮,表中将增加一个新行,在新行中双击一列空白处后输入数据,一行数据输完后单击表数据窗口左边的行号,即选中该行,使之成为当前行。说明: 在输入“出生时间”列数据时,Oracle 11g默认的日期格式为“DDMM月YY”,例如,日期“19970210”应该输入“102月97”。为能使用我们所习惯的输入方式,这里先要修改一下数据库默认的日期格式,在SQL Developer命令窗口中执行如下语句:ALTER SESSIONSET NLS_DATE_FORMAT="YYYYMMDD";注意: 该语句只能在当前会话中起作用,在下一次再打开SQL Developer窗口时,还需要重新执行该语句。输入完一行数据后,单击(提交)按钮将数据保存到数据库中,同时下方的“Data Editor  日志”子窗口列出用于插入数据的INSERT语句,如图3.18所示。如果保存成功,还会显示“提交成功”信息;如果保存出错,则显示错误信息。接着再单击“插入行”按钮录入下一行,直到全部数据录完为止。说明: 读者可按上述方法往XSB表中插入几条记录做测试,样本数据请参考本书附录A。图3.18插入记录2. 修改记录修改记录的方法与插入类似,在“数据”选项页找到要修改的记录所在行,修改后该行的行号前会出现一个号,如图3.19所示,更改完成单击“提交”按钮保存修改的数据。图3.19修改记录3. 删除记录如果要删除一行记录,选中该行,单击(删除所选行)按钮,之后该行的行号前会出现一个  号,如图3.20所示,单击“提交”按钮确认删除。图3.20删除记录4. 撤销操作如果需要撤销之前对表中记录所做的操作,只需在单击“提交”按钮之前单击(回退)按钮即可,如图3.21所示为撤销上一步的删除操作。图3.21撤销对记录的操作参考附录中的样本数据,录入到学生表(XSB)表,如图3.22所示。图3.22录入XSB表的样本数据3.2.3执行SQL命令使用SQL Developer不仅可以图形界面方式操作数据库表中的记录,还可直接编辑和运行SQL语句。启动SQL Developer,单击工具栏按钮的右下箭头选择myorcl,界面上将出现命令编辑区,在其中输入要运行的SQL语句如下:SELECT  FROM XSB输完命令后单击窗口上方的或按钮即可执行该SQL语句。XSB表中输入的所有记录内容都会显示出来。3.3表空间表空间由数据文件组成,这些数据文件是数据库实际存放数据的地方,数据库的所有系统数据和用户数据都必须放在数据文件中。每一个数据库创建的时候,系统都会默认地为它创建一个SYSTEM表空间以存储系统信息,故一个数据库至少有一个表空间(SYSTEM)。一般情况下,用户数据应该存放在单独的表空间中,所以必须学会创建和使用自己的表空间。3.3.1创建表空间创建表空间使用CREATE TABLESPACE语句,创建的用户必须拥有CREATE TABLESPACE系统权限。语法格式为:CREATE TABLESPACE <;表空间名>;DATAFILE<;文件路径>;/<;文件名>; [SIZE <;文件大小>; [K|M]] [REUSE][AUTOEXTEND [OFF|ON [NEXT <;磁盘空间大小>; [K|M]][MAXSIZE [UMLIMITED|<;最大磁盘空间大小>; [K|M]]]][MINMUM EXTENT <;数字值>;[K|M]][DEFAULT <;存储参数>;][ONLINE|OFFLINE][LOGGING|NOLOGGING][PERMANENT|TEMPORARY][EXTENT MANAGEMENT [DICTIONARY|LOCAL [AUTOALLOCATE|UNIFORM [SIZE <;数字值>;[K|M]]]]]说明:(1) DATAFILE子句: 用于为表空间创建数据文件,格式与CREATE DATABASE语句中的DATAFILE子句相同。当使用关键字REUSE时,表示若该文件存在,则清除该文件再重新建立该文件;如该文件不存在,则建立新文件。(2) AUTOEXTEND: 用于指定是否禁止或允许自动扩展数据文件。若选择OFF,则禁止自动扩展数据文件;若选择ON,则允许自动扩展数据文件。NEXT指定当需要更多盘区时分配给数据文件的磁盘空间。(3) MAXSIZE: 指定允许分配给数据文件的最大磁盘空间。其中,UNLIMITED表示对分配给数据文件的磁盘空间没有设置限制。(4) MINMUM EXTENT: 指定最小的长度,默认为操作系统和数据库块确定。(5) ONLINE和OFFLINE: ONLINE表示在创建表空间之后,使授权访问该表空间的用户立即可用该表空间;OFFLINE表示在创建表空间之后使该表空间不可用,默认为ONLINE。(6) DEFAULT: 为在该表空间创建的全部对象指定默认的存储参数。其中,<;存储参数>;的语法格式如下:<;存储参数>;::=STORAGE(INITIAL<;第一个区的大小>;[K|M]NEXT<;下一个区的大小>;[K|M]MINEXTENTS<;区的最小个数>;|UNLIMITEDMAXEXTENTS<;区的最大个数>;PCTINCREASE<;数字值>;FREELISTS<;空闲列表数量>;FREELIST GROUPS<;空闲列表组数量>;)INITIAL指定对象(段)的第一个区的大小,单位为KB或MB,默认值是5个数据块的大小;NEXT指定下一个区以及后续区的大小,单位为KB或MB,最小值是1个数据块的大小;MINEXTENTS指定创建对象(段)时就应该分配的区的最小个数,默认为1;MAXEXTENTS指定可以为一个对象分配的区的最大个数,该参数最小值是MINEXTENTS;PCTINCREASE指定第3个区以及后续区在前面区的基础之上增加的百分比;FREELISTS指定表、簇或索引的每个空闲列表组的空闲列表数量;FREELIST GROUP指定表、簇或索引的空闲列表组的数量。在Oracle 11g中,DEFAULT STORAGE子句对于存储参数的设置只在数据字典管理的表空间中有效,在本地化管理的表空间中,虽然可以使用该子句,但已经不再起作用。(7) LOGGING/NOLOGGING: 指定日志属性,它表示将来的表、索引等是否需要进行日志处理。默认值为LOGGING。(8) PERMANENT: 指定表空间,将用于保存永久对象,这是默认设置。(9) TEMPORARY: 指定表空间,将用于保存临时对象。(10) EXTENT MANAGEMENT: 指定如何管理表空间的盘区。(11) DICTIONARY: 指定使用字典表来管理表空间,这是默认设置。(12) LOCAL: 指定本地管理表空间。(13) AUTOALLOCATE: 指定表空间由系统管理,用户不能指定盘区尺寸。(14) UNIFORM: 指定使用SIZE字节的统一盘区来管理表空间。默认的SIZE为1MB。如果既没指定AUTOALLOCATE又没指定UNIFORM,那么默认为AUTOALLOCATE。注意: 如果指定了LOCAL,就不能指定DEFAULT <;存储参数>;和TEMPORARY。【例3.1】创建大小为50MB的表空间TEST,禁止自动扩展数据文件。CREATE TABLESPACETESTLOGGING ;DATAFILE E:\app\Administrator\oradata\XSCJ\TEST01.DBF SIZE 50MREUSE AUTOEXTEND OFF;执行结果如图3.23所示。图3.23例3.1执行结果【例3.2】创建表空间DATA,允许自动扩展数据文件。CREATE TABLESPACEDATALOGGINGDATAFILE E:\app\Administrator\oradata\XSCJ\DATA01.DBF SIZE 50M ;REUSE AUTOEXTENDON NEXT 10M MAXSIZE 200MEXTENT MANAGEMENT LOCAL;执行结果如图3.24所示。图3.24例3.2执行结果由图可见,本例中的表空间只有一个初始大小为50MB的数据文件。当这个50MB的数据文件填满而其中的对象又需要另外的空间时,数据文件按10MB大小进行自动扩展。这个扩展根据需要一直进行下去,直到文件已达到200MB为止,这是该文件所能达到的最大尺寸。3.3.2管理表空间利用ALTER TABLESPACE命令可以修改现有的表空间或它的一个或多个数据文件。可以为数据库中每一个数据文件指定各自的存储扩展参数值,Oracle 11g会在自动扩展数据文件时使用这些参数。语法格式为:ALTER TABLESPACE<;表空间名>;[ADD DATAFILE|TEMPFILE  ;<;路径>;/<;文件名>; [SIZE<;文件大小>;[K|M]] ;[REUSE][AUTOEXTEND [OFF|ON [NEXT<;磁盘空间大小>; [K|M]]]][MAXSIZE [UNLIMITED|<;最大磁盘空间大小>;[K|M]]][RENAME DATAFILE <;路径>;/<;文件名>,...n TO <路径>/<新文件名>\,...n][DEFAULT STORAGE<存储参数>][ONLINE|OFFLINE [NORMAL|TEMPORARY|IMMEDIATE]][LOGGING|NOLOGGING][READ ONLY|WRITE][PERMANENT][TEMPORARY]说明:(1) ADD DATAFILE|TEMPFILE: 向表空间添加指定的数据文件或临时文件。(2) RENAME DATAFILE: 对一个或多个表空间的数据文件重命名。在重命名数据文件之前要使表空间脱机。(3) READ ONLY: 表明表空间上不允许进一步写操作。该子句在现有的事务全部提交或回滚后才生效,使表空间变成只读。(4) READ WRITE: 表明在先前只读表空间上允许写操作。其他参数请参照CREATE TABLESPACE的参数和关键字说明。【例3.3】通过ALTER TABLESPACE命令把一个新的数据文件添加到DATA表空间,并指定AUTOEXTEND ON和 MAXSIZE为300MB。ALTER TABLESPACE DATAADD DATAFILEE:\app\Administrator\oradata\XSCJ\DATA02.DBF SIZE 50M REUSE AUTOEXTENDON NEXT 50M MAXSIZE 500M;注意: 尽管可以设置MAXSIZE UNLIMITED,但应规定一个文件的最大尺寸值。否则,使用磁盘设备上全部可用空间的事务将造成数据库故障。执行结果如图3.25所示。图3.25例3.3执行结果3.3.3删除表空间如果不再需要表空间和其中保存的数据,可以使用DROP TABLESPACE语句删除已经创建的表空间。语法格式为:

Oracle教程(第2版) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Oracle教程(第2版)