DDL是“数据定义语言”( Data Defination Language )的缩写,它包含CREATE 、ALTER 、DROP 、RENAME 、TRUNCATE等命令,用来对数据库对象进行创建、修改、删除、重命名等操作。
其中CREATE 、ALTER和DROP命令的功能十分强大,几乎可以对所有的数据库对象进行管理,例如表、视图、索引、存储程序等。
表的创建
CREATE命令可用来创建表。
创建表时要确定表的结构,即确定表中各列的名字和类型。
在关系数据库中,表被看做是一个关系,表中的每个列是关系中的属性,是一个不可再分割的基本单位。
表中的行对应关系中的一个元组。
表的结构确定下来以后,就可以通过INSERT语句向表中插入数据了。
用来创建表的CREATE命令格式为:
CREATE TABLE 表名称(
列 l 数据类型,
列 2 数据类型,
..
);
表名是代表这个数据库对象的名称,对表名的要求是必须以字母开头,长度为l ~ 30个字符,而且只能包含A ~ Z 、a ~ z 、0 ~ 9 、一、$和#等字符,不能使用Oracle 的保留字,在同一个用户模式中不能拥有两个同名的表。
表中的每个列都有一个名字,在同一个表中不能有同名的列。
列的数据类型可以是系统预定义的类型,也可以是用户自定义类型。
数据类型描述
VARCHAR2(n) (可变长度的字符串.最大长度可达4000KB)
CHAR ( n) (固定长度的字符串,最大长度可达2000KB)
NUMBER (浮点类型的数据)
NUMBER ( m.n) (可表示整数和小数, m和n 分别为精度和1 小数位数)
DATE (日期型数据)
LONG (可变长度的字符串,最大长度可达2GKB)
RAW或LONG RAW (存储二进制数据的可变长度字符串)
LOB 大对象类型 (存储大型的无结构的数据,如图形图像、文本等数据,最大可达4GKB)
在创建表时,可以通过DEFAULT关键字为列指定一个默认值,这样当用INSERT语句插入一行时,如果没有为该列指定值,就以默认值填充,而不是插入空值。
如果要验证表的结构是否与期望的结果一致,可以在表创建之后通过DESC命令查看表的结构。
这个命令只能列出表中各列的列名、数据类型以及是否为空等属性。
在创建表时,还可以以另一个表为模板确定当前表的结构。一般情况下,可以从一个表复制它的结构,从而快速创建一个表。
复制表的结构是通过子查询来实现的,即在CREATE语句
中可以嵌套SELECT语句。这时的CREATE语句格式为: