oracle创建表时的约束
来源:互联网 发布:idc国际数据公司薪水 编辑:程序博客网 时间:2024/06/06 09:16
一、创建表时对表各种限制的体现。
1、主键 primary key 一个表中只有一个主键、不为空、不重复
2、外键 foreign key 外键可以重复、可以为空
3、唯一性Unique 唯一但是允许空值
4、自定义Check
5、不为空Not null
6、默认值 default
二、创建表时生成以上限制。
--语法:
Create table table_name(col_name col_type XX constraintcon_name XXX);
--主键
IDNUMBERCONSTRAINT pk_id_1PRIMARYKEY
IDNUMBER PRIMARY KEY
(一个表只有一个主键,自动产生索引、唯一不为空)
--外键
DEPid NUMBER,
CONSTRAINT FK_DEPidFOREIGNKEY(DEPID)REFERENCES DEPT_T(depT_ID)
DEPid NUMBER,
FOREIGNKEY(DEPID)REFERENCES DEPT_T(depT_ID)
--唯一性
cc VARCHAR2(10)CONSTRAINT u_1 UNIQUE
cc VARCHAR2(10) UNIQUE
(唯一自动产生索引,可以为空)
--自定义CHECK约束
dd NUMBER CHECK(dd>1AND dd<10)
dd NUMBER CONSTRAINT c_K CHECK(dd>1AND dd<10)
--not null
ff NUMBER NOTNULL
ff NUMBER CONSTRAINT n_1 NOTNULL
--default
ff NUMBER/* CONSTRAINT d_1*/DEFAULT 1
default 不能自己起名。。。
--查看约束
select * from user_constraint
查看可以看到,主键和unique都自动创建了索引。
--完整的创建一张表例子
CREATETABLE t_5
(
IDNUMBERCONSTRAINT PK_t_5_id PRIMARYKEY,
dept_Id NUMBER,
NAMEvarchar2(10)CONSTRAINT u_key_name UNIQUE,
dc NUMBERCONSTRAINT c_key_dcCHECK(dc>10AND dc<20),
ye VARCHAR2(10)CONSTRAINT n_key_ye NOTNULL,
be VARCHAR2(10)DEFAULT 'tiger',
CONSTRAINT f_key_dept_idFOREIGNKEY(dept_id)REFERENCES dept_t(dept_id)
)
当然所有约束的名字都可以省略,just like:
CREATETABLE t_5
(
IDNUMBERPRIMARYKEY,
dept_Id NUMBER,
NAMEvarchar2(10) UNIQUE,
dc NUMBER CHECK(dc>10AND dc<20),
ye VARCHAR2(10) NOTNULL,
be VARCHAR2(10)DEFAULT 'tiger',
FOREIGNKEY(dept_id)REFERENCES dept_t(dept_id)
)
三、创建表后生成以上限制。
--语法:
Alter table Add constraint con_name 约束 字段
CREATETABLE t_5
(
IDNUMBER,
dept_Id NUMBER,
NAMEvarchar2(10),
dc NUMBER ,
ye VARCHAR2(10) ,
be VARCHAR2(10)
)
ALTERTABLE t_5ADDCONSTRAINT pk_ID_t_5PRIMARYKEY(ID);
ALTERTABLE t_5ADDCONSTRAINT fk_dept_idFOREIGNKEY(dept_id)REFERENCES dept_t(dept_id);
ALTERTABLE t_5ADDCONSTRAINT u_key_nameUNIQUE(NAME);
ALTERTABLE t_5MODIFY yeNOTNULL;
ALTERTABLE t_5MODIFY beDEFAULT 'csdn';
(其中not null和default约束用modify修改)
四、表的修改
--增加列
ALTERTABLE t_5ADD cdefVARCHAR2(10)NOTNULL;
--删除列
ALTERTABLE t_5DROPCOLUMN cdef;
--删除约束
Alter table drop constraint XXX
(其中一个表中只有一个主键可以直接删除
Alter table drop primary key)
以上是我能想到的,也能用到的,关于创建表还有很多很多。。。
- oracle创建表时的约束
- oracle创建表(约束)
- oracle创建表(约束)
- Oracle-创建表和表的约束
- oracle表约束关系创建
- oracle 创建表和约束
- Oracle创建表和约束
- Oracle 创建用户名,表,约束
- oracle表的创建、类型、结构和约束
- Oracle实战——表的创建与约束
- oracle的表约束
- Oracle的表约束
- oracle约束+check+暴力删除表,无视外键+查看用户创建的表+查看约束
- Oracle中约束的创建与管理之外键约束
- Oracle在修改表时创建唯一约束
- Oracle之约束的创建与管理
- Oracle数据库:如何创建约束及创建约束的SQL语句,正则约束的SQL语句
- Oracle外键约束之在创建表时设置外键约束
- How to Completely Fix kernel32.dll Error
- 什么是一阶电路板,二阶电电路板,以及盲孔,埋孔的区别(原发于:2012-06-28 22:42:03)
- 百度2005年面试题
- QObject之我见(备忘)
- JS传递中文参数乱码
- oracle创建表时的约束
- Silverlight相关资源
- base64
- 如何让 cygwin 1.7.15-1 终端中显示的中文改成英文 (原发于:2012-07-15 16:38:35)
- android目录下的内容学习---abi
- cut
- 目前高性能计算基准测试程序分类
- NSNumber和NSUInteger的相互转换
- 直接初始化和复制初始化