首頁  >  文章  >  資料庫  >  mysql資料類型有哪些

mysql資料類型有哪些

coldplay.xixi
coldplay.xixi原創
2020-10-28 10:05:2924199瀏覽

mysql資料類型有:1、數值類型;2、日期和時間類型;3、字串類型是CHAR、VARCHAR、BINARY【二進位資料類型】、BLOB、TEXT【文字類型】、ENUM【枚舉類型】和SET【資料集合】。

mysql資料類型有哪些

mysql資料型別有:

MySQL支援的資料型別在幾類:數值類型,日期和時間類型和字串(字元)類型。

資料類型:

   

#注意:

  •   在定義欄位是我們經常使用num int (10) unsigned 這種寫法,其中的int(10) 並不是表示該欄位會儲存10個長度的數字。

  •   int(M) 表示的是數字顯示的格式,且只能在欄位屬性設定了zerofill時才有效。

  eg:

    tinyint(4) -- 實際儲存值為2, 如果沒有指定zerofill,查詢得到的結果就是2, 如果指定了zerofill,則查詢結果就是0002,左邊使用0來進行填滿;

zerofill屬性:

  • 如果欄位指定了zerofill屬性,mysql會自動為字段加上UNSIGNED 屬性。

  • 當涉及清單達式或UNION查詢中時,ZEROFILL屬性將被忽略

浮點類型:

    Float(M,D)M為數字的位數,包含了整數部分和小數部分;D為小數部分,【D <= M-2】; 如果等於則整數部分為0,最大的值也就是0.99

     eg:

  •   Float(2,1) -- 表示一位整數和一位小數, eg:1.1

  •   Float(1,2) -- #  Float(1,2) -- 語法錯誤,總共才#1 位元 怎麼可能有2

    位元小數

    關於預設值:
  • 預設值必須是一個常亮,不能函數或表達式。例外:TIMESTAMP的預設值可以使用

    CURRENT_TIMESTAMP
  • BLOB and TEXT 

    不能設定預設值

    如果一個欄位不明確的指出預設是多少的情況:
  • 如果資料庫為strict mode 

    模式下,則會報錯誤
  • 如果模式不處於strict mode

    模式,系統會根據型別來確認使用何種預設值

日期和時間格式:

  表示時間值的日期和時間類型是日期時間(DATATIME) 、日期(DATA)、時間戳(TIMESTAMP)、時間(TIME)和年份(YEAR)。

   

  DATATIME範圍: '1000-01-01 00:00:00' to

'9999-12-31 23 :59:59'

  DATA範圍:'1000-01-01' to

'9999-12-31'

  TIMESTAMP範圍:'1970-01-01 00:00:01' UTC to

'2038-01-19 03:14:07'

  TIME範圍:'-838:59:59' to

'838:59:59'#######

  YEAR範圍:year(4) --- 1901~2155; year(2) --- 00~99

  TIMESTAMP: 時間戳列顯示在相同的格式為DATETIME列。換句話說,顯示寬度固定為19個字符,格式是'YYYY-MM-DD HH:MM:SS'。

  TIMESTAMP資料型別提供自動初始化與更新。但只能有一列預設值和更新是指定為CURRENT_TIMESTAMP

  1、自動初始化和自動更新eg : ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

 eg2、只有自動初始化; TIMESTAMP DEFAULT CURRENT_TIMESTAMP

  3、只有自動更新; eg:ts TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP

  4、都沒有; :

  字串類型是CHAR、VARCHAR、BINARY【二進位資料類型】、BLOB、TEXT【文字類型】、ENUM【枚舉類型】和SET【資料集合】。

  char和varchar的區別:儲存長度的差異在於最大長度和是否保留空格;

    char會保留空格,varchar不會保留空格

    

char為0~ 255; varchar為0 ~ 65535

#  

#  ENUM: #  ENUM: 

#  ENUM: #[ #枚舉是一個字串物件從中明確列舉了在建立表格時列出規範的允許值的清單中選擇一個值。 【當插入值不能和列表的值驚醒匹配時,預設是最大索引值】

#
 , ,
numbers ENUM(&#39;0&#39;,&#39;1&#39;,&#39;2&#39;)
mysql> INSERT INTO t (numbers) VALUES(2),(&#39;2&#39;),(&#39;3&#39;);mysql> SELECT * FROM t;+---------+
| numbers |
+---------+
| 1       |
| 2       |
| 2       |
+---------+

  SET: 

############### ##集是一個對象,該對象可以有零個或多個值的字串,其中每個必須從列表中選擇允許創建表時指定的值。 【###當插入值無法和清單的值經行相符時,MYSQL會忽略清單中不存在的值###】######
1 CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));2 3 INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');
######  從定義中可以看出ENUM和SET的差別在於值是定義時指定的值中的一個還是多個。還有就是在插入值在清單中不存在的表現不一樣。 ###############更多相關免費學習推薦:########mysql教學#########(影片)###### ####

以上是mysql資料類型有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn