mysql 支援多種資料型別。主要有數值型、日期/時間型別、字串型別
mysql中的整數型資料型別
資料型別
說明儲存需求(位元組)
有符號無符號
tinyint
很小的整數
1-128~127
0~255
smallint
小的整數
2-32768~32767
0~65535
meddiumint
中等大小的整數
3-8388608~8388607
0~16777215
int(integer)
普通大小的整數
4-2147483648~2147483647
0~4294967295
bigint
大整數8
-9223372036854775808~9223372036854775808
在mysql中定點數以字串的形式儲存,對精度要求較高時建議使用decimal.
mysql中的小數型別
型別名稱
說明儲存(位元組)
有符號範圍
無符號範圍
float
單精度浮點數
4-3.402823466e+38~-1.175494351e-38
0和1.175494351e-38~3.402823466e+38
double
雙精度浮點數
8-1.7976931348623157e+308~-2.2250738585072014e-308
0和2.2250738585072014e-308~1.7976931348623157e+308
decimal(m,d),dec
壓縮的「嚴格」定點數
m+2-
-日期與時間資料型別
型別名稱
日期格式
日期範圍
儲存(位元組)
year
yyyy
1901-2155
1time
hh:mm:ss
-838:59:59~838:59:59
3date
yyyy-mm-dd
1000-01-01~9999:59:59
3datetime
yyyy-mm-dd hh:mm:ss
1000-01-01 00:00:00~9999-12-31 23:59:59
8timestamp
yyyy-mm-dd hh:mm:ss
1970-01-01 00:00:01 utc~2038-01-19 03:14:07 utc4
1)year
以4位字串或者4位數字格式表示:範圍 1901~2155
以2位字串或者數字格式表示:範圍『0~69』指的是『2000~2069』,70~99值得是「1970~1999」
2)time
為time列分配簡寫的時候注意:如果沒有冒號,mysql解釋值的時候,假定最右邊的兩位表示秒(mysql解釋time值為過趣時間而不是你當天時間)。相反如果time值中如果使用冒號則肯定被看成當天的時間,「『11:12』 表示11:12:00而不是00:11:12.
3)date型別
以'yyyy-mm-dd'或者'yyyymmdd'字串格式表示的日期,取值範圍為:『1000-01-01』~『9999-12-31』
以『yy-mm-dd』或者『yymmdd』字串格式表示的日期年的範圍『0~69』指的是『2000~2069』,70~99值得是「1970~1999」
以yyyy-mm-dd或者yymmdd數字格式表示的的日期
使用current_date或者now(),插入當前系統日期
current_date只返回當前日期值,不包括時間部分
now()返回了日期和時間
## mysql允許不嚴格語法:任何標點符號都可以用做日期之間的間隔符。例如:『98-11-31』、『98.11.31』、『98/11/31』、『98@11@31』之間是等價的
4) datetime
儲存是需要8個位元組
以'yyyy-mm-dd hh:mm:ss'或者'yyyymmdd hh:mm:ss'字串格式表示的日期,取值範圍為:『1000-01-01 00:00:00』~『9999-12-31 23:59:59』
以'yy-mm-dd hh:mm:ss'或者'yymmdd hh:mm:ss'字串格式表示的日期,yy取值範圍『0~69』指的是『2000~2069』,70~99值得是「1970~1999」
以yyyymmddhhmmss或者yymmddhhmmss數字格式表示的的日期
## mysql允許不嚴格語法:任何標點符號都可以用做日期部分或者時間部分的間隔符。
5)timestamp
timestamp與datetime顯示格式相同,顯示寬度固定在19個字元。日期格式:yyyy-mm-dd hh:mm:ss
儲存時需要4個位元組
取值範圍小於datetime為:1970-01-01 00:00:01 utc ~ 2038-01-19 03:14:07 utc
timestamp與datetime除儲存位元組和支援範圍不同,還有乙個最大的區別在於datetime在儲存日期時按照實際輸入格式儲存與時區無關,而timestamp的值儲存的是utc(世界標準時間),儲存時對當前時區進行轉換,檢索時在轉換會當前時區,即查詢是按照當前時區不同現示不同的值。
設定時區:set time_zone = '+10:00' #設定時區為東10區
mysql中文字字串資料型別
型別名稱
說明儲存需求
char(m)
固定長度非二進位制字串
m位元組,1<=m<=255
varchar(m)
變長非二進位制字串
l+1位元組,在此l<=m好1<=m<=255
tinytext
非常小的非二進位制字串
l+1位元組,在此l<2^8
text
正常大小非二進位制字串
l+2位元組,在此l<2^16
midiumtext
中等大小非二進位制字串
l+3位元組,在此l<2^24
longtexy
大的非二進位制字串
l+4位元組,在此l<2^32
enum
列舉型別,只能有乙個列舉字串的值
1個或者兩個位元組,取決於列舉值的數目(最大值65535)
set乙個設定,字串物件可以有另個或者多個set成員
1,2,3,4或8個位元組,取決於集合成員的數量(最多64個成員)
1)chaer和varchar型別
char(m)為固定長度字串,在定義時指定字串列長當儲存時在右側填充空格以達到指定的長度;m表示最大列長度,m範圍是0~255
varchar(m)是長度可變的字串,m是最大列長度,範圍是65535。varchar的最大實際長度由最長的行的大小和使用的字符集決定,而實際占用空間是字串的實際長度+1。
2)text
3)enum
enum是乙個字串物件,其值為表建立時在列規定中列舉的一列值:格式如下,
欄位名 enum(『值1』,『值2』,...)
算術運算子用於各類數值計算,包括加、減、乘、除、求餘
比較運算子用於比較,包括:大於、小於、等於、大於等於,小於等於、不等於,以及in、between and、is null、graetest、least、like、regexp
邏輯運算子的求職結果均為1(true)、0(false)包括:非(not、!)、與(and、&&)、或(or、||)
mysql資料型別用法 mysql資料型別和用法
歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 mysql支援多種列型別 數值型別 日期 時間型別和字串 字元 型別。本章首先對這些列型別進行了概述,然後更加詳細地描述了各種列的型別,以及列型別儲存需求的總結。概述很簡單。關於具體列型別 歡迎進入linux社群論壇,與200萬技術人員互...
mysql 資料型別 真假 MySQL 資料型別
mysql基礎 資料型別 整型型別 根據所儲存的整數數值取值範圍不同,可分為以下五類 1 tinyint佔1個位元組 2 smallint佔2個位元組 3 mediumint 佔3個位元組 4 int佔4個位元組 5 bigint佔8個位元組 根據每種型別所佔的位元組數可確定其無符號整數和有符號整數...
mysql 郵箱 資料型別 mysql 資料型別
1 整型mysql資料型別含義 有符號 tinyint m 1個位元組 範圍 128 127 smallint m 2個位元組 範圍 32768 32767 mediumint m 3個位元組 範圍 8388608 8388607 int m 4個位元組 範圍 2147483648 21474836...