模式是一个数据库对象的集合。模式为一个数据库用户所有,并具有与该用户相同的名称。模式对象是由用户创建的逻辑结构,用以包含或引用他们的数据。模式对象包含诸如表、视图和索引之类的结构。您可以使用 Oracle Enterprise Manager 来创建和操作模式对象。
本章讨论以下主题:
![]() |
访问模式对象 | |
![]() |
管理表 | |
![]() |
管理索引 | |
![]() |
管理视图 | |
![]() |
管理数据库驻留程序单元 | |
![]() |
将数据加载到表中 |
将鼠标移到该图标上可以显示所有屏幕截图。还可以将鼠标移到特定的图标上来查看相关的屏幕截图。
执行以下步骤,使用 Enterprise Manager 访问模式对象:
1. |
打开您的浏览器并将用户名和口令指定为 SYS,登录到 Enterprise Manager Database Console。 单击 Login。 |
2. |
单击 Administration,并在 Database Objects 部分中选择 Tables 链接。 |
3. |
选择手电筒图标以选择一种特定的模式。 |
4. |
选择 HR 并单击 Select。 |
5. |
在 Object Name 域中输入 emp 并单击 Go。 |
6. |
显示与您的搜索条件相匹配的对象。 |
表是 Oracle 数据库中数据存储的基本单元。它们保存所有用户可访问的数据。每一个表都包含列和行。在本节中,您将执行以下任务:
![]() |
查看表的属性 | |
![]() |
查看表的内容 | |
![]() |
创建新表 | |
![]() |
修改表 | |
![]() |
删除表 |
执行以下步骤,查看 HR.EMPLOYEES 表的属性:
1. |
选择 EMPLOYEES 表并单击 View。 |
2. |
出现 Table View 页,其中显示了包括列、约束和存储选项的表属性。 单击 Tables 链接,返回 Tables 属性页。 |
执行下面列出的步骤,查看 HR.EMPLOYEES 表的内容:
1. |
选择 EMPLOYEES 表并从 Actions 列表中选择 View Data。单击 Go。 |
2. |
出现 View Data For Table 页,其中的 Result 部分显示了行数据。单击 Tables 链接,返回 Tables 属性页。 |
在本节中,您将为数据库创建三个新表:EMPLOYEES、CUSTOMERS 和 ORDERS。
1. |
单击 Tables 属性页上的 Create。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. |
显示 Create Table:Table Organization 页面。选择 Standard, Heap Organized 并单击 Continue。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. |
显示 Create Table 页面。在 Name 域中输入 employees。在 Schema 域中输入 fsowner。在 Tablespace 域中输入 fsdata。定义如下的列,并单击 Add 5 Table Columns。 EMPLOYEE_ID NUMBER(6) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4. |
输入如下剩余的列: HIRE_DATE DATE 单击 Constraints。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. |
显示 Constraints 页面。从下拉列表中选择 PRIMARY 并单击 Add。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6. |
显示 Add Primary Constraint 页面。在 Name 域中输入 emp_id_pk。在 Available Columns 列表中选择 EMPLOYEE_ID。单击 Move 将其选中。单击 Continue。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7. |
显示 Create Table 页面。单击 OK。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8. |
出现 Tables 页,其中包含一条更新消息,指示您的表已创建。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9. |
重复步骤 2 到 8,按如下定义的格式在 FSOWNER 模式中创建 CUSTOMERS 和 ORDERS 表。
|
您可以使用 Enterprise Manager 修改表,如添加和删除列或添加约束。在本节中,您将一个约束添加到您创建的 EMPLOYEES 表上。您将通过添加一个 NOT NULL 约束来确保 EMAIL_ADDRESS 列包含一个值。
执行以下的步骤,将一个 NOT NULL 约束添加到您的 EMPLOYEES 表:
1. |
选择 EMPLOYEES 表并单击 Edit。 |
2. |
选中 EMAIL_ADDRESS 列的 Not NULL 列。单击 Apply。 |
3. |
显示 Edit Table 页,其中包含有确认更新的消息。 |
您可以使用 Enterprise Manager 按如下方式删除表。出于本次练习的目的,您将创建一个新表然后删除该表。
1. |
在 Administration 页面的 Database Objects 部分中单击 Tables 链接,访问 Tables 属性页面。在 Schema Name 域中输入 HR,并在 Object Name 域中输入 JOBS。单击 Go。 |
2. |
从 Actions 列表中选择 Create Like。单击 Go。 |
3. |
显示 Create Table 页面。在 Name 域中输入 JOBS_HIST。针对 JOB_ID 列和 JOB_TITLE 列取消选中 Not Null。单击 Constraints。 |
4. |
显示 Constraints 页面。通过选择表上的每一个约束并单击 Delete,可删除该表上的约束。本次练习不需要这些约束。单击 General 返回 General 页面。 |
5. |
单击 OK 创建 JOBS_HIST 表。 |
6. |
显示一条消息,指示已创建表。 |
7. |
在 Object Name 域中输入 JOBS_HIST 并单击 Go。 |
8. |
显示 Tables 页面,并在 Result 部分中显示 JOBS_HIST 表。单击 Delete With Options 删除 JOBS_HIST 表。 |
9. |
选择 Delete the table definition, all its data, and dependent objects。单击 Yes。 |
10. |
显示一条消息,指示已删除表。单击 Go 尝试检索该表。 |
11. |
在结果区中显示 No object found,指示表已删除。单击 Database 链接返回 Administration 页面。 |
索引是与表关联的可选结构,可用于改进查询的性能。索引提供了对表数据的快速访问路径。可以在表的一个或多个列上创建索引。创建好索引后,Oracle 数据库服务器将自动维护和使用它。对表的数据或结构所作的更改会自动合并到所有相关的索引中,这对于用户是完全透明的。
在本节中,您将执行以下任务:
![]() |
查看索引的属性 | |
![]() |
创建新索引 |
执行下面列出的步骤,在您的 FSOWNER 模式中查看索引的属性:
1. |
在 Administration 页面的 Database Objects 部分中单击 Indexes 链接,访问 Indexes 属性页面。 |
2. |
显示 Indexes 页面。在 Schema 域中输入 FSOWNER,然后单击 Go。 |
3. |
显示您定义主键时所创建的索引。通过单击索引名链接,选择在 EMPLOYEES 表上创建的 EMP_ID_PK索引。 |
4. |
显示 EMPLOYEES 表的 EMP_ID_PK 索引。 单击 Indexes 链接返回 Indexes 属性页面。 |
在 ORDERS 表的 CUSTOMER_ID 列上创建一个索引,以使您能够快速访问特定客户的所有订单。该索引将存储在 FSINDEX 表空间中。
执行下面列出的步骤以创建 ORD_CUSTID_IDX 索引:
1. |
从 Object Type 列表中选择 Table。页面刷新。在 Schema 域中输入 FSOWNER 并单击 Go。 |
2. |
显示 Tables 页面。选择 ORDERS 表,并从 Actions 列表中选择 Create Index。单击 Go。 |
3. |
显示 Create Index 页面。在 Name 域中输入 ORD_CUSTID_INDX。在 Tablespace 域中输入 fsindex。选择 Standard B-tree 作为索引类型。在 Order 列中输入 1 以选择 CUSTOMER_ID 列。接受 ASC 作为 Sorting Order。单击 OK 创建索引。 您将收到一条消息,指示索引已经创建。单击 Database Instance 链接返回 Administration 页面。 |
视图是一个或多个表或其他视图中的数据的自定义显示。它们可以被看作存储的查询。视图并不真正包含数据,相反它们是从所基于的表中获取它们的数据。这些表被称为视图的基表。与表一样,可以通过某些限制条件对视图执行查询、更新、插入和删除操作。在视图上执行的所有操作实际上影响的是视图的基表。通过限制对预先确定的表的行列集的访问,视图提供了一个额外的安全等级。它们还隐藏了数据复杂性并存储复杂的查询。在本节中,您将执行以下任务:
![]() |
访问视图 | |
![]() |
创建新视图 |
执行下面列出的步骤以访问视图:
1. |
在 Administration 页面的 Database Objects 部分中,选择 Views。在 Views 属性页面中,在 Schema 域内输入 HR,然后单击 Go。 |
2. |
显示了定义在 HR 模式中的表上的视图。选择 EMP_DETAILS_VIEW 并单击 View 查看其定义。 |
3. |
显示 View 页面,其中提供了视图的定义。 单击 Views 链接返回 Views 页。 |
执行下面列出的步骤创建一个新视图:
1. |
在 Views 属性页上单击 Create。 |
2. |
输入以下信息,并单击 OK。 视图名称:CLERK10_ORDS SELECT order_id, customer_id, order_total FROM orders WHERE sales_clerk_id = 10 |
3. |
显示 Views 页面,确认视图已创建。 单击 Database Instance 链接返回 Administration 页面。 |
您可以使用 Enterprise Manager 管理数据库驻留的程序单元,如 PL/SQL 包、过程、触发器和函数,以及 Java 源代码和类。这些操作包括创建和编译数据库驻留的程序单元、为数据库驻留的程序单元创建别名、授权使用数据库驻留的程序单元,以及显示数据库驻留的程序单元的依赖性。
1. |
在 Administration 页面的 Programs 部分中单击 Procedures 链接。 |
2. |
在 Schema 域中输入 hr 并单击 Go。 |
3. |
选择 ADD_JOB_HISTORY 过程。从 Actions 列表中选择 Object Privileges,然后单击 Go。 |
4. |
单击 Add。 |
5. |
选择 EXECUTE 作为权限并选择 FSOWNER 作为用户。单击 OK。 |
6. |
单击 Apply。 |
7. |
您会收到一条确认消息。单击 Database 返回 Database Home 页面。 |
您可以使用 Enterprise Manager 成批地将数据加载到表中。当您有许多数据时,批量加载会很方便。您可以加载来自操作系统文件或其他数据库的数据。还可以将数据导出到文件中。一种加载的方法是使用控制 (.ctl) 和数据 (.dat) 文件。这些文件被转化为标准的 SQL*Loader 文件格式。SQL*Loader 是一种实用程序,您可以用它将外部文件的数据加载到 Oracle 数据库的表中。
在本节中,您将使用 load_cust.ctl 文件把客户信息加载到您的 FSOWNER.CUSTOMERS 表中。创建一个名为 $HOME/labs 的目录。下载 load_cust.zip 文件并将 load_cust.ctl 和 load_cust.dat 文件解压缩到 $HOME/labs 中,以供本节所用。
1. |
在 Maintenance 页面的 Move Row Data 部分中单击 Load Data from User Files 链接。 |
2. |
显示 Load Data:Generate or Use Existing Control File 页面。选择 Use Existing Control File。同时输入主机的用户名和口令。单击 Continue。 输入您数据库服务器上控制文件的完整路径并单击 Next。 |
3. |
显示 Load Data:Data File 页面。选择 The data file is specified in the control file。单击 Next。 |
4. |
显示 Load Data:Load Method 页面。接受默认的 Conventional Path 作为加载方法。单击 Next。 |
5. |
显示 Load Data:Options 页面。在 Optional Files 区域中选择 Generate log file。您可以接受默认的文件名和路径或输入不同的文件名或路径。单击 Next。 |
6. |
显示 Load Data:Schedule 页面。在 Job Name 域中输入一个名称,并在 Description 域中输入说明。选择 Immediately 立即运行作业。单击 Next。 |
7. |
显示 Load Data:Review 页面。查看您的文件名和加载方法。如果您想更改一些信息,可以单击 Back 按钮。否则,单击 Submit Job 开始加载。 |
8. |
出现 Status 页面,其中包含一条指示作业已创建的消息。单击作业名称链接查看作业一览表。 |
9. |
该一览表页应提示作业已成功完成。如果不是这样,您可以在您作业上的 Logs 标题下方单击来查看日志,也可以直接查看日志文件。 |
10. |
您可以导航到 Tables 页面,在 Schema 域中输入 FSOWNER,并单击 Go,随后选择表,并从 Actions 列表中选择 View Data,从而确认数据加载。单击 Go。 |
11. |
您加载的行显示在 View Data for Table:FSOWNER.CUSTOMERS 页面中。单击 OK 返回 Tables 属性页。单击 Database 返回 Database Home 页面。 |