千家信息网

MySQL判断字段是否为null的方法

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍MySQL判断字段是否为null的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我字段类型是not null,为什么我可以插入空值为毛not null的效率
千家信息网最后更新 2025年02月01日MySQL判断字段是否为null的方法

这篇文章主要介绍MySQL判断字段是否为null的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

我字段类型是not null,为什么我可以插入空值

为毛not null的效率比null高

判断字段不为空的时候,到底要 select * from table where column <> '' 还是要用 select * from table wherecolumn is not null 呢。

带着上面几个疑问,我们来深入研究一下null 和 not null 到底有什么不一样。

首先,我们要搞清楚"空值" 和 "NULL" 的概念:

空值是不占用空间的

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"的概念之后,问题基本就明了了,我们搞个例子测试一下:

CREATE TABLE  `test` (   `col1` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,   `col2` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL  ) ENGINE = MYISAM ;

插入数据:

INSERT INTO `test` VALUES (null,1);

mysql发生错误:

#1048 - Column 'col1' cannot be null

再来一条

INSERT INTO `test` VALUES ('',1);

成功插入。

可见,NOT NULL 的字段是不能插入"NULL"的,只能插入"空值",上面的问题也就有答案了。

对于问题,上面我们已经说过了,NULL 其实并不是空值,而是要占用空间,所以mysql在进行比较的时候,NULL 会参与字段比较,所以对效率有一部分影响。

而且B树索引时不会存储NULL值的,所以如果索引的字段可以为NULL,索引的效率会下降很多

MYSQL建议列属性尽量为NOT NULL

长度验证:注意空值的''之间是没有空格的。

mysql> select length(''),length(null),length(' ');+------------+--------------+--------------+| length('') | length(null) | length(' ') |+------------+--------------+--------------+| 0 | NULL | 2 |+------------+--------------+--------------+

注意事项:

在进行count()统计某列的记录数的时候,如果采用的NULL值,系统会自动忽略掉,但是空值是会进行统计到其中的。

判断NULL 用IS NULL 或者 IS NOT NULL, SQL语句函数中可以使用ifnull()函数来进行处理,判断空字符用=''或者 <>''来进行处理

对于MySQL特殊的注意事项,对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是当前系统时间。插入空值,则会出现 0000-00-00 00:00:00

对于空值的判断到底是使用is null 还是='' 要根据实际业务来进行区分。

以上是MySQL判断字段是否为null的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

字段 杯子 效率 数据 时候 空间 类型 索引 问题 方法 事项 代表 内容 函数 概念 注意事项 系统 还是 处理 统计 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全是全球挑战 何为mysql数据库培训 低保国家数据库有还要提交材料吗 中宜云控互联网科技股份 二手服务器做nas 能源管理服务器 微网控制器 数据库的提取 数据库学习 书 怎么改服务器上的代码 计算机网络技术画图 网络安全隐私保护ehs考试 陕西西安服务器机柜虚拟主机 云服务器敏感文件安全 产业互联网是金融科技主战场 一梦江湖的服务器互通吗 四川省电信网络安全宣传周 服务器支持手机故障诊断面板 nosql数据库备份恢复 yolov3怎么放在服务器上跑 武汉英语翻译软件开发 常用的服务器端口号 我的世界脏小豆网易服务器 网络安全红蓝成员宣传 ns暗黑2重制版怎么看哪个服务器 传奇手游怀旧服什么时候开服务器 软件开发组组长出去能拿多少 云服务器如何切换 杭州它山网络技术有限公司 崇明区机械软件开发零售价格 数据库如何检索null值
0