下表給出了mysql 定義串值列的型別,以及每種型別的最大尺寸和儲存需求。對於可變長的列型別,各行的值所佔的儲存量是不同的,這撒於實際存放在列中的值的長度。這個長度在表中用l 表示。
型別說明
最大尺寸
儲存需求
char( m)
m 位元組
m 位元組
varchar(m)
m 位元組
l + 1位元組
tinyblob, tinytext28
- 1位元組
l + 1位元組
blob, text216
- 1 位元組
l + 2位元組
mediumblob, mediumtext224
- 1位元組
l + 3位元組
longblob, longtext232
- 1位元組
l + 4位元組
enum(「value1」, 「value2」, ...)
65535 個成員
1 或2位元組
set (「value1」, 「value2」, ...)
64個成員
1、2、3、4 或8位元組
表5:串列型別最大尺寸及儲存需求
l 以外所需的額外位元組為存放該值的長度所需的位元組數。mysql 通過儲存值的內容及其長度來處理可變長度的值。這些額外的位元組是無符號整數。請注意,可變長型別的最大長度、此型別所需的額外位元組數以及占用相同位元組數的無符號整數之間的對應關係。例如,mediumblob 值可能最多224 - 1位元組長並需要3 個位元組記錄其結果。3 個位元組的整數型別mediumint 的最大無符號值為224 - 1。這並非偶然。
2.3日期時間列型別
mysql 提供了幾種時間值的列型別,它們分別是: date、datetime、time、timestamp和year。下表給出了mysql 為定義儲存日期和時間值所提供的這些型別,並給出了每種型別的合法取值範圍。
型別名
說明
date
「yyyy-mm-dd」格式表示的日期值
time
「hh:mm:ss」格式表示的時間值
datetime
「yyyy-mm-dd hh:mm:ss」格式
timestamp
「yyyymmddhhmmss」格式表示的時間戳值
year
「yyyy」格式的年份值
表6:日期時間列型別
型別名
取值範圍
儲存需求
date
「1000-01-01」到「9999-12-31」
3位元組time
「-838:59:59」到「838:59:59」
3位元組datetime
「1000-01-01 00:00:00」 到「9999-12-31 23:59:59」
8位元組timestamp
19700101000000 到2037 年的某個時刻
4位元組year
1901 到2155
1位元組
表7: 日前時間列型別的取值範圍和儲存需求
下面舉個例子:
這個例子建立乙個student表,這個表中有name欄位,字元型別列,不允許null(空值)。有chinese、maths和english三個整數型別列。還有個birthday日期型別列。
create table student ( name varchar(20) not null, chinese tinyint(3), maths tinyint(3), english tinyint(3), birthday date )
mysql資料型別及列型別(1)
我們要把現實世界中的各種資訊轉換成計算機能理解的東西,這些轉換後的資訊就形成了資料。例 如,某人的出生日期是 1987年5月23日 他的身高是170厘公尺,等等。資料不僅包括數字 字母 文字和其他特殊字元組成的文字形式的資料,而且還 包括圖形 影象 動畫 影像 聲音等多 資料。但使用最多 最基本的仍...
mysql資料型別及列型別(2)
2.mysql的列 字段 型別 資料庫中的每個表都是由乙個或多個列 字段 構成的。在用create table語句建立乙個表時,要為每列 字段 指定乙個型別。列 字段 的型別比資料型別更為細化,它精確地描述了給定表列 字段 可能包含的值的種類,如是否帶小數 是否文字很多。2.1數值列型別 mysql...
MySQL資料型別及列型別 一
我們要把現實世界中的各種資訊轉換成計算機能理解的東西,這些轉換後的資訊就形成了資料。例如,某人的出生日期是 1987年5月23日 他的身高是170厘公尺,等等。資料不僅包括數字 字母 文字和其他特殊字元組成的文字形式的資料,而且還包括圖形 影象 動畫 影像 聲音等多 資料。但使用最多 最基本的仍然是...