添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
3. 若约束名称长度超过 30 个字节,则 "表名" 使用简称
约束类型 规范命名 名称说明
主键约束 PK_表名_列名 Primary Key
外键约束 FK_表名_列名 Foreign Key
非空约束 NN_表名_列名 Not Null
唯一约束 UK_表名_列名 Unique Key
检查约束 CK_表名_列名 Check

2.2 约束信息查询

1. 常用视图 (权限由大到小: dba_* > all_* > user_*)
   (1) dba_constraints : 侧重约束具体信息
   (2) dba_cons_columns: 侧重约束列信息
2. 参考如下
   select *
     from dba_constraints dc
    where dc.owner = 'SCOTT'
      and dc.table_name = 'EMP';
   select *
     from dba_cons_columns dcc
    where dcc.owner = 'SCOTT'
      and dcc.table_name = 'EMP';

2.3 添加约束

-- 1.唯一性约束
alter table 表名 add constraint uk_* unique(列名) [not null];
-- 2.检查约束
alter table 表名 add constraint ck_* check(列名 between 1 and 100); 
alter table 表名 add constraint ck_* check(列名 in ('值1', '值n')); 
-- 3.非空约束(多个约束中,not null 位于末尾)
alter table 表名 modify(列名 constraint nk_* not null);

2.4 删除约束

alter table 表名 drop constraint 约束名;

2.5 重命名约束

alter table 表名 rename constraint 约束名 to new_约束名;

2.6 禁用启用约束

-- 1.禁用 disable
alter table 表名 disable constraint 约束名 [cascade];
-- 2.启用 enable
alter table 表名 enable constraint 约束名 [cascade];

3 约束分类

3.1 主键约束 P

create table scott.sex (
   sex_code  varchar2(2) constraint pk_sex_code primary key,
   sex_desc  varchar2(10)

3.2 外键约束 R

create table scott.student_info (
   sno      number(10) constraint pk_student_info_sno primary key,
   sname    varchar2(30),
   sex_code varchar2(2),
   constraint fk_student_info_sex_code foreign key(sex_code) references scott.sex(sex_code)

外键约束有以下 3 种情况:子表 引用 父表

1. 普通外键约束: 删除 父表 记录时,'报错''默认'
2. 级联外键约束: 删除 父表 记录时,同时 '删除子表记录'
3. 置空外键约束: 删除 父表 记录时,同时将 '子表记录置为 null'

关系图如下:
在这里插入图片描述

3.3 唯一约束 U

create table scott.temp_u (
   tno number(10) constraint tk_temp_u_tno unique not null

3.4 检查约束 C

create table scott.temp_c (
   age number(3) constraint ck_temp_c_age check(age between 1 and 150),
   sex varchar2(2) constraint ck_temp_c_sex check(sex in ('男', '女', '未说明'))

3.4 非空约束

create table scott.temp_n (
   create_date date constraint nn_temp_n_create_date not null
                    文章目录1 概述2 约束管理2.1 约束命名规范2.2 约束信息查询2.3 添加约束2.4 删除约束2.5 重命名约束2.6 禁用启用约束3 约束分类3.1 主键约束 P3.2 外键约束 R3.3 唯一约束 U3.4 检查约束 C3.4 非空约束1 概述1. 约束的作用   (1) 录入 '规范' 的数据   (2) '定义规则',对数据库中数据进行限制,确保数据正确性、有效性、完整性2 约束管理2.1 约束命名规范1. 默认命名:SYS_Cn(n 为正整数)2. 指定名称:推荐如下3.
				
Oracle中的约束简单介绍 约束   Including Constraints     在数据库中使用约束(constraints)是为了在该数据库中实施所谓的"业务规则"其实就是防止非法信息进入数据库,满足管理员和应用开发人员所定义的规则集.     ORACLE使用
dba_constraints中有一字段为long,查询麻烦,现找了个笨办法转为clob,希望能引出更好的办法 CREATE OR REPLACE PACKAGE pkg_test IS TYPE obj_constraints IS RECORD( owner dba_constraints.owner%TYPE, constraint_name
### 回答1: Oracle中的constraint是用于定义表中数据的限制条件,以确保数据的完整性和一致性。constraint可以应用于列级别或表级别,可以定义以下类型的限制条件: 1. Primary key:主键约束用于定义表中的唯一标识符,确保每行数据都有唯一的标识符。 2. Foreign key:外键约束用于定义表之间的关系,确保在一个表中的数据必须在另一个表中存在。 3. Unique:唯一约束用于确保表中的某列数据是唯一的。 4. Check:检查约束用于定义表中数据的条件,确保数据满足特定的条件。 5. Not null:非空约束用于确保表中的某列数据不为空。 6. Default:默认约束用于定义表中某列的默认值。 通过使用constraint,可以确保表中的数据满足特定的条件,从而提高数据的完整性和一致性。 ### 回答2: 在Oracle中,Constraint约束)是一种用于限制表中数据的有效性和完整性的对象。它可以在创建表时定义,也可以在表创建之后添加。 在创建表时定义Constraint,可以在列定义中使用“CONSTRAINT”关键字,后面紧跟着约束类型和名称。例如: CREATE TABLE student ( id NUMBER CONSTRAINT student_id_pk PRIMARY KEY, name VARCHAR2(20) CONSTRAINT student_name_nn NOT NULL, age NUMBER CONSTRAINT student_age_ck CHECK(age > 0), class_id NUMBER CONSTRAINT student_class_id_fk REFERENCES class(id) 上面的例子中,“student_id_pk”是表的主键约束,“student_name_nn”是非空约束,“student_age_ck”是检查约束(要求年龄大于0),而“student_class_id_fk”是外键约束,引用了“class”表中的“id”列。 除了在列定义中定义约束,还可以使用ALTER TABLE命令来添加Constraint。例如,添加一个新的唯一约束: ALTER TABLE student ADD CONSTRAINT student_name_uk UNIQUE(name); 在删除表中的数据时,如果违反了Constraint的限制,则会抛出异常并终止操作。例如,如果试图插入一个重复的“name”值: INSERT INTO student VALUES (1, 'Tom', 18, 1); INSERT INTO student VALUES (2, 'Tom', 20, 1); -- 插入失败,抛出异常 在修改表结构时,也可以使用ALTER TABLE命令修改Constraint。例如,将“student_name_uk”约束修改为非空约束: ALTER TABLE student MODIFY CONSTRAINT student_name_uk NOT NULL; 总之,在Oracle中使用约束可以确保数据的完整性和有效性,避免了数据不一致和错误。在设计和使用表时,应该充分利用约束来保证数据的正确性。 ### 回答3: Oracle数据库中的constraint是用来保证数据完整性和一致性的非常重要的工具。constraint可以设定在表中的一列或多列上,以限制数据的输入范围或特定的约束条件。下面我们具体介绍一下constraintOracle数据库中的用法: 1. Primary Key Constraint Primary Key是指一个或多个列的唯一标识符,用于保证表中每一行数据的唯一性。Primary Key Constraint可以由多个列组合而成,但是不允许出现空值。一个表只能拥有一个Primary Key Constraint。例如:在一个学生表中,学生ID可以作为Primary Key,以确保学生ID的唯一性。 2. Unique Constraint Unique Constraint用于保证表中每一个列的唯一性。与Primary Key Constraint不同的是,它允许出现空值。一个表可以拥有多个Unique Constraint。例如:在一个学生表中,学生手机号码可以设置为Unique Constraint,以确保每个手机号码只被使用一次。 3. Foreign Key Constraint Foreign Key Constraint用来确保两个表之间的数据关联性。例如:在学生表和班级表之间,学生表中的班级ID列与班级表中的班级ID列应该是一致的,即学生表中的班级ID必须存在于班级表中。因此,我们需要使用Foreign Key Constraint来确保这样的一致性。 4. Check Constraint Check Constraint用来规定列中数据的合法性和有效性。例如:在学生表中,年龄列的取值范围应该是0到100岁之间,我们可以使用Check Constraint来限制年龄的取值范围。 5. Not Null Constraint Not Null Constraint用来规定列中的数据不允许为空。例如:在学生表中,学生姓名列不允许为空,我们可以使用Not Null Constraint来保证学生姓名列的数据完整性。 总之,constraintOracle数据库中保证数据完整性和一致性的非常重要的工具,可以用来规定列中数据的合法性、有效性、唯一性以及关联性等方面的约束条件。正确使用constraint可以让我们的数据库更加规范、安全和高效。