建议MySQL列属性尽量用 NOT NULL

建议MySQL列属性尽量用 NOT NULL,第1张

例子1:

字段value2的属性不是NOT NULL

表里保存的数据如下:

例子2:

执行 *** 作:SELECT CONCAT('T','E',1,'test')

结果如下:

执行 *** 作:SELECT CONCAT('T','E',null,'test')

例子3:

执行 *** 作:SELECT COUNT(value2) FROM test

1、空值是不占用空间的

2、mysql中的NULL其实是占用空间的,下面是来自于MYSQL官方的解释:

“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”

NULL列需要在行中额外的空间来记录它们的值是否为NULL。对于MyISAM表,每个空列都多取一位,四舍五入到最近的字节。

打个比方来说,你有一个杯子,空值代表杯子是真空的,NULL代表杯子中装满了空气,虽然杯子看起来都是空的,但是区别是很大的。

因为NULL 其实并不是空值,而是要占用空间,所以mysql在进行比较的时候,NULL 会参与字段比较,所以对效率有一部分影响。(待认证)

not

null

表示这个字段不能为空

虽然看起来他是人为设置的

但是他和业务逻辑或者数据结构有关系

比如你要对这条记录进行读取

而这个是很重要的属性

那么你不仅要让其不为空

还要让他是指定的格式或者数值

还有情况就是

这个字段恰是其他表的主键

那么只有他有值才能正确关联两张表

所以他必须有值

可以。

MySQL 非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。

比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段设置非空约束。

在创建表时设置非空约束

创建表时可以使用 NOT NULL 关键字设置非空约束,具体的语法格式如下:

<字段名><数据类型>NOT NULL


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7524103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存