Oracle中怎么创建约束
创始人
2024-12-24 03:22:01
0次

Oracle  创建主键,外键, check约束的几种方法:(write by RFH)

1. 在创建表时创建约束:

//添加主键约束

Create table userinfo (userid number(20)constraint  pk_user  primary key ,uname varchar(20));

Create table userinfo(userid number(20),unamevarchar(20),constraint  pk_user  primary key(userid);

//添加外键约束

create table userinfo(useridnumber(20),deptid number(20)  referencesdept(deptid));

create table userinfo(useridnumber(20),deptid number(20), constraint fk_dept foreign key(deptid)references  dept(deptid));

//添加check约束

create table userinfo(useridnumber(20),age number(3) constraint ck_age check(age<100 and age>10));

create table userinfo(useridnumber(20),age number(3), constraint ck_age check(age<100 and age>10))

2. 假如你已经建表完成,而忘记添加约束,没关系,可以单独添加:

   //添加主键约束:

   alter table userinfo add constraintpk_user primary key(userid);

   //添加外键约束:

    alter table userinfo add constraint fk_dept foreign key(deptid)references dept(deptid);

   //添加check约束

   alter table userinfo add constraint ck_age check(age<100 andage>10);

3对表中约束的查询:

      Desc userinfo;

all_constraints 包含了表的约束信息,但是会被刷屏

我们用user_constrains表来获取当前用户的约束:

select constraint_name,table_name,constraint_type from  user_constraints;

如果我们要想看某个表的约束:

select constraint_name,table_name,constraint_type from  user_constraints where table_name=’TABLENAME’;//注意表名要大写


类似的,索引表USER_INDEXES,序列表USER_SEQUENCES,触发器表USER_TRIGGERS,存储过程表USER_PROCEDURES,当然还有USER_TABLES,VIEW_TABLES 等。有个惊人的发现,之前建的外键会被添加到索引表中。他们中一般都有对应字段table_name ,trigger_name等等。

4.我们已经可以自己创建和查询约束,那么如果想要删掉无用的约束呢?

//删除主键

alter table dept drop primary key;

或者

alter table userinfo drop constraint pk_user;

//删除check约束

alter table userinfo drop constraint  ck_age;

//删除外键约束

alter table userinfo drop constraint fk_dept;

用alter table语句:(仅供参考)

 完整用法:

ALTER [IGNORE] TABLE tbl_name alter_specification [,alter_specification] ... alter_specification: table_option ...

 | ADD [COLUMN]column_definition [FIRST

 | AFTER col_name ]

 | ADD [COLUMN](column_definition,...)

| ADD {INDEX|KEY} [index_name] [index_type](index_col_name,...)

 | ADD [CONSTRAINT[symbol]] PRIMARY KEY [index_type] (index_col_name,...)

 | ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)

| ADD [FULLTEXT|SPATIAL] [INDEX|KEY] [index_name] (index_col_name,...)

 | ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_name] (index_col_name,...) [reference_definition]

 | ALTER [COLUMN]col_name {SET DEFAULT literal | DROP DEFAULT}

| CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTERcol_name]

 | MODIFY [COLUMN]column_definition [FIRST | AFTER col_name]

| DROP [COLUMN] col_name

 | DROP PRIMARY KEY

| DROP {INDEX|KEY} index_name

 | DROP FOREIGN KEYfk_symbol

| DISABLE KEYS | ENABLE KEYS | RENAME [TO] new_tbl_name

| ORDER BY col_name [, col_name] ...

 | CONVERT TO CHARACTERSET charset_name [COLLATE collation_name]

 | [DEFAULT] CHARACTERSET charset_name [COLLATE collation_name]

 | DISCARD TABLESPACE

 | IMPORT TABLESPACE

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...