《Oralce数据库与数据表.ppt》由会员分享,可在线阅读,更多相关《Oralce数据库与数据表.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3 3章章 Oralce Oralce数据库与数据表数据库与数据表Oracle数据库和数据表是所有数据库和数据表是所有Oracle数据库对象的基础。数据库对象的基础。Oracle数据库与其他数据库在逻辑结构上与其他数据库不同在数据库与其他数据库在逻辑结构上与其他数据库不同在于,于,Oracle提出了表空间的概念。本章将讲述提出了表空间的概念。本章将讲述Oracle数据库、数据库、表空间及数据表的基本知识。本章的主要内容包括:表空间及数据表的基本知识。本章的主要内容包括:创建创建Oracle数据库数据库Oracle表空间表空间创建创建Oracle数据表数据表修改修改Oracle数据表结构数据
2、表结构特殊表特殊表dual通过本章的学习,读者将了解通过本章的学习,读者将了解Oracle数据库的表空间、表数据库的表空间、表的基本操作,并对三大范式有清晰的认识,从而在设计和创建的基本操作,并对三大范式有清晰的认识,从而在设计和创建数据表时更加得心应手。数据表时更加得心应手。3.1 3.1 创建创建OracleOracle数据库数据库创建创建Oracle数据库一般使用数据库配置助手(数据库一般使用数据库配置助手(Database Configuration Assistant)。该工具可以在)。该工具可以在Windows和和Linux环境中环境中使用。使用。以以Windows环境下为例,可以
3、通过选择环境下为例,可以通过选择“开始开始”|“程序程序”|Oracle 10g Home1|Configuration and Migration Tools|Database Configuration Assistant命令,启动数据库配置助命令,启动数据库配置助手。同样,在手。同样,在Oracle安装目录下的安装目录下的bin文件夹下,有名为文件夹下,有名为dbca.bat的批处理文件,单击该文件,同样可以启动数据库配置助手。的批处理文件,单击该文件,同样可以启动数据库配置助手。3.1 3.1 创建创建OracleOracle数据库数据库3.2 3.2 配置配置/管理管理OracleO
4、racle数据库数据库在成功创建在成功创建Oracle数据库之后,用户可以对其进行配置和数据库之后,用户可以对其进行配置和管理。管理。Oracle自身提供了强大的配置和管理工具。另外,也有自身提供了强大的配置和管理工具。另外,也有第三方软件开发商开发了针对第三方软件开发商开发了针对Oracle的开发工具。本节将从工的开发工具。本节将从工具的角度出发,介绍配置、管理具的角度出发,介绍配置、管理Oracle数据库的方法。这些工数据库的方法。这些工具包括以下几种:具包括以下几种:Net Configuration Assistant(网络配置助手)(网络配置助手)Oracle Net Manager
5、(网络管理器)(网络管理器)sqlplus/sqlpluswPL/SQL DeveloperTOAD3.2.1 3.2.1 网络配置助手工具网络配置助手工具Net Net Configuration AssistantConfiguration Assistant网络配置助手,主要用于网络配置助手,主要用于Oracle数据库的监听程序、数据库的监听程序、命名方法、本地命名方法、本地NET服务名和目录配置。网络配置助手以服务名和目录配置。网络配置助手以向导的形式出现,适合初级用户使用。向导的形式出现,适合初级用户使用。1监听程序配置监听程序配置2本地本地Net服务名配置服务名配置3.2.1 3.
6、2.1 网络配置助手工具网络配置助手工具Net Configuration Net Configuration AssistantAssistant3.2.2 3.2.2 网络管理员工具网络管理员工具Net ManagerNet ManagerNet Manager具有和具有和Net Configuration Assistant具有具有相似的功能。相似的功能。Net Configuration Assistant可以为初级用户可以为初级用户提供向导模式;提供向导模式;Net Manager更适合熟练的用户进行操作。更适合熟练的用户进行操作。在在Windows的的“开始开始”菜单中,打开菜单中
7、,打开“程序程序”|Oracle 10gHome1|Configuration and Migration Tools|Net Manager命令。命令。3.2.2 3.2.2 网络管理员工具网络管理员工具Net ManagerNet Manager3.2.3 Oracle3.2.3 Oracle自带的客户端工具自带的客户端工具sqlplus/sqlpluswsqlplus/sqlplusw从某种意义上说,从某种意义上说,sqlplus是最方便、最常用的是最方便、最常用的Oracle客户端工具。因为只要安装了客户端工具。因为只要安装了Oracle的服务器端或者客户的服务器端或者客户端,端,sq
8、lplus都被默认安装。而都被默认安装。而sqlplusw只是在只是在sqlplus上添上添加了一个窗体,在其上执行加了一个窗体,在其上执行SQL语句与语句与sqlplus完全相同。完全相同。sqlplus的主要应用场景为查看的主要应用场景为查看/设置数据库参数、执行设置数据库参数、执行SQL脚本等。脚本等。1利用利用sqlplus登录数据库登录数据库2查看数据库参数查看数据库参数3关闭关闭/启动数据库启动数据库4修改系统参数修改系统参数5查询数据查询数据3.2.3 Oracle3.2.3 Oracle自带的客户端工具自带的客户端工具sqlplus/sqlpluswsqlplus/sqlplu
9、sw3.2.4 3.2.4 开发利器开发利器PL/SQL DeveloperPL/SQL DeveloperPL/SQL 是过程化编程语言(是过程化编程语言(Procedural Language)的)的简称。简称。PL/SQL Developer是是Oracle公司提供的专门针对公司提供的专门针对Oracle数据库开发的软件。数据库开发的软件。1登录数据库登录数据库2SQL Window与与Command Window3备份与恢复备份与恢复4执行计划执行计划3.2.4 3.2.4 开发利器开发利器PL/SQL DeveloperPL/SQL Developer3.2.5 Toad for O
10、racle3.2.5 Toad for OracleToad 是第三方数据库软件,功能要强于是第三方数据库软件,功能要强于PL/SQL Developer。3.3 Oracle3.3 Oracle表空间表空间Oracle表空间在逻辑结构上处于数据库之下。利用表表空间在逻辑结构上处于数据库之下。利用表空间可以更灵活地规划数据库结构。一个数据库可以包含空间可以更灵活地规划数据库结构。一个数据库可以包含多个表空间,每个表空间可以包含多个数据表。表空间会多个表空间,每个表空间可以包含多个数据表。表空间会有独立的物理文件,这使得用户可以自行决定表空间的大有独立的物理文件,这使得用户可以自行决定表空间的大
11、小、位置等。小、位置等。3.3.1 3.3.1 创建创建OracleOracle表空间表空间创建表空间应该使用创建表空间应该使用create tablespace命令。在指定表命令。在指定表空间的同时,应当指定表空间物理文件的存储位置,并同空间的同时,应当指定表空间物理文件的存储位置,并同时指定数据文件的初始大小。时指定数据文件的初始大小。【示例【示例3-2】在数据库】在数据库tst中,创建表空间的命令如下:中,创建表空间的命令如下:SQL create tablespace test datafile E:Databasedatatest_data.dbf size 20M;Tablespa
12、ce created3.3.2 3.3.2 表空间的使用表空间的使用表空间很重要的一个作用就是规划数据表。也就是说,表空间很重要的一个作用就是规划数据表。也就是说,每个数据表都是某个表空间的子对象。数据表的真实数据也每个数据表都是某个表空间的子对象。数据表的真实数据也是存在于表空间的物理文件中。因此,了解表空间的使用规是存在于表空间的物理文件中。因此,了解表空间的使用规则,对于明确则,对于明确Oracle数据库结构有着重要意义。数据库结构有着重要意义。每个用户登录数据库时所作的建表动作,如果未显式每个用户登录数据库时所作的建表动作,如果未显式指定将表创建于哪个表空间中,都会自动创建于该用户的默
13、指定将表创建于哪个表空间中,都会自动创建于该用户的默认表空间。默认表空间相当于用户的工作空间。认表空间。默认表空间相当于用户的工作空间。3.3.3 3.3.3 表空间的重命名及删除表空间的重命名及删除很多时候,我们会发现已创建的表空间,名称并不符合很多时候,我们会发现已创建的表空间,名称并不符合本意。但是此时将表空间删除再次创建,在操作上比较繁琐。本意。但是此时将表空间删除再次创建,在操作上比较繁琐。Oracle 10g提供了直接重命名表空间的选项提供了直接重命名表空间的选项rename。【示例【示例3-5】利用】利用rename选项将表空间选项将表空间test重命名为重命名为test_dat
14、a。SQL alter tablespace test rename to test_data;Tablespace alteredalter tablespace test用于修改表空间用于修改表空间test的属性;的属性;rename to test_data则用于将表空间名称修改为则用于将表空间名称修改为test_data。3.4 Oracle3.4 Oracle数据表数据表Oracle表空间的下一层逻辑结构为数据表。相较于其表空间的下一层逻辑结构为数据表。相较于其他数据库,他数据库,Oracle中的数据表并无特别之处。创建和修改中的数据表并无特别之处。创建和修改数据表结构都使用标准的数
15、据表结构都使用标准的SQL语句。本节将简要介绍语句。本节将简要介绍Oracle数据表的创建以及表结构的修改。数据表的创建以及表结构的修改。3.4.1 3.4.1 创建创建OracleOracle数据表数据表创建创建Oracle数据表的语法如下所示。数据表的语法如下所示。create table表名表名(列列1 数据类型数据类型1,列列2 数据类型数据类型2,列列3 数据类型数据类型3,列列n 数据类型数据类型n)tablespace 表空间表空间create table命令用于创建一个命令用于创建一个Oracle数据表;括号内数据表;括号内列出了数据表应当包含的列及列的数据类型;列出了数据表应
16、当包含的列及列的数据类型;tablespace则则指定该表的表空间。指定该表的表空间。3.4.2 3.4.2 数据表的相关操作数据表的相关操作数据表创建之后,由于某些原因,例如,设计时的考虑不数据表创建之后,由于某些原因,例如,设计时的考虑不足,往往需要对其进行结构上的调整。常见的调整包括,增加足,往往需要对其进行结构上的调整。常见的调整包括,增加新列、修改已有列、删除、重命名已有列。另外,还可以转移新列、修改已有列、删除、重命名已有列。另外,还可以转移数据表的表空间。数据表的表空间。修改数据表结构应当使用修改数据表结构应当使用alter table命令。例如,在表命令。例如,在表studen
17、t中,增加新列中,增加新列class_id(班级(班级ID)的)的SQL语句如示例语句如示例3-7所示。所示。【示例【示例3-8】利用】利用alter table命令为数据表增加列命令为数据表增加列class_id。SQL alter table student add(class_id number);Table altered3.4.3 3.4.3 删除数据表删除数据表当一个数据表没有存在的意义,则需要执行删除操作。当一个数据表没有存在的意义,则需要执行删除操作。删除数据表应该使用删除数据表应该使用drop table命令。例如,可以利用命令。例如,可以利用drop table命令删除数据
18、表命令删除数据表student。【示例【示例3-11】利用】利用drop table命令删除数据表。命令删除数据表。SQL drop table student;Table dropped有时,由于某些约束的存在,例如,当前表的主键被其有时,由于某些约束的存在,例如,当前表的主键被其他表用作外键,会导致无法成功删除。利用他表用作外键,会导致无法成功删除。利用cascade constraints选项可以将约束同时删除,从而保证选项可以将约束同时删除,从而保证drop table命命令一定能够成功执行。示例令一定能够成功执行。示例3-11的使用语法应该修改为如下的使用语法应该修改为如下所示的代码
19、。所示的代码。drop table student cascade constraints;3.5 3.5 特殊的数据表特殊的数据表dualdual在介绍了在介绍了Oracle中数据库、表空间、表的基本操作之后。中数据库、表空间、表的基本操作之后。本节将介绍本节将介绍Oracle中非常特殊的数据表中非常特殊的数据表dual。dual表实际表实际属于系统用户属于系统用户sys,具有了数据库基本权限的用户,均可查询,具有了数据库基本权限的用户,均可查询该表的内容,如下所示。该表的内容,如下所示。SQL select*from dual;DUMMY-X或者或者SQL select*from sys.
20、dual;DUMMY-X3.6 3.6 本章实例本章实例11非非15211521端口监听程序的使端口监听程序的使用用对于对于Oracle数据库来说,经常提到默认端口为数据库来说,经常提到默认端口为1521。而端口号又有监听程序与本地而端口号又有监听程序与本地Net服务名中的端口号之分。服务名中的端口号之分。本节将通过一个实例来查看本节将通过一个实例来查看Oracle中端口号与数据库连接中端口号与数据库连接的关系。的关系。在在Oracle数据库服务器上,打开数据库服务器上,打开Net Manager。假设。假设现有三个现有三个Net服务名:服务名:hc、orcl和和tst,分别连至数据库,分别连
21、至数据库hc、orcl和和tst。三个。三个Net服务名的端口号均为服务名的端口号均为1521。一个监听程。一个监听程序序Listener,监听端口也为,监听端口也为1521。3.6 3.6 本章实例本章实例11非非15211521端口监听程序的使用端口监听程序的使用3.7 3.7 本章实例本章实例22根据列名获得表名根据列名获得表名我们知道,在我们知道,在SQL Server中,可以通过视图中,可以通过视图INFORMATION_SCHEMA.Columns来获得当前来获得当前Schema(用(用户)所有列的信息。对应于户)所有列的信息。对应于Oracle中,可以通过视图中,可以通过视图us
22、er_tab_cols来获得当前用户的所有列的信息。很多时候,我来获得当前用户的所有列的信息。很多时候,我们往往需要从列追溯表信息。例如,在知道列名的情况下,们往往需要从列追溯表信息。例如,在知道列名的情况下,试图找到该列出现在哪些表中。试图找到该列出现在哪些表中。3.8 3.8 本章小结本章小结本章重点讲述了从本章重点讲述了从Oracle数据库到表空间,直至数据数据库到表空间,直至数据表的基本操作流程。表空间是表的基本操作流程。表空间是Oracle的独创性概念,因此,的独创性概念,因此,在使用时尤其注意。另外,表在使用时尤其注意。另外,表dual在在Oracle中起着非常重中起着非常重要的作用。使用表要的作用。使用表dual已经成为许多开发者的习惯,因此,已经成为许多开发者的习惯,因此,尽量不要对该表进行任何修改操作。尽量不要对该表进行任何修改操作。Oracle数据库的客户端工具非常丰富,本章着重讲述数据库的客户端工具非常丰富,本章着重讲述了了Net Configuration、Net Manager、sqlplus、PL/SQL Developer等。当然,在实际开发过程中,还可能会用到诸等。当然,在实际开发过程中,还可能会用到诸如如rman、OEM等,读者可以自行学习。等,读者可以自行学习。