日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時間:2023/12/4 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql null值和空格_MySQL中NULL与空字符串空格问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一些剛剛接觸MySQL的孩子,經(jīng)常會錯誤的認為NULL與空字符串' '是相同的。這看似是一件不重要的事情,但是在MySQL中,這兩者是完全不同的。NULL是指沒有值,而''則表示值是存在的,只不過是個空值。。 這就相當于廠子給職工分房子,一共只有一套,老張和老李

一些剛剛接觸MySQL的孩子,經(jīng)常會錯誤的認為NULL與空字符串' '是相同的。這看似是一件不重要的事情,但是在MySQL中,這兩者是完全不同的。NULL是指沒有值,而''則表示值是存在的,只不過是個空值。。

這就相當于廠子給職工分房子,一共只有一套,老張和老李都想要,可是經(jīng)理告訴老張,下次有您的房子,可是老李壓根就沒人搭理他。所以老張的房子是"空"的,因為這是空白支票,不過畢竟經(jīng)理張口了,而老李的房子就是NULL的,因為根本就沒有人考慮過他。

二者的區(qū)別不大,但是如果不仔細的話可能會使我們限入困境。因為在PRIMARY KEY字段中是不能使用NULL值的。這一點我們應該記住哈。

首先創(chuàng)建一個表:create table ceshi(ID INT ,createDate TimesTamp );

包含2個字段,id為int類型,createDate為TimesTamp類型,現(xiàn)在往這個表中插入一條數(shù)據(jù),其中createDate類型插入一個空值null;

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

代碼如下

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

Query OK, 1 row affected (0.01 sec)

插入成功了,現(xiàn)在來查詢下這個表中的記錄,查看結(jié)果如下:

代碼如下

mysql> select * from ceshi;

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

| ID | createDate |

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

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

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

1 row in set (0.01 sec)

我明明插入的是一條空值null,為什么在顯示的時候是顯示系統(tǒng)當前時間呢?那再試試直接插入空字符串呢?

代碼如下

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)

顯示的不是系統(tǒng)當前時間,而是0000-00-00 00:00:00。

那如果字段不是時間類型而是varchar類型,,結(jié)果又會不會也是一樣呢,更改表結(jié)構(gòu),增加字段name varchar(10),同時插入一條數(shù)據(jù):

代碼如下

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)

看著好似插入的都沒有問題,但是我們?nèi)ソy(tǒng)計name的數(shù)據(jù)量時候,這個時候又有問題了:

代碼如下

mysql> select count(name) from ceshi;

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

| count(name) |

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

| 1 |

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

1 row in set (0.00 sec)

簡單的說 空字符串==空字符串; 是ture 而 NULL == NULL 是false;

NULL是什么都沒有的意思。空畢竟是空~還是有東西只是它的這個東西是"空"

在mssql中執(zhí)行下面語句:

print null+'Null有值嗎?';

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

本條技術(shù)文章來源于互聯(lián)網(wǎng),如果無意侵犯您的權(quán)益請點擊此處反饋版權(quán)投訴

本文系統(tǒng)來源:php中文網(wǎng)

總結(jié)

以上是生活随笔為你收集整理的mysql null值和空格_MySQL中NULL与空字符串空格问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。