mysql的约束条件是什么_MySQL约束条件

什么叫约束条件,约束条件就是控制我们往表字段里插入数据时的一些条件,那我怎么查看一个表的约束条件呢,我们可以通过查看表结构来看一个表的约束条件

查看一个没有设置约束条件的表结构

mysql> desc tab1;

前2列是字段名和字段的类型,后4列都属于约束条件,每一列约束的条件都不一样

NULL:代表的是允不允许为空,如果NULL里边的值是YES,那就代表这个字段里边可以存空值,空就是没有数据,如果是NO的话,那就不允许存空值,如果我们没设置过约束条件,那默认是允许存空值的

给字段赋空值

mysql> insert into tab1 values(null);

Query OK, 1 row affected (0.00 sec)

表记录

mysql> select * from tab1;

NULL代表的就是没有数据,就是空的

如果你希望表里的字段不能存空值,那我们在建表的时候要设置它的约束条件

mysql> create table tab13(

-> haha char(3) not null,//not null 不允许为空

-> xixi char(3) not null

-> );

Query OK, 0 rows affected (0.01 sec)

你不想让那个字段存空值,那就在那个字段的后边加上 not null

查看表结构

mysql> desc tab13;

NO就是不能存空值了

这时候如果在往该表里存空值就会报错

mysql> insert into tab13 values(null,null);

ERROR 1048 (23000): Column 'haha' cannot be null

提示:这一列不能为空

如果正常存储数据就没问题

mysql> insert into tab13 values("xx","oo");

Query OK, 1 row affected (0.00 sec)

查看一下

mysql> select * from tab13;

接下来我们在看一下其他的约束条件

mysql> desc tab13;

Key:代表索引标记,如果给字段设置过索引,那该字段的值会变成MUL

Default:代表默认值,如果我们不给字段赋值的话,那默认值就是空,但是默认值我们可以指定,我们在建表的时候可以设置某一个字段的默认值,设置完默认值以后,如果我们在往表里边插入记录的时候,如果不给该字段赋值,那它就用默认值给这个字段赋值,每个字段我们都可以设置默认值,但是默认值不能瞎定义,需要考虑它的合理性合理,但是如果你的NULL字段设置的不允许为空的话,那default字段设置的默认值它也没用,为什么这么说呢,默认值是你没有赋值的时候它才会用默认值去赋值,如果你没赋值说白了就是空值,而你的NULL字段又设置不允许为空值,那就会发生冲突

在定义默认值的时候,默认值一定要和字段类型匹配

mysql> create table tab14(

-> 姓名 char(5) not null,//不允许为空

-> 余额 int(5) default 0//默认值为0

-> );

提示:给字符类型设置默认值时要加引号

查看表结构

mysql> desc tab14;

名字字段的值不能为空,余额字段的值如果不赋值,默认值为0

那我现在就只给姓名字段赋值,余额字段我不赋值,我让他用默认值去赋

mysql> insert into tab14(姓名) values("haha");

Query OK, 1 row affected (0.00 sec)

查看表记录

mysql> select * from tab14;

我们自己赋值时,将不使用默认值

mysql> insert into tab14 values("haha",200);

Query OK, 1 row affected (0.01 sec)

查看一下

mysql> select * from tab14;

我们前边设计表结构的时候,名字字段是不是不允许赋空值,但是我现在可以这样赋值,用一个空格去赋值,空格不算空值

查看表记录

mysql> select * from tab14;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值