真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL列類型中的數(shù)值型詳細教程

下文主要給大家?guī)鞰ySQL列類型中的數(shù)值型詳細教程,希望這些內(nèi)容能夠帶給大家實際用處,這也是我編輯MySQL列類型中的數(shù)值型詳細教程這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。                                                            

成都創(chuàng)新互聯(lián)公司服務(wù)項目包括尼金平網(wǎng)站建設(shè)、尼金平網(wǎng)站制作、尼金平網(wǎng)頁制作以及尼金平網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,尼金平網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到尼金平省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

列類型(數(shù)據(jù)類型)

所謂的列類型,其實就是指數(shù)據(jù)類型,即對數(shù)據(jù)進行統(tǒng)一的分類,從系統(tǒng)的角度出發(fā)是為了能夠使用統(tǒng)一的方式進行管理,更好的利用有限的空間。

在 SQL 中,將數(shù)據(jù)類型分成了三大類,分別為:數(shù)值型、字符串型和日期時間型。

MySQL列類型中的數(shù)值型詳細教程

對于數(shù)值型數(shù)據(jù),可以進一步將其劃分為整數(shù)型和小數(shù)型。

整數(shù)型

在 SQL 中,由于要考慮節(jié)省磁盤空間的問題,因此系統(tǒng)又將整型細分成五類,分別為:

  • tinyint:迷你整型,使用 1 個字節(jié)存儲數(shù)據(jù)(常用);

  • smallint:小整型,使用 2 個字節(jié)存儲數(shù)據(jù);

  • mediumint:中整型,使用 3 個字節(jié)存儲數(shù)據(jù);

  • int:標(biāo)準(zhǔn)整型,使用 4 個字節(jié)存儲數(shù)據(jù)(常用);

  • bigint:大整型,使用 8 個字節(jié)存儲數(shù)據(jù)。

接下來,輸入如下 SQL 語句進行測試:

-- 創(chuàng)建整型表create table my_int(
    int_1 tinyint,
    int_2 smallint,
    int_3 int,
    int_4 bigint
)charset utf8;

MySQL列類型中的數(shù)值型詳細教程

如上圖所示,咱們已經(jīng)成功創(chuàng)建my_int表,再插入數(shù)據(jù):

-- 插入數(shù)據(jù)insert into my_int values (1,2,3,4);insert into my_int values ('a','b','c','d');insert into my_int values (255,2,3,4);

MySQL列類型中的數(shù)值型詳細教程

如上圖所示,通過列類型,咱們可以限定插入數(shù)據(jù)的類型以及長度范圍。

至于為什么在對int_1賦值時,報出超出范圍的錯誤,則是因為在 SQL 中數(shù)值類型默認(rèn)是有符號位的,即分正負。如果需要使用無符號的數(shù)據(jù),這就需要咱們自己對數(shù)據(jù)類型進行聲明啦,即在聲明數(shù)據(jù)類型時,追加unsigned關(guān)鍵字。例如:

-- 在 my_int 表中,添加 int_5 字段,設(shè)置其數(shù)據(jù)類型為 tinyint unsignedalter table my_int add int_5 tinyint unsigned;

MySQL列類型中的數(shù)值型詳細教程

如上圖所示,添加int_5字段成功,繼續(xù)插入數(shù)據(jù):

-- 插入數(shù)據(jù)insert into my_int values (1,2,3,4,255);

MySQL列類型中的數(shù)值型詳細教程

如上圖所示,當(dāng)咱們將tinyint限定為unsigned之后,已經(jīng)可以插入0~255之間的任何整數(shù)啦!但是,回過頭來,讓咱們仔細看看下面這張圖:

MySQL列類型中的數(shù)值型詳細教程

通過觀察上面這張圖,咱們會發(fā)現(xiàn):每個字段的數(shù)據(jù)類型后面都會跟著一對括號,并且里面含有數(shù)字。這些數(shù)字啊,其實并沒有什么特別的含義,只是表示數(shù)據(jù)的顯示寬度。實際上,咱們可以修改顯示的寬度,但是這種修改并不會改變數(shù)據(jù)本身的大小。

顯示寬度的意義:在于當(dāng)數(shù)據(jù)不夠顯示寬度的時候,會自動讓數(shù)據(jù)變成對應(yīng)的顯示寬度,通常需要搭配一個前導(dǎo)0來增加寬度,其不改變數(shù)據(jù)值的大小,即用zerofill進行零填充,并且零填充會導(dǎo)致數(shù)值自動變成無符號。

下面,執(zhí)行如下 SQL 語句:

-- 在 my_int 表中,添加 int_6 字段,設(shè)置其數(shù)據(jù)類型為 tinyint zerofillalter table my_int add int_6(3) tinyint zerofill;

MySQL列類型中的數(shù)值型詳細教程

再插入數(shù)據(jù),進行測試:

-- 插入數(shù)據(jù)insert into my_int values (1,2,3,4,5,6);

MySQL列類型中的數(shù)值型詳細教程

如上圖所示,零填充的意義:在于保證數(shù)據(jù)的格式。

小數(shù)型

小數(shù)型,即帶有小數(shù)點或者范圍超出整型的數(shù)值類型。

在 SQL 中,將小數(shù)型細分為浮點型和定點型兩種,其中:

  • 浮點型:小數(shù)點浮動,精度有限,容易丟失精度;

  • 定點型:小數(shù)點固定,精度固定,不會丟失精度。

第 1 種:浮點型

浮點型數(shù)據(jù)是一種精度型數(shù)據(jù),因為超出指定范圍之后,其會丟失精度,自動進行四舍五入操作。理論上,浮點型分為兩種精度:

  • float:單精度,占用 4 個字節(jié)存儲數(shù)據(jù),精度范圍大概為 7 位左右;

  • double:雙精度,占用 8 個字節(jié)存儲數(shù)據(jù),精度范圍大概為 15 位左右。

浮點型的使用方式:如果直接用float,則表示沒有小數(shù)部分;如果用float(M,D),其中M代表總長度,D代表小數(shù)部分長度,M-D則為整數(shù)部分長度。

執(zhí)行如下 SQL 語句創(chuàng)建浮點數(shù)表,進行測試:

-- 創(chuàng)建浮點數(shù)表create table my_float(
    f1 float,
    f2 float(10,2),
    f3 float(6,2)
)charset utf8;

在咱們向浮點數(shù)表my_float插入數(shù)據(jù)的時候,可以直接插入小數(shù),也可以插入用科學(xué)計數(shù)法表示的數(shù)據(jù)。此外,插入浮點型數(shù)據(jù)時,整數(shù)部分是不能超出長度范圍的,但是小數(shù)部分是可以超出長度范圍的,系統(tǒng)會自動進行四舍五入的操作。特別是,如果浮點數(shù)是因為系統(tǒng)進位(四舍五入)導(dǎo)致整數(shù)部分超出指定的長度,那么系統(tǒng)是允許成立的。

-- 插入測試數(shù)據(jù)insert into my_float values (2.15e4,20.15,9999.99);insert into my_float values (20151120,123456789.99,9999.99);insert into my_float values (5211314,123456.99,99.99999);

MySQL列類型中的數(shù)值型詳細教程

如上圖所示,咱們的結(jié)論得到了驗證。

第 2 種:定點型

定點型數(shù)據(jù),絕對的保證整數(shù)部分不會被四舍五入,也就是說不會丟失精度,但小數(shù)部分有可能丟失精度,雖然理論上小數(shù)部分也不會丟失精度。

執(zhí)行如下 SQL 語句創(chuàng)建定點數(shù)表,以浮點數(shù)做對比,進行測試:

-- 創(chuàng)建定點數(shù)表create table my_decimal(
    f1 float(10,2),
    d1 decimal(10,2)
)charset utf8;

當(dāng)咱們插入數(shù)據(jù)的時候,定點數(shù)的整數(shù)部分一定不能超出長度范圍(進位也不可以),小數(shù)部分的長度則可以隨意超出,沒有限制,系統(tǒng)會自動進行四舍五入的操作:

-- 插入測試數(shù)據(jù)insert into my_decimal values (99999999.99,99999999.99);insert into my_decimal values (123456789.99,2015.1314);insert into my_decimal values (123456.99,2015.1314);

MySQL列類型中的數(shù)值型詳細教程

如上圖所示,咱們的結(jié)論同樣得到了驗證。

對于以上關(guān)于MySQL列類型中的數(shù)值型詳細教程,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。


本文標(biāo)題:MySQL列類型中的數(shù)值型詳細教程
分享鏈接:http://weahome.cn/article/ghddgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部