mysql與sqlserver的資料型別大同小異。因此,可以忽略與sqlserver相同的地方,在sqlserver的基礎上學習。
mysql資料型別與sqlserver有些不同,其定義的基本形式如下:
整型型別(顯示寬度)注意,正確的理解,其實是顯示寬度,因為整型的顯示寬度,對數值大小無影響,只是當設定了zerofill的時候,在顯示的時候補0而已。
從上面的顯示我們看到,設定了寬度為8,並且zerofill了,這樣在查詢的時候,會在前面自動補0。寬度可以不設定,因為整數資料型別都有預設的顯示寬度,不設就採用預設的。
另外,即使設定了顯示寬度,也能賦超過顯示寬度的值,整型的顯示寬度僅僅用於顯示補0。
mysql中可以指定浮點數和定點數的精度
資料型別(m,d)這種型別mysql裡有3種如:float(6,2)、double(6,2)、decimal(6,2);
其區別在於:
當不指定精度時,float、double缺省會儲存實際精度,而decimal預設是整數;
當標度不夠時,都會四捨五入,但decimal會警告資訊。
mysql日期時間所有種類如下:
型別位元組數
取值範圍
零值year
11901~2155
0000
date
41000-01-01~9999-12-31
0000:00:00
time
3-838:59:59~838:59:59
00:00:00
datetime
81000-01-01 00:00:00~9999-12-31 23:59:59
0000-00-00 00:00:00
timestamp
41970-01-01 08:00:01~2038-01-19 11:14:07
00000000000000
date型別前面可以加個d,d表示天即24小時,如往date型別插入 '2 15:20:20';
另外timestamp型別與datetime在無輸入的情況下要注意下:
timestamp使用current_timestamp()而datetime使用now(來獲取當前時間);
輸入null時,系統會輸入系統當前日期與時間;
無任何輸入時,系統會輸入系統當前日期與時間;
在mysql中,字串型別包括char、varchar、blob、text、enum、set。
1、char與varchar
其定義方式為:
字串型別(m)這個m是長度的意思,插入該列的字串長度將不允許超過m所指定的長度。另外,由於mysql在建庫時就指定了字符集,因此就不存在nchar、nvarchar、ntext這種資料型別了。
2、text
text分為4種,與sqlserver不同:
型別允許的長度
儲存空間
tinytext
0~255位元組
值的長度+2位元組
text
0~65535位元組
值的長度+2位元組
mediumtext
0~167772150位元組
值的長度+3位元組
longtext
0~4294967295位元組
值的長度+4位元組
3、enum型別
enum型別(列舉型別),與c#的概念一樣,在定義時指定取值範圍。
屬性名 enum('4、set型別在建立表時,就指定set型別的取值範圍。值1','
值2','
值3'...'
值n')
男','女'
));
insert
into test4 values('男'
);
insert
into test4 values('
爺'); --這行報錯
select
*from test4;
屬性名 set('它與enum的區別在什麼地方呢?值1','
值2','
值3'...,'
值n')
基本上就是多選的enum。
5、二進位制型別
二進位制型別是在資料庫中儲存二進位制資料的資料型別。二進位制型別包括binary、varbinary、bit、tinyblob、blob、mediumblob、longblob。
型別取值範圍
binary(m)
位元組數為m,允許長度為0~m的定長二進位制字串
varbinary(m)
允許長度為0~m的變長二進位制字串,位元組數為值的長度加1
bit(m)
m位二進位制資料,m最大值為64
tinyblob
可變長二進位制資料,最多255個位元組
blob
可變長二進位制資料,最多2的16次方-1個位元組
mediumblob
可變長二進位制資料,最多2的24次方-1個位元組
longblob
可變長二進位制資料,最多2的32次方-1個位元組
1、binary和varbinary
兩者唯一的差別在於binary當長度不夠時會補\0。
2、bit型別
bit型別與sqlserver裡的就差別大了。 其定義方式為:
bit(m)其中"m"指定了該二進位制的最大位元組長度為m,m的最大值為64。如bit(4)就是資料型別為bit型別,長度為4。其
能夠儲存的值為0-15。因為變成二進位制後,15的值為1111。
在查詢bit型別的資料時,要用bin(欄位名+0)來將值轉換為二進位制顯示。
create上面的結果以二進位制顯示,最大的長度為4。table test6(bb bit(4));
insert
into test6 values(12);
select bin(bb+
0) from test6;
3、blob型別
整型:根據要顯示的最大值決定;
浮點型:要顯示小數。如果要精確到小數點後10位,就選擇double,而不應該選擇float。decimal精度較高,浮點數會出現誤差,如果精度較高,則應選擇定點數decimal;
enum型別和set型別:長度不同,enum型別最多可以由65535個成員,而set型別最多只能包含64個成員。且enum只能單選,而set型別可以多選;
text型別和blob型別:text只能儲存字元資料,而blob可以儲存二進位制資料。如果是純文字,適合text。如果是等適合存二進位制;
1、儲存路徑的問題
mysql中,如果路徑中使用"\"符號時,這個符號會被過濾。解決的辦法是路徑中用"/"或"\\"來代替"\"。這樣mysql就不會自動過濾路徑中的分隔符。
2、mysql中的布林型別
mysql中沒有bool或boolean型別,但是為了支援sql標準,也可以定義bool或boolean型別的,但是bool或boolean型別最後轉換成的是tinyint(1),也就是說,在mysql中,布林型別實際上是tinyint(1)。
3、mysql中如何儲存jpg或*****
一般情況下,資料庫中不直接儲存和音訊檔案,而是儲存或音訊檔案的路徑,如果在特殊情況下需要在mysql資料庫中儲存和音訊檔案,可以選擇blob型別;
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...