當前位置:
首頁 > 最新 > MySQL資料庫應用總結(七)—MySQL資料庫的數據類型和運算符(中)

MySQL資料庫應用總結(七)—MySQL資料庫的數據類型和運算符(中)

SQL語法預覽:

創建表欄位數據類型:【createtable 表名(欄位名稱 數據類型); 】

插入欄位值:【insert into表名 values(值1,值2,...,值n);】

查看格式化值:【select* 或 【格式1,格式2,...,格式n】from 表名;】

詳解:

接上期...

4

字元串類型

字元串類型除了可以存儲字元串數據以外,還可以存儲其他數據,比如圖片、聲音和二進位數據。字元串可以進行區分或或者不區分大小寫的串比較。MySQL中的字元串char、varchar、binary、varbinary、blob、tinytext、text、enum和set。

(1)char和varchar類型

char(M)為固定長度字元串,在定義時要指定字元串列長。當保存時在右側填充空格以達到指定長度。M表示列長度,當檢索時實際值尾部空格會自動刪除。

varchar(M)為長度可變的字元串,M表示列最大長度,但是保存時實際佔用空間為字元串實際長度加1。不管是保存還是檢索varchar的值時實際值尾部的空格都會保留。

案例

創建數據表tb_temp8,定義欄位ch和vch的數據類型依次為char(4)和varchar(4),向表中插入數據」ab 「 ,SQL語句:

命令語句

create table tb_temp8(ch char(4),vch varchar(4));

insert into tb_temp8 values(『ab 『,』ab 『);

執行結果如下:

(2)TEXT類型

text列保存非二進位字元串,如文章、評論等等。當保存和查詢text列值時,不刪除尾部空格。Text類型分為四種:tinytext、text、mediumtext和longtext。不同的text類型存儲空間和數據長度不同。

tinytext:最大長度255(28~1)個字元的text列。

text:最大長度為65535(216~1)個字元的text列。

mediumtext:最大長度為16777215(224~1)個字元的text列。

longtext:最大長度為4294967295或4GB(232~1)個字元的text列。

(3)enum類型

enum是一個字元串對象,其值為創建時在列規定中枚舉的一列值。Enum類型的欄位取值時只能在指定的枚舉列表中取,而且一次只能取一個。如果創建的成員中有空格,則其尾部的空格將自動刪除。

Enum值在內部用整數表示,每個枚舉值均有一個索引值:列表值所允許的成員值從1開始編號,MySQL存儲的就是這個索引編號。枚舉最多可以有65535個元素。

例如:定義enum類型的列(null,",first,second,third),該列可以取值和每個值的索引如下表所示。

Enum 值依照列索引順序排列,並且空字元排在非空字元串之前,null值排在其他所有枚舉值之前。

案例

創建表tb_temp9,定義枚舉類型的列enum("first","second","third"),查看列成員的索引值,SQL語句如下:

命令語句

create table tb_temp9(enm enum ("first","second","third"));

insert into tb_temp9 values("first"),("second"),("third"),(null);

執行結果如下:

(4)set類型

語法結構:set("值1","值2",…"值n")

set類型是一個字元串對象,可以有另個或者多個值,set列最多可以有64個成員,其值為創建表時規定的一系列值。Set成員各值之間用逗號,隔開。語法格式如下:

如果插入set欄位的列值有重複,則MySQL自動刪除重複值;插入set欄位值順序並不重要,MySQL會在存入資料庫時,按照定義的順序顯示;如果插入了不正確的值,默認情況下,MySQL將忽視這些值,並給出警告。

案例

創建表tb_temp10,定義set類型欄位s,取值列表為("a","b","c","d"),插入數據("a")、("a,b,a")、("c,a,d")、("a,x,b,y")。SQL語句如下:

命令語句

create table tb_temp10(s set("a","b","c","d"));

insert into tb_temp10 values("a"),("a,b,a"),("c,a,d");

執行結果如下:

5

二進位類型

MySQL支持兩類字元型數據:文本字元串和二進位字元串。前面講解了存儲文本的字元串類型,今天將講解MySQL中存儲二進位數據的數據類型。

MySQL中的二進位數據類型有:bit、binary、varbinary、tinyblob、blob、mediumblob和longblob,今天講解這些二進位類型的特點和使用方法。

(1)bit類型

bit是位欄位類型。M表示值得位數,範圍為1~64。如果M被省略,默認值為1。如果為bit(M)列分配的值長度小於M位,在值得左邊用零填充。如bit(5)列分配一個值b"101" ,其效果與分配b"00101"相同。

Bit數據類型用來保存位欄位值,如以二進位的形式保存數據13,13的二進位為1101,在這裡需要位數至少4位的bit類型,既可以定義列類型為bit(4)。大於位數(M)的二進位數是不能插入bit(M)類型欄位中的。

案例

創建表tb_temp11,定義bit(4)類型欄位b,向表中插入數據3、10、18。SQL語句如下:

命令語句

create table tb_temp11(b bit(4));

insert into tb_temp11 values(3),(10),(18);

執行結果如下:

(2)binary和varbinary類型

binary和varbinary類型類似於char和varchar,不同的是他們包含二進位位元組字元串。使用語法如下:

列名稱 binary(M)或者varbinary(M)

Binary的長度是固定的,指定長度之後,不足最大長度的,將在右邊填充「」補齊以達到指定長度(M)。

Varbinary類型的長度是可變的,其長度可以在0到最大值之間。如制定列數據類型為varbinary(20),如果插入的值得長度只有10,則實際存儲空間為10加1,即其實際佔用的空間為字元的實際長度加1。

案例

創建表tb-temp12,dingyi binary(3)類型額欄位b和varbinary(3)類型的欄位vb,並向表中插入數據"5",比較兩個欄位的存儲空間。SQL語句如下:

命令語句

create table tb_temp12(b binary(3),vb varbinary(3));

insert into tb_temp12 values(5,5);

執行結果如下:

可以看到b欄位的數據長度為3,而vb欄位的數據長度僅為插入的一個字元長度1。B欄位和vb欄位的長度截然不同,因為b欄位不足的空間填充了「」,而vb欄位則沒有填充。

(3)blob類型

blob是一個二進位的大對象,用來存儲可變數量的數據。Blob類型分為四種:tinyblob、blob、mediumblob和longblob,他們可以容納的最大長度不同。

Blob列存儲的是二進位字元串(位元組字元串);text列存儲的是非二進位字元串(字元字元串)。Blob列沒有字符集,並且排序和比較基於列值位元組的數值,text列有一個字符集,並且根據字符集對值進行排序和比較。

未完待續...

SQL語法總結:

創建表欄位數據類型:【createtable 表名(欄位名稱 數據類型); 】

插入欄位值:【insert into表名 values(值1,值2,...,值n);】

查看格式化值:【select* 或 【格式1,格式2,...,格式n】from 表名;】

end

歡迎關注互動|未來科技008

歡迎關注互動|十年之前diary

十年之前diary

文學隨筆,生活點滴

廣讀胸中有本,勤寫筆下生輝


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

跳票的龍蝦,意外收穫的拉麵
讀畫筆記之:望火樓的四季
裸鑽定製為什麼比成品鑽戒受歡迎?
鑽戒戴久了沾上油污 怎樣有效清洗光亮如初
乾隆漢白玉碗最新成交記錄以及市場價值?

TAG:全球大搜羅 |