在Oracle数据库中,表和视图是数据存储和查询的核心元素。本节将详细阐述如何在Oracle 9i环境中创建和操作这些对象。
4.1 表的创建和操作
创建表是数据库设计的基础,它定义了数据的结构。表由行(records)和列(columns)组成,每一列都有特定的数据类型,例如VARCHAR2(用于字符串)、NUMBER(用于数字)等。创建表的语法如下:
```sql
CREATE TABLE 表名
(
列名 数据类型(宽度)[DEFAULT 默认值][NOT NULL],
...
[CONSTRAINT 约束名 PRIMARY KEY|UNIQUE|FOREIGN KEY ...],
...
);
```
例如,创建图书表的SQL语句可能如下:
```sql
CREATE TABLE 图书表
(
图书编号 VARCHAR2(10) PRIMARY KEY,
图书名称 VARCHAR2(50),
出版社编号 VARCHAR2(10),
作者 VARCHAR2(30),
出版日期 DATE,
数量 NUMBER,
单价 NUMBER(5, 2)
);
```
4.2 数据完整性和约束条件
数据完整性是确保数据库中数据准确性的关键。Oracle提供了多种约束条件来维护数据完整性,包括:
- PRIMARY KEY:确保一列或一组列的唯一性,不允许有重复值。
- UNIQUE:与主键类似,也保证列的唯一性,但可以有NULL值。
- NOT NULL:确保列的值不能为空。
- FOREIGN KEY:建立表之间的关系,确保引用完整性。
4.3 修改表结构
随着需求的变化,有时需要对已创建的表进行修改,如添加、删除或修改列。这可以通过ALTER TABLE语句实现:
```sql
ALTER TABLE 表名
ADD (新列定义),
DROP COLUMN 列名,
MODIFY 列名 新数据类型;
```
4.4 分区表简介
分区表是大型数据库中提高性能的策略,它将大表分成较小、更易管理的部分。常见的分区方式有范围、列表、哈希和复合分区等。例如,根据日期分区的图书表:
```sql
CREATE TABLE 图书表
PARTITION BY RANGE (出版日期)
(
PARTITION p_1998 VALUES LESS THAN (TO_DATE('2000-01-01', 'YYYY-MM-DD')),
PARTITION p_2000 VALUES LESS THAN (TO_DATE('2005-01-01', 'YYYY-MM-DD'))
);
```
4.5 视图创建和操作
视图是虚拟表,基于一个或多个表的查询结果。视图提供了一种简化数据访问和安全的方法。创建视图的语法:
```sql
CREATE VIEW 视图名
AS
SELECT 列1, 列2, ...
FROM 表1
WHERE 条件;
```
视图可以被查询、更新,但其更改会反映到基础表。
4.6 阶段训练与练习
学习这些概念后,通过实际操作和练习来巩固知识是非常重要的。可以创建自己的示例表,执行DML(数据操作语言)操作,如INSERT、UPDATE、DELETE,以及尝试各种查询和视图操作。
通过上述内容,我们可以深入理解Oracle数据库中的表和视图,掌握其创建、操作和管理的方法,从而更好地管理和利用数据库资源。在实际工作中,这些技能对于数据存储、查询优化和数据安全管理至关重要。