mysql支持的數據類型

??在mysql中,也有和python一樣的數據類型,在我們創(chuàng)建內容的時候也要考慮數據的類型.

數值類型

??mysql支持所有的標準SQL數值數據類型這些類型包括嚴格數值數據類型(INTEGER侨艾、SMALLINT、DECIMAL和NUMERIC),以及近似數值數據類型(FLOAT鞠呈、REAL和DOUBLE PRECISION)至会。
關鍵字INT是INTEGER的同義詞慢哈,關鍵字DEC是DECIMAL的同義詞偎肃。
??MySQL支持的整數類型有TINYINT贺纲、MEDIUMINT和BIGINT。下面的表顯示了需要的每個整數類型的存儲和范圍苟弛。
??對于小數的表示喝滞,MYSQL分為兩種方式:浮點數和定點數。浮點數包括float(單精度)和double(雙精度),而定點數只有decimal一種膏秫,在mysql中以字符串的形式存放右遭,比浮點數更精確,適合用來表示貨幣等精度高的數據缤削。
BIT數據類型保存位字段值窘哈,并且支持MyISAM、MEMORY亭敢、InnoDB和BDB表滚婉。

| 類型 | 大小 | 范圍(有符號)|范圍(無符號)| unsigned約束 |
| ----- | -----| -----| -----| -----| ----- |
| TINYINT|1 字節(jié)|(-128,127)|(0帅刀,255) | 小整數值 |
|SMALLINT|2 字節(jié)|(-32 768让腹,32 767)|(0,65 535)|大整數值|
|MEDIUMINT|3 字節(jié)|(-8 388 608扣溺,8 388 607)|(0骇窍,16 777 215)|大整數值|
|INT或INTEGER|4 字節(jié)|(-2 147 483 648,2 147 483 647)|(0锥余,4 294 967 295)|大整數值|
|BIGINT|8 字節(jié)|(-9 233 372 036 854 775 808腹纳,9 223 372 036 854 775 807)|(0,18 446 744 073 709 551 615)|極大整數值|
|FLOAT|4 字節(jié)|float(255,30)|(-3.402 823 466 E+38驱犹,-1.175 494 351 E-38)嘲恍,0,(1.175 494 351 E-38雄驹,3.402 823 466 351 E+38)|0佃牛,(1.175 494 351 E-38,3.402 823 466 E+38)||單精度浮點數值|
|DOUBLE|8 字節(jié)double(255,30)|(-1.797 693 134 862 315 7 E+308荠医,-2.225 073 858 507 201 4 E-308)吁脱,0,(2.225 073 858 507 201 4 E-308彬向,1.797 693 134 862 315 7 E+308)|0兼贡,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)|雙精度浮點數值|
|DECIMAL|對DECIMAL(M,D) 娃胆,如果M>D遍希,為M+2否則為D+2 double(65,30)|依賴于M和D的值|依賴于M和D的值|小數值|

# 創(chuàng)建表一個是默認寬度的int,一個是指定寬度的int(5)
mysql> create table t1 (id1 int,id2 int(5));
Query OK, 0 rows affected (0.02 sec)

# 像t1中插入數據1里烦,1
mysql> insert into t1 values (1,1);
Query OK, 1 row affected (0.01 sec)

# 可以看出結果上并沒有異常
mysql> select * from t1;
+------+------+
| id1  | id2  |
+------+------+
|    1 |    1 |
+------+------+
row in set (0.00 sec)

# 那么當我們插入了比寬度更大的值凿蒜,會不會發(fā)生報錯呢禁谦?
mysql> insert into t1 values (111111,111111);
Query OK, 1 row affected (0.00 sec)

# 答案是否定的,id2仍然顯示了正確的數值废封,沒有受到寬度限制的影響
mysql> select * from t1;
+------------+--------+
| id1        | id2    |
+------------+--------+
| 0000000001 |  00001 |
| 0000111111 | 111111 |
+------------+--------+
rows in set (0.00 sec)

# 修改id1字段 給字段添加一個unsigned表示無符號
mysql> alter table t1 modify id1 int unsigned;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t1;
+-------+------------------+------+-----+---------+-------+
| Field | Type             | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id1   | int(10) unsigned | YES  |     | NULL    |       |
| id2   | int(5)           | YES  |     | NULL    |       |
+-------+------------------+------+-----+---------+-------+
rows in set (0.01 sec)

# 當給id1添加的數據大于214748364時州泊,可以順利插入
mysql> insert into t1 values (2147483648,2147483647);
Query OK, 1 row affected (0.00 sec)

# 當給id2添加的數據大于214748364時,會報錯
mysql> insert into t1 values (2147483647,2147483648);
ERROR 1264 (22003): Out of range value for column 'id2' at row 1

int整數示例
# 創(chuàng)建表的三個字段分別為float漂洋,double和decimal參數表示一共顯示5位遥皂,小數部分占2位
mysql> create table t2 (id1 float(5,2),id2 double(5,2),id3 decimal(5,2));
Query OK, 0 rows affected (0.02 sec)

# 向表中插入1.23,結果正常
mysql> insert into t2 values (1.23,1.23,1.23);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t2;
+------+------+------+
| id1  | id2  | id3  |
+------+------+------+
| 1.23 | 1.23 | 1.23 |
+------+------+------+
row in set (0.00 sec)

# 向表中插入1.234刽漂,會發(fā)現4都被截斷了
mysql> insert into t2 values (1.234,1.234,1.234);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from t2;
+------+------+------+
| id1  | id2  | id3  |
+------+------+------+
| 1.23 | 1.23 | 1.23 |
| 1.23 | 1.23 | 1.23 |
+------+------+------+
rows in set (0.00 sec)

# 向表中插入1.235發(fā)現數據雖然被截斷演训,但是遵循了四舍五入的規(guī)則
mysql> insert into t2 values (1.235,1.235,1.235);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from t2;
+------+------+------+
| id1  | id2  | id3  |
+------+------+------+
| 1.23 | 1.23 | 1.23 |
| 1.23 | 1.23 | 1.23 |
| 1.24 | 1.24 | 1.24 |
+------+------+------+
rows in set (0.00 sec)

# 建新表去掉參數約束
mysql> create table t3 (id1 float,id2 double,id3 decimal);
Query OK, 0 rows affected (0.02 sec)

# 分別插入1.234
mysql> insert into t3 values (1.234,1.234,1.234);
Query OK, 1 row affected, 1 warning (0.00 sec)

# 發(fā)現decimal默認值是(10,0)的整數
mysql> select * from t3;
+-------+-------+------+
| id1   | id2   | id3  |
+-------+-------+------+
| 1.234 | 1.234 |    1 |
+-------+-------+------+
row in set (0.00 sec)

# 當對小數位沒有約束的時候,輸入超長的小數贝咙,會發(fā)現float和double的區(qū)別
mysql> insert into t3 values (1.2355555555555555555,1.2355555555555555555,1.2355555555555555555555);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from t3;
+---------+--------------------+------+
| id1     | id2                | id3  |
+---------+--------------------+------+
|   1.234 |              1.234 |    1 |
| 1.23556 | 1.2355555555555555 |    1 |
+---------+--------------------+------+
rows in set (0.00 sec)

小數示例

日期和時間類型

表示時間值的日期和時間類型為DATETIME样悟、DATE、TIMESTAMP庭猩、TIME和YEAR窟她。
每個時間類型有一個有效值范圍和一個"零"值,當指定不合法的MySQL不能表示的值時使用"零"值蔼水。
TIMESTAMP類型有專有的自動更新特性礁苗,將在后面描述。

類型 大小(字節(jié)) 范圍 格式 用途
DATE 3 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/2038 結束時間是第 2147483647 秒徙缴,北京時間 2038-1-19 11:14:07,格林尼治時間 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS 混合日期和時間值嘁信,時間戳

字符串類型

字符串類型指CHAR于样、VARCHAR、BINARY潘靖、VARBINARY穿剖、BLOB、TEXT卦溢、ENUM和SET糊余。該節(jié)描述了這些類型如何工作以及如何在查詢中使用這些類型。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末单寂,一起剝皮案震驚了整個濱河市贬芥,隨后出現的幾起案子,更是在濱河造成了極大的恐慌宣决,老刑警劉巖蘸劈,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異尊沸,居然都是意外死亡威沫,警方通過查閱死者的電腦和手機贤惯,發(fā)現死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棒掠,“玉大人孵构,你說我怎么就攤上這事⊙毯埽” “怎么了颈墅?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長溯职。 經常有香客問我精盅,道長,這世上最難降的妖魔是什么谜酒? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任叹俏,我火速辦了婚禮,結果婚禮上僻族,老公的妹妹穿的比我還像新娘粘驰。我一直安慰自己,他們只是感情好述么,可當我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布蝌数。 她就那樣靜靜地躺著,像睡著了一般度秘。 火紅的嫁衣襯著肌膚如雪顶伞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天剑梳,我揣著相機與錄音唆貌,去河邊找鬼。 笑死垢乙,一個胖子當著我的面吹牛锨咙,可吹牛的內容都是我干的。 我是一名探鬼主播追逮,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酪刀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钮孵?” 一聲冷哼從身側響起骂倘,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎油猫,沒想到半個月后稠茂,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年睬关,在試婚紗的時候發(fā)現自己被綠了诱担。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡电爹,死狀恐怖蔫仙,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情丐箩,我是刑警寧澤摇邦,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站屎勘,受9級特大地震影響施籍,放射性物質發(fā)生泄漏。R本人自食惡果不足惜概漱,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一丑慎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓤摧,春花似錦竿裂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至这揣,卻和暖如春悔常,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背给赞。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工这嚣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人塞俱。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像吏垮,于是被迫代替她去往敵國和親障涯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內容