表的约束

数据库中数据表的约束

表的约束分为

  1. 主键约束   primary  key

  2. 外键约束   foreign   key

  3. 非空约束   not   null 

  4. 唯一性约束   unique

  5. 默认约束   default

列级约束和表级约束是mysql中的两种定义约束的方式。列级约束定义在一个列上,只对该列起约束作用;表级约束是独立于列的定义,可以应用在一个表中的多个列上。

1.主键约束

主键约束相当于非空约束和唯一性约束的组合,被约束的字段不允许重复,也不允许出现空值即NULL值,且每个表中最多只允许有一个主键。

其语法格式如下

列级约束:
字段名   数据类型   PRIMARY  KEY
表及约束:
PRIMARY  KEY      (字段名1, 字段名2,~~)

删除主键约束

将数据表中的主键约束删除,其语法为:
 ALTER  TABLE  表名  DROP  PREMARY  KEY;

添加主键约束后,插入重复值或NULL值会失败。

2.外键约束

从数据表中添加外键字段,关联主表中的主键字段

3.非空约束

非空约束是指字段内的值不能为NULL值。

其语法为

字段名  数据类型  NOT  NULL;

在创建数据表时,非空约束与值为NULL的默认约束(DEFULT  NULL)不能同时存在,否则数据表会创建失败。

提示“Invalid default value for 'n2'”错误

4.唯一性约束

唯一性约束用于保证数据表中字段的唯一性,允许有空值且可允许有多个空值。即表中的字段不能重复出现。

列级约束
字段名  数据类型   UNIQUE;
表级约束
UNIQUE  (字段名1, 字段名2,~)

MYSQL中的唯一约束允许存在多个NULL值。

5.默认约束

默认约束用于数据表中的字段置顶默认值,语句为

字段名  数据类型  DEFAULT  默认值;

注:BLOB 、TEXT数据类型不支持默认约束。

 

删除约束

例:

例1:删除company表的主键约束。

ALTER TABLE company DROP PRIMARY KEY;
例2:删除emp表dept_id字段的外键约束,外键约束名是fk_emp_dept.

ALTER TABLE emp DROP FOREIGN KEY fk_emp_dept;
例3:删除sc表的外键约束A2。

ALTER TABLE sc DROP FOREIGN KEY A2;
例4:删除company表的company_name字段的唯一约束。

ALTER TABLE company DROP INDEX company_name;
例5:删除company表的company_address字段的非空约束。

ALTER TABLE company MODIFY company_address INT NOT NULL;
例6:删除company表的company_tel字段的默认约束。

ALTER TABLE company MODIFY company_tel INT UNSIGNED;

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 约束是用来保证数据完整性和一致性的规则。它们定义了对中数据的限制,以确保数据的有效性和一致性。 在 Oracle 中,常见的约束包括: 1. 主键约束(Primary Key Constraint):主键约束唯一标识中的每一行数据,并确保主键列的值不为空。 2. 唯一约束(Unique Constraint):唯一约束保证中指定列或列的组合的值是唯一的,但可以包含空值。 3. 外键约束(Foreign Key Constraint):外键约束定义了之间的关系,保证一个中的外键列的值必须在另一个的主键列中存在。 4. 非空约束(Not Null Constraint):非空约束确保指定列的值不为空。 5. 检查约束(Check Constraint):检查约束定义了对中数据的额外条件,只有满足条件的数据才能插入或更新到中。 要在创建时添加约束,可以使用 CREATE TABLE 语句的 CONSTRAINT 子句。例如: ```sql CREATE TABLE employees ( emp_id NUMBER PRIMARY KEY, emp_name VARCHAR2(50) NOT NULL, dept_id NUMBER, salary NUMBER, CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id), CONSTRAINT chk_salary CHECK (salary > 0) ); ``` 这个例子创建了一个名为 employees 的,其中包含主键约束(emp_id 列)、非空约束(emp_name 列)、外键约束(dept_id 列引用 departments 的 dept_id 列)和检查约束(salary 列的值必须大于 0)。 除了在创建时定义约束,还可以使用 ALTER TABLE 语句来添加、修改或删除约束

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值