约束的作用

查看约束:SHOW CREATE TABLE table_name;
主键约束

主键约束在显著的特征是主键列中的值是不允许重复的,通过主键约束可强制表的实体完整性。当创建或更改表时可通过定义PRIMARY KEY 约束来创建主键。一个表只能有一个PRIMARY KEY 约束,且PRIMARY KEY 约束中的列不能接受NULL值。

设置该字段为主键,主键约束名称为pk_name:

ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY (字段名);

设置主键约束的几种方式:
  1. 创建表的时候指定主键约束:

CREATE TABLE table_name(

Id int PRIMARY KEY,

NAME VARCHAR(20)

);

CREATE TABLE table_name(

Id INT,

Name VARCHAR(20),

PRIMARY KEY (id)

);

CREATE TABLE table_name(

id INT,

name VARCHAR(20),

CONSTRAINT pk PRIMARY KEY(id)

);

  • 修改某一列为主键

Alter table 表名称 add primary key 字段名;

Alter table 表名称 modify 字段名 属性 primary key;

Alter table 表名称 change 字段名 字段名 属性 primary key;

删除主键约束

Alter table 表名称 drop primary key;

自增长列(标识列)

特点:

  1. 标识列必须和一个key搭配
  2. 一个表最多有一个标识列
  3. 标识列的类型只能是数字型
  4. 标识列可以通过 set auto_increment_increment=3;设置步长(全局,退出数据库重新进入会恢复默认值),可以通过插入行时手动插入标识列值设置起始值。

Create table goods(

No int primary key auto_increment,

Name varchar(10)

);

修改为自增长:

Alter  table表名 modify 列名 列类型 auto_icrement;

Alter table 表名 change 列名 列名 列类型 auto_increment;

删除自增长列:

Alter table 表名 modify 列名 列类型;

联合主键

在创建表时,可以在列定义中指定多个列作为联合主键:

Create table 表名(

列名1 数据类型,

列名2 数据类型,

列名3 数据类型,

Primary key (列名1,列名2, 列名3)

);

修改列的时候创建:

Alter table 表名 add primary key(列名1,列名2,列名3);

删除:

Alter table 表名称 drop primary key;

联合主键要求每个列组合的值都是唯一的。

唯一约束

对于非主键列的值也要求唯一时,就需要唯一的约束

创建表时:

CREATE TABLE table_name(

Id int ,

NAME VARCHAR(20) unique

);

CREATE TABLE table_name(

id INT,

name VARCHAR(20),

CONSTRAINT uq unique(name)

);

修改表时

Alter table 表名 add unique(列名称);

Alter table 表名 add constraint unique(列名称);

Alter table 表名 change 列名 列名 类型 unique;

Alter table 表名modify 列名 列类型 unique;

删除唯一约束

Alter table 表名称 drop index 设置唯一时的名称;

(如果没有设置约束名称,名称默认是字段名)

唯一约束允许有多个NULL值

默认约束

为列中的值设置默认值,default value

创建表时:

Create table 表名(

Id int default value,

Name varchar(20) unique

);

修改表:

Alter

Table 表名 modify 列名 类型 default 默认值;

Alter table 表名 change 列名 列名 列类型 default 默认值;

删除:

Alter table 表名 modify 列名 列类型;

非空约束

Not null:非空,用于保证该字段的值不能为空

创建表时:

Create table 表名(

Id int not null,

Name varchara(20)

);

修改表:

Alter table 表名 modify 列名 列类型 not null;

Alter table 表名 change 列名 列名 列类型 not null;

删除:

Alter table 表名 modify 列名 列类型;

检查约束

检查约束允许你在表定义中声明条件,并确保符合该条件的数据才能插入或更新到相应的列中。

创建表时:

Create table 表名(

Id int auto_increment primary key,

Name varchar(50),

Age int ,

Emall varcharI(100),

Check (age>=18)

);

修改表时:

Alter table 表名 change 列名 列名 列类型 check(condition);

Alter table 表名 modify 列名 列类型 check(condition);

Alter table 表名 add constraint 列名check(condition);

删除检查约束

Alter table 表名 drop constraint 约束名;4

外键约束

用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

创建表时:

Constraint fk_a_b foreign key a(a.id) referencrs b(b.id);

修改表时:

Alter table 表名 add 约束名称 foreign key  (从表字段) references 主表表名(主表字段);

删除:

Alter table 表名称 drop foreign key 索引名;

关联数据:设置外键时在后面添加 on delete cascade/ on update cascade

On delete set null/on update set null 在删除/更新主表时,外键列的值会变成null

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值