"Oracle数据定义语言(DDL)" 是Oracle数据库管理系统中用于创建和管理数据库对象的语言,主要包括对表、视图、序列、索引和同义词等对象的操作。本章重点介绍了如何使用DDL来创建和管理Oracle表,以及相关的命名规则和数据类型。
在Oracle中,**表**是存储数据的基本单元,由行和列构成,可以用来存储各种类型的数据。**视图**是从一个或多个表中选择的数据子集,提供了数据的虚拟表示。**序列**是用来生成主键值的序列号,确保每条记录的唯一性。**索引**是优化查询性能的数据结构,可以加速对表中特定列的查找。**同义词**则是给数据库对象提供别名,使得对象的访问更加灵活。
**命名规则和约定**是使用DDL时的重要指导原则。表和列名必须以字母开头,长度限制在1到30个字符之间,且只能包含特定字符,如A-Z、a-z、0-9、_、$和#。在同一用户的范围内,对象名必须是唯一的,不能与Oracle的保留字冲突。值得注意的是,Oracle数据库对名字不区分大小写,但建议在实践中保持一致的大小写风格。
**创建表**是通过`CREATE TABLE`语句实现的。在创建表时,需要指定表名、列名、列的数据类型和宽度。例如,创建名为`DEPT1`的表,包含`DEPTNO`、`DNAME`和`LOC`三列,可以使用以下语句:
```sql
CREATE TABLE dept1
(deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13));
```
创建表后,可以通过`DESCRIBE`命令来验证表结构是否正确。`DEFAULT`选项允许在创建列时指定默认值,例如,`hiredate DATE DEFAULT SYSDATE`将为`hiredate`列设置系统当前日期作为默认值。默认值必须符合列的数据类型。
**引用其他用户的表**时,如果表属于其他用户,需要使用`username.table`的形式来引用。例如,如果`dept`表属于用户`scott`,则应写作`scott.dept`。
Oracle提供了一系列**数据类型**,包括:
1. **字符数据类型**:如`CHAR`、`VARCHAR2`,用于存储文本信息。
2. **数值数据类型**:如`NUMBER`、`INTEGER`,用于存储数字。
3. **日期时间数据类型**:如`DATE`,用于存储日期和时间信息。
4. **RAW/LONG RAW数据类型**:用于存储原始二进制数据。
5. **LOB(Large Object)数据类型**:如`BLOB`、`CLOB`,用于存储大量非结构化数据,如图片、文档等。
掌握Oracle的DDL语言对于数据库开发人员来说至关重要,它允许我们有效地创建、修改和管理数据库结构,从而满足各种业务需求。