1、DEFAULT:默认值约束

比如当插入一些数据为空或者没有插入数据的时候,我们可以给一个默认值

mysql> CREATE TABLE students (

-> no INT,

-> name VARCHAR(32),

-> sex CHAR(1) DEFAULT '男',

-> age INT(3),

-> email VARCHAR(255)

-> );

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> desc students

-> ;

+-------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+--------------+------+-----+---------+-------+

| no | int | YES | | NULL | |

| name | varchar(32) | YES | | NULL | |

| sex | char(1) | YES | | 男 | |

| age | int | YES | | NULL | |

| email | varchar(255) | YES | | NULL | |

+-------+--------------+------+-----+---------+-------+

5 rows in set (0.00 sec)

插入语句进行验证:

mysql> insert into students(no,name,age,email) values(1,'www',18,'123@qq.com');

Query OK, 1 row affected (0.01 sec)

mysql> select * from students;

+------+------+------+------+------------+

| no | name | sex | age | email |

+------+------+------+------+------------+

| 1 | www | 男 | 18 | 123@qq.com |

+------+------+------+------+------------+

1 row in set (0.00 sec)

mysql> insert into students(no,name,sex,age,email) values(2,'zzz','女',18,'123@qq.com');

Query OK, 1 row affected (0.00 sec)

mysql> select * from students;

+------+------+------+------+------------+

| no | name | sex | age | email |

+------+------+------+------+------------+

| 1 | www | 男 | 18 | 123@qq.com |

| 2 | zzz | 女 | 18 | 123@qq.com |

+------+------+------+------+------------+

2 rows in set (0.00 sec)

 (如下同理)

2、使用ENUM类型限制字段取值

ENUM是一个字符串对象,其值是从列创建时定义的允许值列表中选择的

CREATE TABLE student (

name VARCHAR(32),

sex ENUM('男', '女'),

age INT(3),

email VARCHAR(255)

);

3、CHECK 检查约束注意:(CHECK 约束:用于限制列中的值的范围,MySQL5.7不支持该约束,但写入语句不会报错,MySQL8.0版本支持该约束。)

create table test_user

(

id int primary key,

name VARCHAR(20),

sex VARCHAR(1),

check (sex='男'or sex='女')

);

 

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: