oracle:表、列、约束等操作,table,constraint,column
2014-08-13 11:22
399 查看
创建表的语法
GLOBAL TEMPORARY 说明该表为临时表。行的有效期有 ON COMMIT 子句决定。临时表对于说有会话都可见,但是这些行则是特定于某个会话的。
constraint_def 指定了对某个列的约束定义,可以用于删除指定的约束或重复使用该约束。
ON COMMIT 控制临时表中行的有效期。DELETE 说明这些行在事务的末尾要被删除。
PRESERVE说明这些行在会话的末尾要被删除。如果没有指定ON COMMIT ,默认为 DELETE
table_space 为该表指定表空间,如果没有指定,该表会被存储在该用户的默认表空间中。
获得有关表的信息
可以直接DESCRIBE
可以通过数据字典
重命名表
截断表
删除表中的所有行,并重置表的存储空间,表的表名列属性等会保留。
删除表
向表、列添加注释
获得表、列的信息
获得表中的列的信息
添加列
重命名列
修改列
如果一个表中没有任何行或列为空值,可以将表列修改为任意一种数据类型,tpye 为数据类型。
修改列的默认值
删除列
对列添加约束
添加CHECK 约束
添加一个约束,表中现有的行一定要符合这个约束条件。
添加NOT NULL 约束
NOT NULL 是用MODIFY 添加的, 上述[]是为这个约束添加一个名字。
添加FOREIGN KEY约束
通常需要先删除该列然后通过添加列时吧FOREIGN KEY 一起添加。
ON DELETE CASCADE 为级联删除。
ON DELETE SET NULL 为外键被删除时该位置设 NULL。
添加UNIQUE 约束
删除约束
禁用约束
默认情况下,约束在创建是启动,可以再创建时禁用约束。
启动约束、禁用约束
启动约束时表中数据必须满足约束条件,通过制定 ENABLE NOVALIDATE 可以选择只对新数据应用某个约束。
约束默认情况下是 ENABLE VALIADTE;
延时约束
在事务被提交是强制执行的约束。在添加约束是指定 DEFERRABLE ,约束添加后不能修改,只能通过删除重新添加。有两种标识,
INITIALLY INNEDIATE :每次向表中添加数据、修改表的数据或从表中删除数据是都检测则个约束。
INITALLY DEFERRED :只在有事务被提交是,才检测这个约束。
获得有关约束的信息
可以通过表 all_constraints 获得所有可以访问的约束信息。
获得有关列的约束的信息
CREATE [GLOBAL TEMPORARY] TABLE table_name( column_name type [CONSTRAINT constraint_def DEFAULT default_exp] [,column_name type [CONSTRAINT constraint_def DEFAULT default_exp]…] ) [ON COMMIT {DELETE| PRESERVE }ROWS] TABLESPACE table_space;
GLOBAL TEMPORARY 说明该表为临时表。行的有效期有 ON COMMIT 子句决定。临时表对于说有会话都可见,但是这些行则是特定于某个会话的。
constraint_def 指定了对某个列的约束定义,可以用于删除指定的约束或重复使用该约束。
ON COMMIT 控制临时表中行的有效期。DELETE 说明这些行在事务的末尾要被删除。
PRESERVE说明这些行在会话的末尾要被删除。如果没有指定ON COMMIT ,默认为 DELETE
table_space 为该表指定表空间,如果没有指定,该表会被存储在该用户的默认表空间中。
获得有关表的信息
可以直接DESCRIBE
DESC[RIBE] table_name;
可以通过数据字典
SELECT * FROM user_tables WHERE table_name =xxxx; [or WHERE table_name IN ('xxxx','xxxx')]
重命名表
RENAME table_old_name TO table_new_name;
截断表
删除表中的所有行,并重置表的存储空间,表的表名列属性等会保留。
TRUNCATE table_name;
删除表
DROP TABLE table_name;
向表、列添加注释
COMMENT ON TABLE table_name IS 'xxxxx'; COMMENT ON COLUMN table_name.column_name IS 'xxxx';
获得表、列的信息
SELECT * FROM user_tab_comments WHERE table_name='xxx'; SELECT * FROM user_col_comments WHERE table_name='xxx';
获得表中的列的信息
SELECT * FROM user_tab_columns WHERE table_name='xxxx';
添加列
ALTER TABLE table_name ADD column_name type;
重命名列
ALTER TABLE table_name RENAME COLUMN column_old_name TO column_new_name;
修改列
ALTER TABLE table_name MODIFY column_name type;
如果一个表中没有任何行或列为空值,可以将表列修改为任意一种数据类型,tpye 为数据类型。
修改列的默认值
ALTER TABLE table_name MODIFY column_name DEFAULT xxxx;
删除列
ALTER TABLE table_name DROP COLUMN column_name;
对列添加约束
添加CHECK 约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK ( column_name IN ('xxx','xxxx')); [or CHECK ( column_name >0)]
添加一个约束,表中现有的行一定要符合这个约束条件。
添加NOT NULL 约束
CREATE TABLE table_name MODIFY column_name [CONSTRAINT constraint_name] NOT NULL;
NOT NULL 是用MODIFY 添加的, 上述[]是为这个约束添加一个名字。
添加FOREIGN KEY约束
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name
ADD [CONSTRAINT constraint_name]
column_name REFERENCES table_name1(column_name1) [ON DELETE {CASCADE | SET NULL} ];
通常需要先删除该列然后通过添加列时吧FOREIGN KEY 一起添加。
ON DELETE CASCADE 为级联删除。
ON DELETE SET NULL 为外键被删除时该位置设 NULL。
添加UNIQUE 约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_name);
删除约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
禁用约束
默认情况下,约束在创建是启动,可以再创建时禁用约束。
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_name) DISABLE;
启动约束、禁用约束
ALTER TABLE table_name {ENABLE|DISABLE } CONSTRAINT constraint_name;
启动约束时表中数据必须满足约束条件,通过制定 ENABLE NOVALIDATE 可以选择只对新数据应用某个约束。
ALTER TABLE table_name ENABLE NOVALIDATE CONSTRAINT constraint_name;
约束默认情况下是 ENABLE VALIADTE;
延时约束
在事务被提交是强制执行的约束。在添加约束是指定 DEFERRABLE ,约束添加后不能修改,只能通过删除重新添加。有两种标识,
INITIALLY INNEDIATE :每次向表中添加数据、修改表的数据或从表中删除数据是都检测则个约束。
INITALLY DEFERRED :只在有事务被提交是,才检测这个约束。
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_name) DEFERRABLE INITIALLY DEFERRED;
获得有关约束的信息
SELECT * FROM user_constraints WHERE table_name = 'xxx';
可以通过表 all_constraints 获得所有可以访问的约束信息。
获得有关列的约束的信息
SELECT * FROM user_con_columns WHERE table_name ='xxx'; 转载地址:http://www.cnblogs.com/Azhu/archive/2012/04/15/2450179.html
相关文章推荐
- oracle:表、列、约束等操作,table,constraint,column
- Oracle Constraint_type,约束类型
- Oracle PL\SQL操作(四)索引与约束
- Oracle 唯一 约束(unique constraint) 与 索引(index) 关系说明
- Oracle 唯一 约束(unique constraint) 与 索引(index) 关系说明
- Oracle 约束的相关操作
- Oracle Constraint_type,约束类型
- Oracle alter table modify column Syntax example
- Oracle 唯一 约束(unique constraint) 与 索引(index) 关系说明
- Oracle 唯一 约束(unique constraint) 与 索引(index) 关系说明
- Oracle数据库Constraint约束的常用操作及异常处理
- Oracle获得数据库中table和table中column
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- Oracle 唯一 约束(unique constraint) 与 索引(index) 关系说明
- oracle里如何快速drop column测试(慎用于生产系统,该操作导致表无法访问)
- Oracle之tablespace简单操作
- Oracle 约束(constraint)的几个参数的小研究
- Oracle PL/SQL之Flashback Table与外键约束
- Oracle 唯一 约束(unique constraint) 与 索引(index) 关系说明