mysql null值和空格_MySQL中NULL与空字符串空格问题

一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串' '是相同的。这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的。NULL是指没有值,而''则表示值是存在的,只不过是个空值。。 这就相当于厂子给职工分房子,一共只有一套,老张和老李

一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串' '是相同的。这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的。NULL是指没有值,而''则表示值是存在的,只不过是个空值。。

这就相当于厂子给职工分房子,一共只有一套,老张和老李都想要,可是经理告诉老张,下次有您的房子,可是老李压根就没人搭理他。所以老张的房子是"空"的,因为这是空白支票,不过毕竟经理张口了,而老李的房子就是NULL的,因为根本就没有人考虑过他。

二者的区别不大,但是如果不仔细的话可能会使我们限入困境。因为在PRIMARY KEY字段中是不能使用NULL值的。这一点我们应该记住哈。

首先创建一个表:create table ceshi(ID INT ,createDate TimesTamp );

包含2个字段,id为int类型,createDate为TimesTamp类型,现在往这个表中插入一条数据,其中createDate类型插入一个空值null;

语句: insert into ceshi values(001,null);

代码如下

mysql> insert into ceshi values(001,null);

Query OK, 1 row affected (0.01 sec)

插入成功了,现在来查询下这个表中的记录,查看结果如下:

代码如下

mysql> select * from ceshi;

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

| ID | createDate |

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

| 1 | 2012-10-08 06:12:34 |

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

1 row in set (0.01 sec)

我明明插入的是一条空值null,为什么在显示的时候是显示系统当前时间呢?那再试试直接插入空字符串呢?

代码如下

mysql> insert into ceshi values(002,'');

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from ceshi;

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

| ID | createDate |

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

| 1 | 2012-10-08 06:12:34 |

| 2 | 0000-00-00 00:00:00 |

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

2 rows in set (0.00 sec)

显示的不是系统当前时间,而是0000-00-00 00:00:00。

那如果字段不是时间类型而是varchar类型,,结果又会不会也是一样呢,更改表结构,增加字段name varchar(10),同时插入一条数据:

代码如下

mysql> insert into ceshi values(003,null,null);

Query OK, 1 row affected (0.01 sec)

mysql> select * from ceshi;

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

| ID | createDate | name |

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

| 1 | 2012-10-08 06:12:34 | NULL |

| 2 | 0000-00-00 00:00:00 | NULL |

| 3 | 2012-10-08 06:22:12 | NULL |

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

3 rows in set (0.00 sec)

增加了null值,再往字段中插入''空字符串:

代码如下

mysql> insert into ceshi(name) values('');

Query OK, 1 row affected (0.01 sec)

mysql> select * from ceshi;

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

| ID | createDate | name |

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

| 1 | 2012-10-08 06:12:34 | NULL |

| 2 | 0000-00-00 00:00:00 | NULL |

| 3 | 2012-10-08 06:22:12 | NULL |

| NULL | 2012-10-08 06:23:01 | |

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

4 rows in set (0.01 sec)

看着好似插入的都没有问题,但是我们去统计name的数据量时候,这个时候又有问题了:

代码如下

mysql> select count(name) from ceshi;

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

| count(name) |

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

| 1 |

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

1 row in set (0.00 sec)

简单的说 空字符串==空字符串; 是ture 而 NULL == NULL 是false;

NULL是什么都没有的意思。空毕竟是空~还是有东西只是它的这个东西是"空"

在mssql中执行下面语句:

print null+'Null有值吗?';

print "+'空串有值吗?';

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GridView实现数据编辑和删除(一)

2019独角兽企业重金招聘Python工程师标准>>> 前台的html代码&#xff1a; <asp:GridView ID"gv_Emplogin" runat"server" AutoGenerateColumns"False" onrowdeleting"gv_Emplogin_RowDeleting" onrowupdating"gv_…

8张图告诉你,在朋友圈发什么不会被嫌弃

爱发圈的你是否发现&#xff0c;打开朋友圈总有一些内容让你嫌弃&#xff1a;和本人真假难辨的美图自拍&#xff0c;每天十条以上的发帖&#xff0c;伪科普的转发…还有一些人你直接想删除&#xff1a;炫耀自己家的奢侈品&#xff0c;从不交摊位费的代购和微商和一日三餐都发圈…

iNeuOS工业互联网平台,在高校教学实训领域的应用

目 录1. 概述... 22. 实训柜... 23. 培训内容... 44. 二次开发培训... 51. 概述中国工业互联网从 0 向 1 演进从缺政策、缺技术、缺市场&#xff0c;逐渐转移到了缺人才&#xff0c;跨行业、跨领域的复合型人才&#xff1b;IT与OT融合型人才&#…

mysql设计表月份_mysql,表设计

闲着没事搞了一下&#xff0c;欢迎指教。。用户表&#xff1a;CREATE TABLE usr (uid int(11) NOT NULL,name char(10) DEFAULT NULL,PRIMARY KEY (uid)) ENGINEInnoDB DEFAULT CHARSETutf8;吃饭记录表&#xff1a;CREATE TABLE meal (mid int(11) NOT NULL,money int(11) DEFA…

keepalived 原理,安装,配置

什么是Keepalived呢&#xff0c;keepalived观其名可知&#xff0c;保持存活&#xff0c;在网络里面就是保持在线了&#xff0c;也就是所谓的高可用或热备&#xff0c;用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生&#xff0c;那说到ke…

28合1智能积木,56种玩法,让孩子循序渐进“玩”出新知识

▲数据汪特别推荐点击上图进入玩酷屋小木作为一名资深积木达人&#xff0c;我可是大大小小的积木阅览无数&#xff0c;最近小木又发现一个超好玩的----28合1小卡百变积木&#xff01;小卡百变积木是小卡团队研发的一款全新概念的智能积木&#xff0c;由276颗高精度积木&#xf…

表3.5 文章管理测试用例表_本地管理表空间管理机制

表空间是一种为段&#xff08;表&#xff0c;索引等&#xff09;提供空间的逻辑结构&#xff0c;所以&#xff0c;当在表空间中增加&#xff0c;删除段的时候&#xff0c;数据库就必须跟踪这些空间的使用。如下例所示&#xff0c;假定一个新创建的表空间包含了五个表表一……表…

.NET | 多线程下的调用上下文 : CallContext

【.NET】| 总结/Edison Zhou最近在分析现在团队的项目代码&#xff08;基于.NET Framework 4.5&#xff09;&#xff0c;经常发现一个CallContext的调用&#xff0c;记得多年前的时候用到了它&#xff0c;但是印象已经不深刻了&#xff0c;于是现在来复习一下。1CallContext是个…

每日一笑 | 哪个男人到底是谁?!

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

min里所有的参数都不存在_高中生物所有的考点难点,其实都在你不仔细看的课本里,必修1-3超强记忆手册!...

对很多理科生来说&#xff0c;高中生物就是一门不是文科胜似文科的学科。很多数学、物理成绩非常突出的学生却不能在这样一门“理科”课程当中取得优势。生物老师在这门学科的提高上反复强调“回归课本”却又让很多习惯刷题的理科生不知无从下手。进入高三后&#xff0c;生物、…

我看电商(作者近三十年从事零售及电子商务管理的总结和分享)

我看电商&#xff08;作者近三十年从事零售及电子商务管理的总结和分享&#xff09; 黄若 著 ISBN 978-7-121-20268-1 2013年6月出版 定价&#xff1a;39.00元 284页 16开 编辑推荐 近年来电商行业在中国迅猛发展&#xff0c;电子商务正在日益深入的影响着越来越多人的生活。…

Masuit.Tools,一个免费的轮子

开源地址&#xff1a;https://gitee.com/masuit/Masuit.Tools包含一些常用的操作类&#xff0c;大都是静态类&#xff0c;加密解密&#xff0c;反射操作&#xff0c;动态编译&#xff0c;权重随机筛选算法&#xff0c;简繁转换&#xff0c;分布式短id&#xff0c;表达式树&…

每日一笑 | 坐牢吗?学编程那种~

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

mysql 命令 g_MySQL命令行的几个用法

MySQL命令行的几个用法MySQL的客户端命令行工具&#xff0c;有很多方便使用者的特性&#xff0c;某些方面甚至可以说比Oracle的sqlplus更加人性化。当然从整体来说&#xff0c;还是sqlplus更加方便些&#xff0c;这么说或许是我对sqlplus更加熟悉吧。这里记录下MySQL命令行几个…

NET问答: 如何取消或中止 Task 执行 ?

咨询区 Patrice Pezillier&#xff1a;我在一个线程里创建了若干了task并开启执行&#xff0c;当我在业务逻辑中执行了 Thread.Abort() 之后&#xff0c;我发现这些 Task 并没有被终止掉&#xff1f;问题来了&#xff0c;我如何将 Abort() 传递到内部的 Task 呢&#xff1f;回答…

VMware vSphere 5.1 群集深入解析(二十六)- 数据存储维护模式汇总

VMware vSphere5.1Clustering DeepdiveHA.DRS.Storage DRS.Stretched ClustersDuncan Epping &Frank DennemanTranslate By Tim2009 / 翻译&#xff1a;Tim2009目录版权关于作者知识点前言第一部分 vSphere高可用性第一章 介绍vSphere高可用性第二章 高可用组件第三章 基本…

硕士论文研究「AI预测性取向」:化妆等因素并不影响判断

全世界只有3.14 % 的人关注了数据与算法之美2017 年&#xff0c;斯坦福大学的一篇《深度学习通过面部识别判断性取向超越人类》曾引发了极大争议&#xff0c;其通过 AI 算法仅需「看面相」即可判断一个人是不是同性恋的方法让众人感到一丝恐慌&#xff0c;也让技术研究者们对于…

[翻译]Go与C#对比 第三篇:编译、运行时、类型系统、模块和其它的一切

Go vs C#, Part 3: Compiler, Runtime, Type System, Modules, and Everything Else | by Alex Yakunin | ServiceTitan — Titan Tech | Medium目录译者注相似性编译垃圾回收模块类、结构、接口错误处理相等性&#xff08;, !&#xff09;基础类库两种语言中存在的其他类似特…

php mysql explain_MySQL Explain详解

MySQL Explain详解在日常工作中&#xff0c;我们会有时会开慢查询去记录一些执行时间比较久的SQL语句&#xff0c;找出这些SQL语句并不意味着完事了&#xff0c;些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划&#xff0c;查看该SQL语句有没有使用上了索引&a…

指针易出错点一

2019独角兽企业重金招聘Python工程师标准>>> 声明指针中会遇到的问题 int* p1,p2; 上面这条语句的本意应该是声明两个指向int的指针&#xff0c;而实际的效果是p1是指针类型&#xff0c;p2却是int类型&#xff0c;这是因为在C语言中&#xff0c;声明和解释的语法并…