Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的数据库对象来管理和组织数据。在第六章中,我们主要关注四种核心的数据库对象:表、视图、索引和表空间。
**表**是数据库中最基本的实体,用于存储数据。在Oracle中,创建表时需要指定字段(列)及其数据类型。例如,`CREATE TABLE stu(id NUMBER(6), name VARCHAR2(20), sex NUMBER(1), age NUMBER(3), sdate DATE, grade NUMBER(2) DEFAULT 1, class NUMBER(4), email VARCHAR(50))` 这个SQL语句创建了一个名为stu的学生表,包含8个字段,其中grade字段设定了默认值1。常见的数据类型包括:`CHAR`(定长字符串)、`VARCHAR2`(变长字符串)、`NCHAR`(Unicode定长字符串)、`NUMBER`(数字)、`DATE`(日期)、`LONG`(大文本)、`RAW`(原始数据)、`LONG RAW`(大原始数据)、`BLOB`(大二进制对象)、`UROWID`(通用行标识符)和`FLOAT`(浮点数)。
**视图**是一种虚拟表,它是从一个或多个表中选择出的特定数据集的逻辑视图。创建视图可以简化复杂的查询,保护数据安全,或者提供不同的数据视角。创建视图的SQL语句如下:`CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;`
再者,**索引**用于加速对表中数据的访问。索引可以显著提高查询性能,但也会占用额外的存储空间并可能影响数据插入和更新的速度。Oracle支持多种类型的索引,如B树索引、位图索引、函数索引等。创建索引的基本语法是:`CREATE INDEX index_name ON table_name (column_name);`
接下来,**表空间**是Oracle数据库的逻辑存储单位,它将物理文件与逻辑数据关联起来。每个表空间由一个或多个数据文件组成,而这些数据文件实际上是在磁盘上的物理文件。表空间的概念有助于管理数据库的物理存储,因为数据可以根据需要分布在不同的表空间中。例如,创建表空间的语句是:`CREATE TABLESPACE tablespace_name DATAFILE 'file_path' SIZE file_size AUTOEXTEND ON;`
在表的管理中,**约束**是确保数据完整性的重要手段。约束分为几种类型:**主键约束**(PRIMARY KEY)确保每条记录都有唯一的标识;**非空约束**(NOT NULL)确保字段不为空;**唯一约束**(UNIQUE)保证字段中的每个值都是唯一的;**外键约束**(FOREIGN KEY)维护表间的关系,确保引用的完整性和一致性;**检查约束**(CHECK)限制字段值的范围。例如,创建主键约束的语句是:`ALTER TABLE stu ADD CONSTRAINT stu_key PRIMARY KEY(id);`
查看表的约束可以通过查询数据字典表,如`USER_CONSTRAINTS`,其中`C`表示检查约束和非空约束,`P`表示主键约束,`R`表示外键约束,`U`表示唯一约束。
Oracle数据库的这些核心对象——表、视图、索引和表空间,以及约束机制,共同构建了强大且灵活的数据存储和管理框架。理解和熟练运用这些概念,对于有效的数据库设计和优化至关重要。