- MySQLi 教程
- MySQLi - 首頁
- MySQLi - 簡介
- MySQLi - PHP 語法
- MySQLi - 連線
- MySQLi - 建立資料庫
- MySQLi - 刪除資料庫
- MySQLi - 選擇資料庫
- MySQLi - 建立表
- MySQLi - 刪除表
- MySQLi - 插入查詢
- MySQLi - 選擇查詢
- MySQLi - WHERE 子句
- MySQLi - 更新查詢
- MySQLi - 刪除查詢
- MySQLi - LIKE 子句
- MySQLi - 排序結果
- MySQLi - 使用 JOIN
- MySQLi - 處理 NULL 值
- 獲取和使用 MySQLi 元資料
- MySQL
- MySQL - 安裝
- MySQL - 管理
- MySQL - 資料型別
- MySQL - 正則表示式
- MySQL - 事務
- MySQL - ALTER 命令
- MySQL - 索引
- MySQL - 臨時表
- MySQL - 克隆表
- MySQL - 使用序列
- MySQL - 處理重複資料
- MySQLi 有用資源
- MySQLi - 有用函式
- MySQLi - 快速指南
- MySQLi - 有用資源
- MySQLi - 討論
MySQLi - 資料型別
在表中正確定義欄位對於資料庫的整體最佳化非常重要。您應該只使用真正需要的欄位型別和大小;如果您知道只需要使用 2 個字元,則不要將欄位定義為 10 個字元寬。這些型別的欄位(或列)也稱為資料型別,以您將在這些欄位中儲存的**資料型別**命名。
MySQL 使用許多不同的資料型別,分為三類:數值型別、日期和時間型別以及字串型別。
數值資料型別
MySQL 使用所有標準的 ANSI SQL 數值資料型別,因此,如果您是從其他資料庫系統遷移到 MySQL,那麼這些定義對您來說會很熟悉。以下列表顯示了常見的數值資料型別及其描述:
INT - 一個常規大小的整數,可以是有符號或無符號的。如果是帶符號的,則允許的範圍是從 -2147483648 到 2147483647。如果是無符號的,則允許的範圍是從 0 到 4294967295。您可以指定最多 11 位的寬度。
TINYINT - 一個非常小的整數,可以是有符號或無符號的。如果是帶符號的,則允許的範圍是從 -128 到 127。如果是無符號的,則允許的範圍是從 0 到 255。您可以指定最多 4 位的寬度。
SMALLINT - 一個小的整數,可以是有符號或無符號的。如果是帶符號的,則允許的範圍是從 -32768 到 32767。如果是無符號的,則允許的範圍是從 0 到 65535。您可以指定最多 5 位的寬度。
MEDIUMINT - 一箇中等大小的整數,可以是有符號或無符號的。如果是帶符號的,則允許的範圍是從 -8388608 到 8388607。如果是無符號的,則允許的範圍是從 0 到 16777215。您可以指定最多 9 位的寬度。
BIGINT - 一個大的整數,可以是有符號或無符號的。如果是帶符號的,則允許的範圍是從 -9223372036854775808 到 9223372036854775807。如果是無符號的,則允許的範圍是從 0 到 18446744073709551615。您可以指定最多 20 位的寬度。
FLOAT(M,D) - 一個浮點數,不能是無符號的。您可以定義顯示長度 (M) 和小數位數 (D)。這不是必需的,預設為 10,2,其中 2 是小數位數,10 是總位數(包括小數位數)。FLOAT 的小數精度可以達到 24 位。
DOUBLE(M,D) - 一個雙精度浮點數,不能是無符號的。您可以定義顯示長度 (M) 和小數位數 (D)。這不是必需的,預設為 16,4,其中 4 是小數位數。DOUBLE 的小數精度可以達到 53 位。REAL 是 DOUBLE 的同義詞。
DECIMAL(M,D) - 一個未打包的浮點數,不能是無符號的。在未打包的小數中,每個小數對應一個位元組。定義顯示長度 (M) 和小數位數 (D) 是必需的。NUMERIC 是 DECIMAL 的同義詞。
日期和時間型別
MySQL 的日期和時間資料型別如下:
DATE - 格式為 YYYY-MM-DD 的日期,介於 1000-01-01 和 9999-12-31 之間。例如,1973 年 12 月 30 日將儲存為 1973-12-30。
DATETIME - 格式為 YYYY-MM-DD HH:MM:SS 的日期和時間組合,介於 1000-01-01 00:00:00 和 9999-12-31 23:59:59 之間。例如,1973 年 12 月 30 日下午 3:30 將儲存為 1973-12-30 15:30:00。
TIMESTAMP - 1970 年 1 月 1 日午夜到 2037 年之間的某個時間戳。這看起來與前面的 DATETIME 格式相同,只是數字之間沒有連字元;1973 年 12 月 30 日下午 3:30 將儲存為 19731230153000(YYYYMMDDHHMMSS)。
TIME - 以 HH:MM:SS 格式儲存時間。
YEAR(M) - 以 2 位或 4 位格式儲存年份。如果長度指定為 2(例如 YEAR(2)),則 YEAR 可以是 1970 年到 2069 年(70 到 69)。如果長度指定為 4,則 YEAR 可以是 1901 年到 2155 年。預設長度為 4。
字串型別
儘管數值和日期型別很有趣,但您儲存的大多數資料都將以字串格式儲存。此列表描述了 MySQLi 中常見的字串資料型別。
CHAR(M) - 長度在 1 到 255 個字元之間的定長字串(例如 CHAR(5)),儲存時用空格填充到指定的長度。定義長度不是必需的,但預設為 1。
VARCHAR(M) - 長度在 1 到 255 個字元之間的變長字串;例如 VARCHAR(25)。建立 VARCHAR 欄位時必須定義長度。
BLOB 或 TEXT - 最大長度為 65535 個字元的欄位。BLOB 是“二進位制大物件”,用於儲存大量二進位制資料,例如影像或其他型別的檔案。定義為 TEXT 的欄位也儲存大量資料;這兩者之間的區別在於,儲存資料的排序和比較在 BLOB 中區分大小寫,而在 TEXT 欄位中不區分大小寫。您無需使用 BLOB 或 TEXT 指定長度。
TINYBLOB 或 TINYTEXT - 最大長度為 255 個字元的 BLOB 或 TEXT 列。您無需使用 TINYBLOB 或 TINYTEXT 指定長度。
MEDIUMBLOB 或 MEDIUMTEXT - 最大長度為 16777215 個字元的 BLOB 或 TEXT 列。您無需使用 MEDIUMBLOB 或 MEDIUMTEXT 指定長度。
LONGBLOB 或 LONGTEXT - 最大長度為 4294967295 個字元的 BLOB 或 TEXT 列。您無需使用 LONGBLOB 或 LONGTEXT 指定長度。
ENUM - 列舉,這是一個表示列表的術語。定義 ENUM 時,您將建立一個必須從中選擇值的專案列表(或者可以為 NULL)。例如,如果您希望您的欄位包含“A”或“B”或“C”,則會將您的 ENUM 定義為 ENUM('A', 'B', 'C'),並且只有這些值(或 NULL)才能填充該欄位。