目錄
資料型別
- 整數型別:tinyint、smallint、mediumint、nt、bigint
- tinyint
- int
- bigint
- 整型儲存範圍
- 浮點型別:float、double
- float
- double
- decimal(定點數型別)
- 字串型別:char、varchar
- char
- varchar
- char vs varchar
- 位型別:bit
-bit
- 日期型別:date、time、datetime、timestamp、year
- datetime & timetamp
- 列舉 and 集合
嚴格模式
小數型,資料型別用於儲存一些範圍的整數數值範圍。範圍:
注:mysql沒有布林值,使用tinyint(1)構造
整數,資料型別用於儲存一些範圍的整數數值範圍。範圍:
大整數,資料型別用於儲存一些範圍的整數數值範圍。範圍:
注:資料型別指定的寬度,例如 int(5),5指的是查詢結果的顯示寬度,與儲存範圍無關。預設的顯示寬度為最大值+1。另:int的儲存寬度是4個bytes,即32個bit,即2**32無符號最大值為:4294967296-1
有符號最大值:2147483648-1
有符號和無符號的最大數字需要的顯示寬度均為10,而針對有符號的最小值則需要11位才能顯示完全,所以int型別預設的顯示寬度為11是非常合理的
即:整形型別,其實沒有必要指定顯示寬度,使用預設的即可
單精度浮點數(非準確小數值),m是數字總個數,d是小數點後個數。m最大值為255,d最大值為30。float[(m,d)] [unsigned] [zerofill]
範圍:
雙精度浮點數(非精確小數值),m是數字總個數,d是小數點後個數。m最大值為255,d最大值為30double[(m,d)] [unsigned] [zerofill]
範圍:
dec同decimal精確的小數值,m是數字總個數(負號不算),d是小數點後個數。m最大值為65,d最大值為30、decimal[(m[,d])] [unsigned] [zerofill]
精確度:
char(n)用來固定長度的字串,n為字元長度範圍 0~255(乙個中文是乙個字元,是utf8編碼的三個位元組),超出範圍報錯
儲存:缺省會往右填充空格滿足指定長度。
如:指定長度為10,存》10個字元則報錯,存<10個字元則用空格填充直到湊夠10個字元儲存
檢索:在檢索(查詢)時,查出的結果會自動刪除尾部空格。除非我們開啟pad_char_to_full_length sql模式(set sql_mode = 'pad_char_to_full_length';)
varchar(n)用來儲存變長字元型別,n為字元長度範圍 0~65535(如果大於21845會提示用其他型別),超出範圍報錯
儲存: 檢索: 尾部有空格會儲存下來,在檢索(查詢)時,也會正常顯示包含空格在內的內容
總結:innodb引擎:建議使用varchar型別。
bit(m)存放二進位制數,m範圍 1~64,預設為1位
注意:
year
yyyy(1901/2155)
date
yyyy-mm-dd(1000-01-01/9999-12-31)
time
hh:mm:ss('-838:59:59'/'838:59:59')
datetime
yyyy-mm-dd hh:mm:ss(1000-01-01 00:00:00/9999-12-31 23:59:59 y)
timestamp
yyyymmdd hhmmss(1970-01-01 00:00:00/2037 年某時)
在實際應用的很多場景中,mysql的這兩種日期型別都能夠滿足我們的需要,儲存精度都為秒,但在某些情況下,會展現出他們各自的優劣。下面就來總結一下兩種日期型別的區別。
1.datetime的日期範圍是1001——2023年,timestamp的時間範圍是1970——2023年。
2.datetime儲存時間與時區無關,timestamp儲存時間與時區有關,顯示的值也依賴於時區。在mysql伺服器,作業系統以及客戶端連線都有時區的設定。
3.datetime使用8位元組的儲存空間,timestamp的儲存空間為4位元組。因此,timestamp比datetime的空間利用率更高。
4.datetime的預設值為null;timestamp的字段預設不為空(not null),預設值為當前時間(current_timestamp),如果不做特殊處理,並且update語句中沒有指定該列的更新值,則預設更新為當前時間。即,timestamp只要動了對應行資料,會自動更新修改時間。
列舉(enum):欄位的值只能在給定範圍中選乙個(單選)集合(set):欄位的值只能在給定範圍中選擇(可多選)*** enum('male','female');
hobby set('play','music','read','study') :
如果插入的數字不在相應型別的範圍內,依舊可以插入。嚴格模式:如果插入數字不在相應範圍內,則報錯。
設定方式:
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...