/*
注意:
1.如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,
但如果某个约束作用于多个字段,必须在表级定义约束
2.在定义约束时可以通过CONSTRAINT关键字为约束命名,
如果没有指定,ORACLE将自动为约束建立默认的名称
3.非空约束只能定义在字段级别
*/
-- 创建教师表
-- drop table teacher cascade constraint;
create table teacher(
id number(6),
name varchar2(20),
phone varchar2(20),
constraint pk_tea_id primary key (id)
);
-- 创建学生表
-- drop table student;
create table student(
id number(6) /*primary key */ ,
name varchar2(20) /*not null */ ,
cardno varchar2(20) /*unique check(length(cardno)>18) */ ,
tid number(6) /*references teacher(id) */
/*也可如下这样做,可以自定义约束名称
constraint pk_stu_id primary key (id),
constraint uk_stu_cardno unique (cardno),
constraint fk_tea_id foreign key (tid) references teacher (id),
constraint ck_stu_cardno check(length(cardno)>18)*/
/*还可如下这样做,但是约束名称是系统给的
primary key (id),
unique (cardno),
foreign key (tid) references teacher (id),
check (length(cardno)>18)*/
);
-- 如果建表的时候没有加上约束,也可以如下方式新添约束
-- 主键约束
alter table student add constraint pk_stu_id primary key(id);
-- 唯一约束
alter table student add constraint uk_stu_cardno unique(cardno);
-- 外键约束
alter table student add constraint fk_tea_id foreign key (tid) references teacher (id);
-- 检查约束
alter table student add constraint ck_stu_cardno check(length(cardno)>18);
-- 非空约束
alter table student modify(name not null);
-- 删除约束
-- 主键\唯一\检查\非空
alter table student drop primary key;
alter table student drop constraint pk_stu_id;
-- 外键
-- 方式一:先删除子表或者只删除子表的外键约束 然后使用drop table 表名删父表
-- 方式二:drop table 父表名 cascade constraints;
-- 禁用约束:
alter table 表名 disable constraint 约束名;
-- 启用约束
alter table 表名 enable constraint 约束名;
分享到:
相关推荐
主键和外键都是Oracle等关系型数据库管理系统(RDBMS)中的重要概念。 **主键**是定义一个表中起主要作用的数据项,它确保这些数据项在表中的唯一性。主键的特性包括: 1. 唯一性:主键的值在表中必须是唯一的,不...
2. 非空性:主键列不能包含NULL值,因为NULL表示未知,无法用来唯一标识一条记录。 3. 不可变性:一旦数据插入,主键的值通常不应更改,以保持数据的一致性。 创建主键约束通常在创建表时完成,例如在MySQL中,你...
主键约束保证了主表中的唯一性,而外键约束则维护了子表与主表之间的关联,`ON DELETE CASCADE` 规则使得删除操作能自动更新相关联的子表。在实际数据库设计中,要充分考虑这些约束的设置,以确保数据的完整性和业务...
1、主键和外键主键:关系...注2:Oracle数据库共有5个约束:主键、外键、非空、唯一、条件非空:这个列的值不能为空(NOT NULL)唯一:这个列的值在表中是唯一存在的,不能重复,但可以为空值(NULL)条件:可以对列的
### Oracle约束详解 在Oracle数据库管理系统中,约束是用于确保数据完整性和一致性的规则或条件。这些约束可以被定义在表级别的字段上,用来限制存储在表中的数据类型。通过实施约束,我们可以确保数据的质量,并...
约束可以分为多种类型,包括主键(PRIMARY KEY)、外键(FOREIGN KEY)、唯一(UNIQUE)、非空(NOT NULL)以及检查(CHECK)约束。本文将重点讨论在Oracle数据库中如何创建外键约束,同时也会提及其他类型的约束。 ...
- **非空约束(NOT NULL)**: 非空约束不允许字段值为NULL,确保该字段始终有值。 - **唯一约束(UNIQUE)**: 这种约束保证字段中的每个值都是唯一的,但允许NULL值。可以应用于单个字段或一组字段。 - **主键...
- 非空约束强制字段不能包含NULL值。创建表时,可以将`not null`约束添加到字段定义中,如`Create table UserInfo(UserID varchar2(20), UserPassWord varchar2(20) constraint N_UserPassWord not null, ...)`。若...
例如,主键约束确保了每个用户的唯一标识,外键约束则保证了用户状态信息的有效性,非空约束确保了密码等重要信息不为空,而唯一约束可以应用于如邮箱地址等需要保证唯一性的字段。 在实际应用中,开发者需要根据...
在Oracle中,可以通过设置数据类型、非空约束(NOT NULL)以及使用CHECK约束来实现。例如,你可以创建一个检查最大级别的CHECK约束,如`Constraint ch_cost check(max_lvl)`,这确保`max_lvl`列的值不会超过250。 2...
在创建这些表时,我们需要为每个表定义相应的约束,如主键、外键、非空、唯一性和检查约束。例如,客户姓名、单价、购买数量、电邮和性别都应受到相应的约束。如果在创建表时遗漏了约束,可以使用`ALTER TABLE`语句...
例如,在订单表中,订单日期是一个非常重要的信息,因此应该为其设置非空约束。 ### 五、检查约束(Check) 检查约束用于限制列中的值,它可以是一个简单的条件表达式,也可以是一个复杂的逻辑表达式。例如,如果...
本文将详细地介绍Oracle中的五种主要约束类型:非空(NOT NULL)、唯一(UNIQUE)、主键(PRIMARY KEY)、外键(FOREIGN KEY)以及检查(CHECK)约束,并给出相应的创建与管理方法。 #### 1. 非空约束 (NOT NULL) ...
本文将深入探讨Oracle字段约束的五种主要类型:主键约束、唯一性约束、非空约束、检查约束以及外键约束。 首先,主键约束(PRIMARY KEY)是表的核心组成部分,它定义了一个或一组列,其值必须唯一且不能为NULL。...
3. **PRIMARY KEY约束**:定义表的主键,它是一个或一组唯一且非空的字段,标识表中的每一行。 4. **FOREIGN KEY约束**:建立表之间的参照完整性,一个表的外键是另一个表的主键。 5. **CHECK约束**:用于限制字段值...
本文将详细介绍五种常用的约束类型:非空约束(NOT NULL)、唯一性约束(UNIQUE)、主键约束(PRIMARY KEY)、外键约束(FOREIGN KEY)和检查约束(CHECK),并给出具体的创建和管理这些约束的方法。 #### 1. 非空...
- 列约束:主要涉及数据类型、取值范围、长度、精度和排序等,例如非空约束(NOT NULL)和唯一性约束(UNIQUE KEY)。 - 元组约束:涉及元组内部字段之间的关联,例如字段间的关系和逻辑条件。 - 关系约束:涉及多个...
例如,商品表、客户表和购买表的建表语句中应包含相应的约束,如主键、外键、非空、唯一性、检查等,以满足业务需求。如果在创建表后发现缺少约束,可以通过ALTER TABLE语句添加,而不再需要的约束可以使用DROP ...
可以在定义列时指定非空约束,或者在定义完所有列之后指定非空约束。 例如,创建一个名为“学生” 的数据表,包含字段“学号”、“姓名”、“年龄”等,其中“姓名”为非空字段: CREATE TABLE 学生 ( 学号 ...