欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL如何修改字段的默認值和空值

 更新時間:2022年08月29日 15:21:08   作者:深擁淺沫  
這篇文章主要介紹了MySQL如何修改字段的默認值和空值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL修改字段的默認值和空值

修改字段默認值

  • 修改:
ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT 默認值
  • 刪除:
ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT

修改字段值是否為空

  • 設為空:
ALTER TABLE 表名 MODIFY 字段名 字段類型 NULL
  • 設為非空:
ALTER TABLE 表名 MODIFY 字段名 字段類型 NOT NULL

MySQL默認值NULL、空值、Empty String的區(qū)別

如何選擇?

工作一年左右了,發(fā)現(xiàn)其實工作中除了需要實現(xiàn)業(yè)務代碼外,更多的是與數(shù)據(jù)庫打交道。最近因為項目需要,我也逐漸參與進入數(shù)據(jù)庫的設計,從而發(fā)現(xiàn)了很多之前沒有過多注意的問題。

回想這一年來,寫博客的次數(shù)屈指可數(shù),現(xiàn)在想重新拾起,所以打算從數(shù)據(jù)庫方面入手,先總結一個比較簡單但非常常用的知識點——mysql中字段默認值的問題。

我們可以看到,默認值的設置主要分為三種:

  • 1.空值,空白,即什么都不填,等同于NULL(設計表結構時保存空值會自動變成NULL),當然也可以手動輸入默認值。
  • 2.NULL。
  • 3.Empty String,空字符串,可以理解為0字節(jié)長度的字符串,等同于單引號''和雙引號""。

其中,空值 = NULL,Empty String = 空字符串 = '' = ""。

那么問題來了,當設定某一個字段的默認值的時候,是設定空值、NULL還是Empty String呢?

先說結論

建議不要使用NULL或空值,String類型的字段可以設置默認為Empty String(即空字符串''),Int類型的字段可以設置默認為0。

尤其是使用php做接口開發(fā)時,設置字段類型為not null可以避免產生很多問題,如果查詢出null數(shù)據(jù)直接返回給Android或IOS,而移動端又沒有進行處理的話,程序就會報錯。所以為了避免這種情況,一定要在服務端數(shù)據(jù)庫層面從根源上解決這個問題。

因為空值 = NULL,所以談論區(qū)別時只比較NULL和空字符''串即可。

區(qū)別

1、NULL是占用磁盤空間的(并不是數(shù)據(jù)本身占用空間,而是存儲它是否為NULL的標記占用1個字節(jié)),而空字符串''是不占用磁盤空間的(它的長度是0字節(jié)所以不占用)。

網上找到的相關資料顯示NULL是占用磁盤空間的

官方文檔說明: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。

即:定義字段類型時,如果允許為NULL,那么就要為每條數(shù)據(jù)多分配一個字節(jié)的空間來表示字段是否為NULL。

直接在mysql中驗證即可:

2、字段類型是varchar時可以默認為空字符串,字段類型是int時不可以默認為空字符串,可以設置為0。

3、當字段被設置為not null時,字段就不能是NULL但可以插入空字符串,但空字符串只能插入到字符串類型的字段中,插入其他類型的字段中會報錯。而NULL可插入到任何允許為NULL的字段中。

4、SQL語句中對空字符串進行判斷時可以使用=、>、<符號;但是對NULL進行判斷時必須使用is null或is not null。

5、包含NULL的字段列,如果在查詢條件中使用is not null會導致索引失效,但是使用is null索引不會失效。

6、使用count()函數(shù)進行統(tǒng)計時,會過濾掉NULL值,但不會過濾掉空字符串。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MySQL數(shù)據(jù)庫防止人為誤操作的實例講解

    MySQL數(shù)據(jù)庫防止人為誤操作的實例講解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫防止人為誤操作的方法,需要的朋友可以參考下
    2014-06-06
  • MySql關于null的函數(shù)使用分享

    MySql關于null的函數(shù)使用分享

    這篇文章主要介紹了MySql中null的函數(shù)使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MySQL數(shù)據(jù)庫分組查詢group by語句詳解

    MySQL數(shù)據(jù)庫分組查詢group by語句詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫分組查詢group by語句詳解,文中含有詳細示例代碼說明解析,有需要的朋友可以借鑒參考想=下,希望能夠有所幫助
    2021-09-09
  • 詳解Mysql和Oracle之間的誤區(qū)

    詳解Mysql和Oracle之間的誤區(qū)

    mysql 和Oracle 在開發(fā)中的使用是隨處可見的,那就簡單去了解一下這倆款火的不行的數(shù)據(jù)庫。
    2021-05-05
  • MySQL函數(shù)與存儲過程字符串長度限制的解決

    MySQL函數(shù)與存儲過程字符串長度限制的解決

    本文主要介紹了MySQL函數(shù)與存儲過程字符串長度限制的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • CentOS 7.2下MySQL的安裝與相關配置

    CentOS 7.2下MySQL的安裝與相關配置

    最近因為工作需要,要在CentOS上安裝MySQL,在安裝的時候遇到了一點問題,花了點時間解決了,感覺不管是官網還是網上的一些教程都不夠完整,不能一次性幫新手解決問題,于是我就結合官網和網上的資源整理了下,現(xiàn)在分享給大家,希望對有需要的朋友們能有所幫助。
    2016-11-11
  • MySQL系列之六 用戶與授權

    MySQL系列之六 用戶與授權

    做為Mysql數(shù)據(jù)庫管理員管理用戶賬戶,是一件很重要的事,指出哪個用戶可以連接服務器,從哪里連接,連接后能做什么,這篇文章主要介紹了MySQL用戶與授權的相關資料,需要的朋友可以參考下
    2021-07-07
  • mysql字符串格式化方式

    mysql字符串格式化方式

    這篇文章主要介紹了mysql字符串格式化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql 控制臺操作

    mysql 控制臺操作

    其實MYSQL的對數(shù)據(jù)庫的操作與其它的SQL類數(shù)據(jù)庫大同小異,您最好找本將SQL的書看看。
    2009-06-06
  • mysql清除log-bin日志的方法

    mysql清除log-bin日志的方法

    這篇文章主要介紹了mysql清除log-bin日志的方法,同時介紹了log-bin日志的作用,需要的朋友可以參考下
    2014-06-06

最新評論