MySql Tables 基本觀念與數據類型

Tables 基本觀念

  • 一個Databases 是多個Table 組成。
    A Database is just a bunch of tables.
  • 表以結構化格式儲存資料。
    Tables hold the data in structured format.

Data Type

Numeric Types (數字類型)

  • BIT(size)位值類型。 每個值的位數在大小中指定。 size 參數可以儲存 1 到 64 之間的值。size 的預設值為 1。
  • TINYINT:一個非常小的整數。 有符號範圍是從 -128 到 127。無符號範圍是從 0 到 255。size 參數指定最大顯示寬度(即 255)
  • BOOL:零被視為假,非零值被視為真。
  • BOOLEAN:等於布林值
  • SMALLINT(size):一個小整數。 有符號範圍是從 -32768 到 32767。無符號範圍是從 0 到 65535。size 參數指定最大顯示寬度(即 255)
  • MEDIUMINT:一個中等整數。 有符號範圍是從 -8388608 到 8388607。無符號範圍是從 0 到 16777215。size 參數指定最大顯示寬度(即 255)
  • INT:一個中等整數。 有符號範圍是從-2147483648到2147483647。無符號範圍是從0到4294967295。size參數指定最大顯示寬度(即255)
  • INTEGER(size):等於中等整數
  • BIGINT(size):一個大整數。 有符號範圍是從 -9223372036854775808 到 9223372036854775807。無符號範圍是從 0 到 18446744073709551615。size 到 18446744073709551615。size 到 18446744073709551615。
  • FLOAT:浮點數。 總位數在大小中指定。 小數點後的位數在 d 參數中指定。 此語法在 MySQL 8.0.17 中已棄用,並將在未來的 MySQL 版本中刪除
  • DOUBLE(size, d):正常大小的浮點數。 總位數在大小中指定。 小數點後的位數在d參數中指定
  • DECIMAL(size, d):精確的定點數。 總位數在大小中指定。 小數點後的位數在 d 參數中指定。 size 的最大數量為 65。d 的最大數量為 30。size 的預設值為 10。d 的預設值為 0。
  • DEC(size, d):等於精確的定點數

String Types (字符類型)

  • CHAR:固定長度字串(可以包含字母、數字和特殊字元)。 size 參數指定列長度(以字元為單位)- 可以是從 0 到 255。
  • VARCHAR:可變長度字串(可以包含字母、數字和特殊字元)。 size 參數指定最大列長度(以字元為單位) - 可以是從 0 到 65535
  • BINARY:等於 CHAR(),但儲存二進位位元組字串。 size 參數指定列長度(以位元組為單位)。預設值為 1
  • VARBINARY:等於 VARCHAR(),但儲存二進位位元組字串。 size 參數指定最大列長度(以位元組為單位)。
  • TINYBLOB:對於 BLOB(二進位大型物件)。最大長度:255 位元組
  • TINYTEXT:儲存最大長度為 255 個字元的字串
  • TEXT(size):保存最大長度為 65,535 位元組的字串
  • BLOB(size):對於 BLOB(二進位大型物件)。最多可容納 65,535 位元組的數據
  • MEDIUMTEXT:保存最大長度為 16,777,215 個字元的字串
  • MEDIUMBLOB:對於 BLOB(二進位大型物件)。最多可容納 16,777,215 位元組的數據
  • LONGTEXT:保存最大長度為 4,294,967,295 個字元的字串
  • LONGBLOB:對於 BLOB(二進位大型物件)。最多可容納 4,294,967,295 位元組的數據
  • ENUM(val1, val2, val3, ...):只能有一個值的字串對象,該值是從可能值列表中選擇的。您最多可以在 ENUM 清單中列出 65535 個值。如果插入的值不在清單中,則會插入空白值。這些值會按照您輸入的順序排序
  • SET(val1, val2, val3, ...):一個字串對象,可以有 0 個或多個從可能值清單中選擇的值。您可以在 SET 清單中列出最多 64 個值

Date Types

  • DATE:A date. Format: YYYY-MM-DD. The supported range is from '1000-01-01' to '9999-12-31' 格式:年-月-日。支援的範圍是從“1000-01-01”到“9999-12-31”
  • DATETIME:日期和時間的組合。格式:YYYY-MM-DD hh:mm:ss。支援的範圍是從“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。在列定義中新增 DEFAULT 和 ON UPDATE 以自動初始化並更新至目前日期和時間
  • TIMESTAMP:一個時間戳。 TIMESTAMP 值儲存為自 Unix 紀元 ('1970-01-01 00:00:00' UTC) 以來的秒數。格式:YYYY-MM-DD hh:mm:ss。支援的範圍是從“1970-01-01 00:00:01”UTC 到“2038-01-09 03:14:07”UTC。可以在列定義中使用 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 指定自動初始化和更新到目前日期和時間
  • TIME:一次。格式:時:分:秒。支援的範圍是從“-838:59:59”到“838:59:59”
  • YEAR:四位數格式的年份。允許的四位數字格式值:1901 到 2155 和 0000。 MySQL 8.0 不支援兩位數格式的年份。

參考w3schools MySQL Data Types