數據定義類型總彙
1、整數型:
整數類型 | 字節 | 有符號範圍 | 無符號範圍 | 用途 |
tinyint | 1 | (-128,127) | (0,255) | 小整數 |
smallint | 2 | (-32 768,32 767) | (0,65 535) | 大整數 |
mediumint | 3 | (-8 388 608,8 388 607) | (0,16 777 215) | 大整數 |
int或integer | 4 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 超大整數 |
bigint | 8 | (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 極大整數 |
2、字段定義方法:
Tinyint(寬度)
Unsigned無符號整數。
Zerofill左側補0,必須爲正數。
[null/not null]是否允許爲NULL。
dfault 值默認值。
Auto_increment自動增量
Primary key主鍵
寬度不代表限制取值範圍。
3、主鍵:
一般主鍵爲整數,主鍵是索引的一種。
一個表只能有一個主鍵,主鍵可由一列或多列組成(複合主鍵)。
Primary key = not null + unique
主鍵存在的方式:
1.唯一主鍵。如用戶ID和學生學號......
2.複合主鍵。如主機地址+端口號 = 主鍵。
3.增加一個ID字段作爲主鍵。如ID = (0 , +∞)
4、浮點數:
浮點數類型 | 字節 | 特點 | 定義(M=有效位數,D=小數位數) |
Float | 4 | 單精度 | Float(M,D) |
Double | 8 | 雙精度 | Double(M,D) |
Decimal | [M/D]+2 | 嚴格浮點數 | Decimal(M,D) |
5、字符串:
不能插入超過L長度的字符串,L是字符數不是字節數。
定長字符串:設輸入數爲N,N<=L。
Char(L)L<=255當N<L時,用空格補齊,實佔空間爲L。速度快
邊長字符串:
Varchar(L)L<=65535(ascii)=22000(utf8) 當N<L時,實佔空間爲N+(1~2)字節。
6、大文本類型:
字節根據編碼去換算課存多少漢字。
utf8/3=?Gbk/2=?
類型名 | 字節 |
tinytext | 0 ~ 255 |
Text | 0 ~ 65535 |
mediuntext | 0 ~ 2^24-1 |
longtext | 0 ~ 2^32-1 |
7、二進制大對象類型:
Blob
保存二進制內容,如 圖片、視頻、音樂 .......等等。
8、枚舉類型:
Enum (‘值1’,‘值2’,......)
保存單選數據,只能選定義過的數據。
9、集合類型:
不支持NULL
Set 成員 max 64個
格式:set (‘a’,‘b’,‘c’,......)not null;
10、時間類型:
類型 | 字節 | 範圍 | 格式 | 用途 |
datetime | 4 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
time | 3 | -838:59:59/838:59:59 | HH:MM:SS | 時間值 |
year | 1 | 1901/2155 | YYYY | 年份值 |
datetime | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 年份時間值 |
timestamp | 4 | 1970-01-01 00:00:00/2037 年某時 | YYYYMMDD HHMMSS | 時間戳 |