DDL
Ø 添加或修改列
Ø 添加、删除、开启、关闭约束
Ø 删除表结构
Ø 移出表结构中所有行记录,值保留表结构
一、添加列ALTER TABLE
1、语法
Ø 在Oracle8i之前,列是不能单独删除的
Ø 在Oracle8i之后,列可以单独删除的,如下:
ALTER TABLE 表名
DROP COLUMN 列名
Ø 添加的新列可以定义默认值
ALTER TABLE 表名
ADD (第1列 类型 约束 【,第n列 类型 约束】…);
2、举个例子先:给s_region表,新增名为comments的一列
ALTER TABLE s_region
ADD (comments
VARCHAR2(255));
二、修改列ALTER TABLE
1、语法
Ø 此命令可以用来修改的类型。大小。默认值和NOT NULL约束
ALTER TABLE 表名
MODIFY (第1列 类型 约束 【,第n列 类型 约束】…);
Ø 可用来修改number类型列的长度或精度
Ø 用来给列添加非空约束
Ø 做以上修改时不能违反已存在的约束
2、举个例子先:修改员工表中职称的类型长度为50
alter table s_emp
MODIFY
(title VARCHAR2(50));
三、添加约束 ALTER TABLE
1、语法
ALTER TABLE 表名
ADD 【CONSTRAINT
constraint_name】 可以省略别名
约束条件(列名) 给那一列添加什么样的约束
Ø 约束只能添加或删除,不能修改
Ø 当然也可以开启或关闭约束
Ø NOT NULL 约束只能通过ALTER TABLE modify 子句来添加
2、举个例子:给员工表中的manager_id列添加外键约束
alter TABLE s_emp
ADD FOREIGN KEY(manager_id)
references s_emp(id)
四、删除约束ALTER TABLE
1、根据约束名来删除表中的指定约束
ALTER TABLE s_emp
DROP CONSTRAINT s_emp_manager_id_fk;
2、在删除主键的过程中,通过CASCADE关键字级联删除引用此主键的外键约束
ALTER TABLE s_dept
DROP PRIMARY KEY CASCADE;
五、关闭约束
和打开约束ALTER
TABLE
1、不想删除约束但又不想他现在其作用,这时,我们可以采用disable来完成此工作
我们还可以采用CASCADE关键字来把相互引用的约束一起级联关闭
ALTER TABLE s_emp
DISABLE CONSTRAINT s_emp_id_pk CASCADE;
2、可以通过ENABLE关键点来开启约束,使得约束有效
ALTER TABLE s_emp
ENABLE CONSTRAINT s_emp_id_pk
六、DROP TABLE
语法
删除一个表
DROP TABLE table [CASCADE constraints];
l 将表和数据一起删除
l 会自动提交事务
l 所有相关的索引会被删除
l 如果使用CSCADE CONSTRAINTS
选项,会把相互依靠的约束也会删除
l 此命令不能回滚
七、修改数据库对象的名称
使用rename to命令可以来修改表、视图、序列、同义词的名字
RENAME TO s_ord TO s_order
不过改名的话你必须有权限
八、TRUNCATE 命令
l 此命令可以删除表中的所有的行记录
l 释放曾经占用的空间
l 他是一个DDL命令
TRUNCATE TABLE s_item
注意:使用TRUNCATE命令删除表数据后,不能回滚,当然,建议我们使用DELETE命令来删除行记录,因为此方式是可以回滚的
九、给表加点描述信息COMMNET ON
1、给表添加描述
COMMENT ON TABLE s_emp
IS ‘这个表是一个员工表’
2、给列添加描述
COMMENT ON COLUMN s_emp.last_name IS ‘这个是员工的名字’
如果要清楚描述信息,则可以添加空字符串到描述
当然,可以通过如下数据字典来查看描述信息:
USER_TAB_COMMENTS 记录了表的注释
USER_COL_COMMENTS 记录了列的注释