SQL语句详解(五)——SQL字段修饰符

今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL数据表的字段修饰符。

一、字段修饰符简介

字段修饰符,简单来看是一种约束,主要用于约束数据库表中的一些字段。我们可以通过字段修饰符对数据库的数据进行一些设置,从而使得我们更方便的使用数据库。
今天,主要给大家介绍常用的字段修饰符,比如NOT NULL、Default以及Auto_Increment三种。

二、NOT NULL非空

之前我们介绍过,在创建数据表后,在向表内插入数据的过程中,不用指定所有的字段内容,而是可以只写入部分的字段内容。这种插入的结果,那些没有插入的字段处就为NULL,即空值。当一个字段被修饰为NOT NULL后,就不允许在插入数据时将该字段指定为空,否则MySQL会报错。我们在实际使用中,有些场景下字段有存储NULL的需求,比如大学成绩表,在未考试前,成绩就应该是NULL。但是,在很多情况下,一个字段不可能为NULL,这时我们就可以使用NOT NULL对该字段进行修饰。
注意,在MySQL中,NULL和空字符串不是一个概念,空字符串即在插入数据时,采用两个相邻的引号插入一个空的字符串,在MySQL实际存储数据时,不占用实际存储空间进行存储。但是,NULL在MySQL中需要采用特殊的编码来标识。因此,在插入索引或者是在进行字符排序等操作中,NULL比空字符串效率要慢的多。

三、Default字段默认值

前面我们讲到过,MySQL允许在插入数据时仅指定部分字段,这样其他的字段在默认情况下即为NULL。但是,在有些情况下,我们不希望该字段为NULL,而是希望该字段可以是我们自己预先设定的一个值。想要达到这种效果,我们就可以通过Default字段来实现。数据表中设定了Default的字段,会存在一个默认值,在插入数据时,如果指定了该字段的值,则该字段就为插入数据时指定的值,如果未指定该字段的值,就会默认为Default的默认值。

四、Auto_Increment自增

还有的情况下,我们在数据库中有一些ID的字段,对于这些字段,我们希望其可以随着我们数据的插入进行自动增长,这时我们可以使用Auto_Increment字段来修饰该字段。Aut_Increment字段在使用时一定要注意,该字段只能修改INT类型的字段,并且该字段必须存在键值索引,当插入数据时,该字段的值总是在最大值的基础上加1,例如,如果该字段已经设置了数据,那么当新插入值但是没有指定该字段的值时,MySQL会插入该字段内所有数据中最大的值加1。
另外,在已经存在部分数据的含有auto_increment的表中,如果删除了部分数据,则再次插入数据时,auto_increment字段的值并不会随着该字段的删除而重新计算,而是依旧按照之前的设置继续增加,如下所示:
在这里插入图片描述
如果想要让auto_increment字段的值重新计数,则需要执行MySQL命令:

truncate table 【表名】;

这样,MySQL就会重新计数了。注意,该命令会删除该表内所有内容,因此在执行该命令前,必须备份表内已有的数据。

五、字段修饰符SQL语句

关于MySQL数据表的字段修饰符,可以在创建表时添加或者是在创建表后修改,前一种方式即是在使用create创建数据表时,在要创建字段修饰符的字段后面直接添加相应的修饰符即可,第二种方式是使用alter命令结合change关键字进行修改,相应的SQL语句示例如下:

create table exp (id int primary key auto_increment , name varchar(20) default 'Pzz' , age int not null,address varchar(20));
alter table exp change address address varchar(20) not null;  

上述命令执行后效果如下:
在这里插入图片描述
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值