mysql浮點(diǎn)型怎么寫 mysql浮點(diǎn)數(shù)

mysql 整型、浮點(diǎn)型數(shù)據(jù)類型的范圍

數(shù)據(jù)類型???????? 字節(jié)數(shù)??????????? 范圍????????????????????? 無符號(hào)范圍

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站與策劃設(shè)計(jì),羅城網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:羅城等地區(qū)。羅城做網(wǎng)站價(jià)格咨詢:18982081108

TINYINT ? ? ????? 1字節(jié)? ? ? ?? -128~127??????????????????? 0~255

FLOAT?????????????? 4字節(jié)

DOUBLE?????????? 8字節(jié)

DECIMAL???????? 8字節(jié)

CHAR????????????????? M個(gè)字節(jié) 0=M=255

VARCHAR???????? l+1個(gè)字節(jié)? l=M 0=M=255

如果超出數(shù)據(jù)的范圍 會(huì)產(chǎn)生截?cái)? 超出最小值則按照最小值?? 超出最大值則按照最大值

顯示長度與數(shù)據(jù)的寬度是沒有關(guān)系的

測試浮點(diǎn)型

float,double的數(shù)據(jù)類型會(huì)自動(dòng)根據(jù)需要顯示的數(shù)據(jù)長度進(jìn)行四舍五入

測試字符串類型

CHAR的效率高于VARCHAR?? CHAR是拿空間換取時(shí)間? VARCHAR是拿時(shí)間換取空間

CHAR默認(rèn)存儲(chǔ)數(shù)據(jù)的時(shí)候,后面會(huì)用空格填充到指定長度,而在檢索的時(shí)候去掉后面的空格VARCHAR存儲(chǔ)的時(shí)候不進(jìn)行填充,尾部的空格會(huì)留下

TEXT相關(guān)的列不能有默認(rèn)值,檢索的時(shí)候不存在大小寫轉(zhuǎn)換

測試ENUM/SET類型

測試集合

測試日期時(shí)間類型

TIME?? ? [D]?? HH:MM:SS?????? D表示天數(shù)0~34

例子:2?? 3:34:30????? =》2*24+3:34:30

測試DATE類型

DATE??? YYYY-MM-DD?? /YYYYMMDD

測試DATETIME

測試TIMESTAMP

測試YEAR

mysql中float用什么類型

對于浮點(diǎn)列類型,在MySQL中單精度值使用4個(gè)字節(jié),雙精度值使用8個(gè)字節(jié)。

FLOAT類型用于表示近似數(shù)值數(shù)據(jù)類型。SQL標(biāo)準(zhǔn)允許在關(guān)鍵字FLOAT后面的括號(hào)內(nèi)選擇用位指定精度(但不能為指數(shù)范圍)。MySQL還支持可選的只用于確定存儲(chǔ)大小的精度規(guī)定。0到23的精度對應(yīng)FLOAT列的4字節(jié)單精度。24到53的精度對應(yīng)DOUBLE列的8字節(jié)雙精度。

MySQL允許使用非標(biāo)準(zhǔn)語法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。這里,“(M,D)”表示該值一共顯示M位整數(shù),其中D位位于小數(shù)點(diǎn)后面。例如,定義為FLOAT(7,4)的一個(gè)列可以顯示為-999.9999。MySQL保存值時(shí)進(jìn)行四舍五入,因此如果在FLOAT(7,4)列內(nèi)插入999.00009,近似結(jié)果是999.0001。

MySQL將DOUBLE視為DOUBLE PRECISION(非標(biāo)準(zhǔn)擴(kuò)展)的同義詞。MySQL還將REAL視為DOUBLE PRECISION(非標(biāo)準(zhǔn)擴(kuò)展)的同義詞,除非SQL服務(wù)器模式包括REAL_AS_FLOAT選項(xiàng)。

為了保證最大可能的可移植性,需要使用近似數(shù)值數(shù)據(jù)值存儲(chǔ)的代碼應(yīng)使用FLOAT或DOUBLE PRECISION,不規(guī)定精度或位數(shù)。

DECIMAL和NUMERIC類型在MySQL中視為相同的類型。它們用于保存必須為確切精度的值,例如貨幣數(shù)據(jù)。當(dāng)聲明該類型的列時(shí),可以(并且通常要)指定精度和標(biāo)度;例如:

salary DECIMAL(5,2)

在該例子中,5是精度,2是標(biāo)度。精度表示保存值的主要位數(shù),標(biāo)度表示小數(shù)點(diǎn)后面可以保存的位數(shù)。

在MySQL 5.1中以二進(jìn)制格式保存DECIMAL和NUMERIC值。

標(biāo)準(zhǔn)SQL要求salary列能夠用5位整數(shù)位和兩位小數(shù)保存任何值。因此,在這種情況下可以保存在salary列的值的范圍是從-999.99到999.99。

在標(biāo)準(zhǔn)SQL中,語法DECIMAL(M)等價(jià)于DECIMAL(M,0)。同樣,語法DECIMAL等價(jià)于DECIMAL(M,0),可以通過計(jì)算確定M的值。在MySQL 5.1中支持DECIMAL和NUMERIC數(shù)據(jù)類型的變量形式。M默認(rèn)值是10。

DECIMAL或NUMERIC的最大位數(shù)是65,但具體的DECIMAL或NUMERIC列的實(shí)際范圍受具體列的精度或標(biāo)度約束。如果此類列分配的值小數(shù)點(diǎn)后面的位數(shù)超過指定的標(biāo)度允許的范圍,值被轉(zhuǎn)換為該標(biāo)度。(具體操作與操作系統(tǒng)有關(guān),但一般結(jié)果均被截取到允許的位數(shù))。

mysql 數(shù)據(jù)類型的詳解

MySQL數(shù)據(jù)庫的表是一個(gè)二維表,由一個(gè)或多個(gè)數(shù)據(jù)列構(gòu)成。

每個(gè)數(shù)據(jù)列都有它的特定類型,該類型決定了MySQL如何看待該列數(shù)據(jù),我們可以把整型數(shù)值存放到字符類型的列中,MySQL則會(huì)把它看成字符串來處理。

MySQL中的列類型有三種:數(shù)值類、字符串類和日期/時(shí)間類。

從大類來看列類型和數(shù)值類型一樣,都是只有三種。但每種列類型都還可細(xì)分。

下面對各種列類型進(jìn)行詳細(xì)介紹。

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

數(shù)值型的列類型包括整型和浮點(diǎn)型兩大類。

TINYINT:1字節(jié) 非常小的正整數(shù),帶符號(hào):-128~127,不帶符號(hào):0~255

SMALLINT:2字節(jié) 小整數(shù),帶符號(hào):-32768~32767,不帶符號(hào):0~65535

MEDIUMINT:3字節(jié) 中等大小的整數(shù),帶符號(hào):-8388608~8388607,不帶符號(hào):0~16777215

INT:4字節(jié) 標(biāo)準(zhǔn)整數(shù),帶符號(hào):-2147483648~2147483647,不帶符號(hào):0~4294967295

BIGINT:8字節(jié) 大整數(shù),帶符號(hào):-9223372036854775808~9233372036854775807,不帶符號(hào):0~18446744073709551615

FLOAT:4字節(jié) 單精度浮點(diǎn)數(shù),最小非零值:+-1.175494351E-38,最大非零值:+-3.402823466E+38

DOUBLE:8字節(jié) 雙精度浮點(diǎn)數(shù),最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308

DECIMAL:M+2字節(jié) 以字符串形式表示的浮點(diǎn)數(shù),它的取值范圍可變,由M和D的值決定。

MYSQL支持大量的列類型,它們可以被分為 3 類:數(shù)字類型、日期和時(shí)間類型以及字符串(字符)類型。這個(gè)章節(jié)首先給出可用類型的概述,并且總結(jié)各類型所需的存儲(chǔ)需求,然后提供各類型中的類型范疇更詳細(xì)的描述。概述有意地簡化了。更詳細(xì)的說明應(yīng)該參考特寫列類型的附加信息,例如你能為其指定值的允許格式。

MySQL 支持的列類型在下面列出。下列代碼字母用于描述中:

M指出最大的顯示尺寸。最大的顯示尺寸長度為 255。D適用于浮點(diǎn)類型。指出跟隨在十進(jìn)制小數(shù)點(diǎn)后的數(shù)字?jǐn)?shù)量。最大可能值為 30,但不應(yīng)大于M-2。

方括號(hào) (“[”and“]”) 指定可選的類型修飾部份。

注意,如果為一個(gè)列指定了ZEROFILL,MySQL 將自動(dòng)為這個(gè)列添加UNSIGNED屬性。

警告:你應(yīng)該知道當(dāng)在兩個(gè)整數(shù)類型值中使用減法時(shí),如有一個(gè)為UNSIGNED類型,那么結(jié)果也是無符號(hào)的。查看章節(jié)6.3.5 Cast 函數(shù)。

TINYINT[(M)] [UNSIGNED] [ZEROFILL]-128到127。無符號(hào)的范圍是0到255。

BITBOOL它們是TINYINT(1)的同義詞。

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]一個(gè)小整數(shù)。有符號(hào)的范圍是-32768到32767。無符號(hào)的范圍是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]一個(gè)中等大小的整數(shù)。有符號(hào)的范圍是-8388608到8388607。無符號(hào)的范圍是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]一個(gè)正常大小的整數(shù)。有符號(hào)的范圍是-2147483648到2147483647。無符號(hào)的范圍是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]INT的同義詞。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]一個(gè)大的整數(shù)。有符號(hào)的范圍是-9223372036854775808到9223372036854775807。無符號(hào)的范圍是0到18446744073709551615。

你應(yīng)該知道的有關(guān)BIGINT列的一些事情:

BIGINT或DOUBLE值來完成的,因此你不應(yīng)該使用大于9223372036854775807(63 bits) 的無符號(hào)大整數(shù),除了位函數(shù)之外!如果你這樣做了,結(jié)果中的某些大數(shù)字可能會(huì)出錯(cuò),因?yàn)閷IGINT轉(zhuǎn)換成DOUBLE時(shí)產(chǎn)生了舍入錯(cuò)誤。MySQL 4.0 在下列情況下可以處理BIGINT:

在一個(gè)BIGINT列中使用整數(shù)存儲(chǔ)一個(gè)大的無符號(hào)值。

在MIN(big_int_column)和MAX(big_int_column)中。

當(dāng)兩個(gè)操作數(shù)都是整數(shù)時(shí)使用操作符 (+、-、*、等)。

通常你可以在一個(gè)BIGINT列中以字符串方式存儲(chǔ)的一個(gè)精確的整數(shù)。在這種情況下,MySQL 將執(zhí)行一個(gè)字符串到數(shù)字的轉(zhuǎn)換,包括無 intermediate 的雙精度表示法。

當(dāng)兩個(gè)參數(shù)均是整數(shù)值時(shí),“-”、“+”和“*”將使用BIGINT運(yùn)算!這就意味著,如果兩個(gè)大整數(shù)的乘積(或函數(shù)的結(jié)果返回整數(shù))的結(jié)果大于9223372036854775807時(shí),你可能會(huì)得到意想不到的結(jié)果。

FLOAT(precision) [UNSIGNED] [ZEROFILL]一個(gè)浮點(diǎn)型數(shù)字。

precision可以是=24作為一個(gè)單精度的浮點(diǎn)數(shù)字和介于 25 和 53 之間作為一個(gè)雙精度的浮點(diǎn)數(shù)字。這些類型與下面描述的FLOAT和DOUBLE類型相似。FLOAT(X)有與相應(yīng)的FLOAT和DOUBLE類型同樣的范圍,但是顯示尺寸和十進(jìn)制小數(shù)位數(shù)是未定義的。在 MySQL 3.23 中,它是一個(gè)真實(shí)的浮點(diǎn)值。而在 MySQL 早期的版本中,F(xiàn)LOAT(precision)通常有 2 小數(shù)位。 注意,由于在 MySQL 中所有的計(jì)算都是以雙精度執(zhí)行的,所以使用FLOAT可能帶來一些意想不到的問題。查看章節(jié)A.5.6 解決沒有匹配行的問題。

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]一個(gè)小的(單精度) 浮點(diǎn)數(shù)字。允許的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。如果UNSIGNED被指定,負(fù)值是不允許的。M是顯示寬度,D是小數(shù)位數(shù)。FLOAT沒有參數(shù)或有X= 24 的FLOAT(X)代表一個(gè)單精度的浮點(diǎn)數(shù)字。

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]一個(gè)正常大小的(雙精度)浮上數(shù)字。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。如果UNSIGNED被指定,負(fù)值是不允許的。M是顯示寬度,D是小數(shù)位數(shù)。DOUBLE沒胡參數(shù)或有 25 =X= 53 的FLOAT(X)代表一個(gè)雙精度的浮點(diǎn)數(shù)字。

DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL]

REAL[(M,D)] [UNSIGNED] [ZEROFILL]它們是DOUBLE同義詞。

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]一個(gè)未壓縮(unpacked)的浮點(diǎn)數(shù)。運(yùn)作如同一個(gè)CHAR列:“unpacked” 意味著數(shù)字是以一個(gè)字符串存儲(chǔ)的,值的每一位將使用一個(gè)字符。小數(shù)點(diǎn)并且對于負(fù)數(shù),“-”符號(hào)不在M中計(jì)算(但是它們的空間是被保留的)。如果D是 0,值將沒有小數(shù)點(diǎn)或小數(shù)部份。DECIMAL值的最大范圍與DOUBLE一致,但是對于一個(gè)給定的DECIMAL列,實(shí)際的范圍可以被所選擇的M和D限制。如果UNSIGNED被指定,負(fù)值是不允許的。 如果D被忽略,缺省為 0。如果M被忽略,缺省為 10。 在 MySQL 3.23 以前,M參數(shù)必須包含符號(hào)與小數(shù)點(diǎn)所需的空間。

DEC[(M[,D])] [UNSIGNED] [ZEROFILL]

NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]DECIMAL的同義詞。

DATE一個(gè)日期。支持的范圍是'1000-01-01'到'9999-12-31'。MySQL 以'YYYY-MM-DD'格式顯示DATE值,但是允許你以字符串或數(shù)字給一個(gè)DATE列賦值。查看章節(jié)6.2.2.2DATETIME、DATE和TIMESTAMP類型。

DATETIME一個(gè)日期和時(shí)間的組合。支持的范圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL 以'YYYY-MM-DD HH:MM:SS'格式顯示DATETIME值,但是允許你以字符串或數(shù)字給一個(gè)DATETIME列賦值。查看章節(jié)6.2.2.2DATETIME、DATE和TIMESTAMP類型。

TIMESTAMP[(M)]一個(gè)時(shí)間戳。范圍是'1970-01-01 00:00:00'到2037年間的任意時(shí)刻。 MySQL 4.0 和更早版本中,TIMESTAMP值是以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式顯示的,它取決于M是否是14(或省略)、12、8或6,但是允許你以字符串或數(shù)字給一個(gè)TIMESTAMP列賦值。 從 MySQL 4.1 開始,TIMESTAMP以'YYYY-MM-DD HH:MM:DD'格式作為字符返回。如果你你希望以數(shù)字形式返回則必須在該時(shí)間戳字段后加上 +0。不同的時(shí)間戳長度是不支持的。從 MySQL 4.0.12 開始,選項(xiàng)--new可以被用來使服務(wù)器與 4.1 一樣運(yùn)作。TIMESTAMP列有益于記錄一個(gè)INSERT或UPDATE操作的日期和時(shí)間,因?yàn)槿绻阕约簺]有給它賦值,它將被自動(dòng)地設(shè)置為最近一次操作的日期和時(shí)間。也可以通過給它賦一個(gè)NULL而使它設(shè)置為當(dāng)前的日期和時(shí)間。查看章節(jié)6.2.2 Date 和 Time 類型。 參數(shù)M只影響一個(gè)TIMESTAMP列的顯示格式;它的值總是占用 4 個(gè)字節(jié)存儲(chǔ)。 注意,當(dāng)TIMESTAMP(M)列的M是 8 或 14 時(shí),它返回的是數(shù)字而其它的TIMESTAMP(M)列返回的是字符串。這僅僅是為了可以可靠地轉(zhuǎn)儲(chǔ)并恢復(fù)到其它格式的表中。查看章節(jié)6.2.2.2DATETIME、DATE和TIMESTAMP類型。TIME一個(gè)時(shí)間。范圍是'-838:59:59'到'838:59:59'。MySQL 以'HH:MM:SS'格式顯示TIME值,但是允許你使用字符串或數(shù)字來給TIME列賦值。查看章節(jié)6.2.2.3TIME類型。YEAR[(2|4)]一個(gè) 2 或 4 位數(shù)字格式的年(缺省為 4 位)。允許的值是1901到2155、0000(4 位年格式) 以及使用 2 位格式的 1970-2069 (70-69)。MySQL 以YYYY格式顯示YEAR值,但是允許你使用字符串或數(shù)字來給YEAR列賦值。(YEAR類型在 MySQL 3.22 之前不支持。) 查看章節(jié)6.2.2.4YEAR類型。

[NATIONAL] CHAR(M) [BINARY]一個(gè)定長的字符串,當(dāng)存儲(chǔ)時(shí),總是以空格填滿右邊到指定的長度。M的范圍是 0 到 255 (在 MySQL 3.23 版本之前為 1 到 255)。當(dāng)該值被檢索時(shí),尾部空格將被刪除。CHAR值根據(jù)缺省的字符集進(jìn)行忽略大小寫的排索與比較,除非指定了關(guān)鍵詞BINARY。NATIONAL CHAR(或短形式NCHAR) 是以 ANSI SQL 方式定義一個(gè)CHAR列,它將使用缺省的字符集。這在 MySQL 中是默認(rèn)的。

CHAR是CHARACTER的縮寫。 MySQL 允許以CHAR(0)類型建立一個(gè)列。一些老程序運(yùn)行時(shí)必需一個(gè)列,卻又并不使用這個(gè)列的值,你就不得不為了適應(yīng)它而建立該列,在這情況下,CHAR(0)將是很有益的。當(dāng)需要一個(gè)列僅保存兩個(gè)值時(shí):一個(gè)為CHAR(0)(該列沒有定義為NOT NULL),這將僅占用一個(gè)比特位來存儲(chǔ) 2 個(gè)值:NULL或""。查看章節(jié)6.2.3.1CHAR和VARCHAR類型。CHAR這是CHAR(1)的同義詞。

[NATIONAL] VARCHAR(M) [BINARY]一個(gè)變長的字符串。注意:尾部的空格在存儲(chǔ)時(shí)將會(huì)被刪除(這與 ANSI SQL 約規(guī)不同)。M的范圍是 0 到 255 (在 MySQL 4.0.2 之前的版本中是 1 到 255)。

VARCHAR值以大小寫忽略方式進(jìn)行排索與比較,除非關(guān)鍵詞BINARY被指定。查看章節(jié)6.5.3.1 隱式的列定義變化。VARCHAR是CHARACTER VARYING的縮寫。查看章節(jié)6.2.3.1CHAR和VARCHAR類型。

TINYBLOBTINYTEXT一個(gè)BLOB或TEXT列,最大長度為 255 (2^8 - 1) 個(gè)字符。查看章節(jié)6.5.3.1 隱式的列定義變化。查看章節(jié)6.2.3.2BLOB和TEXT類型。

BLOBTEXT一個(gè)BLOB或TEXT列,最大長度為 65535 (2^16 - 1) 個(gè)字符。查看章節(jié)6.5.3.1 隱式的列定義變化。查看章節(jié)6.2.3.2BLOB和TEXT類型。

MEDIUMBLOBMEDIUMTEXT一個(gè)BLOB或TEXT列,最大長度為 16777215 (2^24 - 1) 個(gè)字符。查看章節(jié)6.5.3.1 隱式的列定義變化。查看章節(jié)6.2.3.2BLOB和TEXT類型。

LONGBLOBLONGTEXT一個(gè)BLOB或TEXT列,最大長度為 4294967295 (2^32 - 1) 個(gè)字符。查看章節(jié)6.5.3.1 隱式的列定義變化。注意,由于服務(wù)器/客戶端的協(xié)議以及 MyISAM 表通常有一個(gè) 16M 每通信包/表行的限制,你仍然不能使用這個(gè)類型的整個(gè)范圍。查看章節(jié)6.2.3.2BLOB和TEXT類型。ENUM('value1','value2',...)一個(gè)枚舉類型。一個(gè)僅能有一個(gè)值的字符串對象,這個(gè)值選自值列'value1'、'value2'、...、NULL或特殊的""出錯(cuò)值。一個(gè)ENUM列可以有最大 65535 不同的值。查看章節(jié)6.2.3.3ENUM類型。SET('value1','value2',...)一個(gè)集合。一個(gè)能有零個(gè)或更多個(gè)值的字符串對象,其中每個(gè)值必須選自值列'value1'、'value2'、...。一個(gè)SET列可以有最大 64 個(gè)成員。查看章節(jié)6.2.3.4SET類型。

MySQL 支持所有的 ANSI/ISO SQL92 數(shù)字類型。這些類型包括準(zhǔn)確數(shù)字的數(shù)據(jù)類型(NUMERIC、DECIMAL、INTEGER和SMALLINT),也包括近似數(shù)字的數(shù)據(jù)類型(FLOAT、REAL和DOUBLE PRECISION)。關(guān)鍵詞INT是INTEGER的同義詞,關(guān)鍵詞DEC是DECIMAL的同義詞。

NUMERIC和DECIMAL類型被 MySQL 以同樣的類型實(shí)現(xiàn),這在 SQL92 標(biāo)準(zhǔn)中是允許的。他們用于保存對準(zhǔn)確精度有重要要求的值,例如與金錢有關(guān)的數(shù)據(jù)。當(dāng)以它們中的之一聲明一個(gè)列時(shí),精度和數(shù)值范圍可以(通常是)被指定;例如:

salary DECIMAL(5,2)

在這個(gè)例子中,5(精度(precision)) 代表重要的十進(jìn)制數(shù)字的數(shù)目,2(數(shù)據(jù)范圍(scale)) 代表在小數(shù)點(diǎn)后的數(shù)字位數(shù)。在這種情況下,因此,salary列可以存儲(chǔ)的值范圍是從-99.99到99.99。(實(shí)際上 MySQL 在這個(gè)列中可以存儲(chǔ)的數(shù)值可以一直到999.99,因?yàn)樗鼪]有存儲(chǔ)正數(shù)的符號(hào))。

譯者注:

M 與D 對DECIMAL(M, D) 取值范圍的影響

類型說明 取值范圍(MySQL 3.23) 取值范圍(MySQL = 3.23)

DECIMAL(4, 1) -9.9 到 99.9 -999.9 到 9999.9

DECIMAL(5, 1) -99.9 到 999.9 -9999.9 到 99999.9

DECIMAL(6, 1) -999.9 到 9999.9 -99999.9 到 999999.9

DECIMAL(6, 2) -99.99 到 999.99 -9999.99 到 99999.99

DECIMAL(6, 3) -9.999 到 99.999 -999.999 到 9999.999

# 在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范圍等于早期版本中的DECIMAL(M + 2, D) 的取值范圍。注釋結(jié)束:

在 ANSI/ISO SQL92 中,句法DECIMAL(p)等價(jià)于DECIMAL(p,0)。同樣的,在執(zhí)行被允許決定值p的地方,句法DECIMAL等價(jià)于DECIMAL(p,0)。MySQL 目前還不支持DECIMAL/NUMERIC數(shù)據(jù)類型的這些變體形式中的任一種。一般來說這并不是一個(gè)嚴(yán)重的問題,通過明確地控制精度和數(shù)值范圍可以得到這些類型的主要功能益處。

DECIMAL和NUMERIC值是作為字符串存儲(chǔ)的,而不是作為二進(jìn)制浮點(diǎn)數(shù),以便保護(hù)這些值的十進(jìn)制精確度。一個(gè)字符用于數(shù)值的每一位、小數(shù)點(diǎn)(如果scale 0) 和“-”符號(hào)(對于負(fù)值)。如果scale是 0,DECIMAL和NUMERIC值不包含小數(shù)點(diǎn)或小數(shù)部分。

DECIMAL和NUMERIC值的最大范圍與DOUBLE一致,但是對于一個(gè)給定的DECIMAL或NUMERIC列,它的實(shí)際范圍可制定該列時(shí)的precision或scale限制。當(dāng)這樣的列被賦給了小數(shù)點(diǎn)的位數(shù)超過scale所指定的值時(shí),該將根據(jù)scale進(jìn)行四舍五入。當(dāng)一個(gè)DECIMAL或NUMERIC列被賦與一個(gè)大小超過指定(或缺省)的precisionandscale的限止范圍時(shí),MySQL 以該列范圍的端點(diǎn)值存儲(chǔ)該值。

mysql類型

MySQL常見數(shù)據(jù)類型:[數(shù)值]、[日期時(shí)間]和[字符串]類型。

一、數(shù)值

1、整型

MySQL數(shù)據(jù)類型含義(有符號(hào))tinyint1個(gè)字節(jié)

范圍(-128~127)smallint2個(gè)字節(jié)

范圍(-32768~32767)mediumint3個(gè)字節(jié)

范圍(-8388608~8388607)int4個(gè)字節(jié)

范圍(-2147483648~2147483647)bigint8個(gè)字節(jié)

范圍(+-9.22*10的18次方)

在int類型里,都是用來存儲(chǔ)整形數(shù)據(jù),可以根據(jù)實(shí)際需要選取數(shù)據(jù)類型。

取值范圍如果加了unsigned,則最大數(shù)值范圍翻倍,比如 tinyint unsigned的取值范圍為(0~256)。

int(m)里的m是表示SELECT查詢結(jié)果集中的顯示寬度,無實(shí)際意義,不影響實(shí)際的取值范圍

2、浮點(diǎn)型

MySQL數(shù)據(jù)類型含義float(m,d)單精度浮點(diǎn)型

8位精度(4字節(jié))

m總個(gè)數(shù),d小數(shù)位double(m,d)雙精度浮點(diǎn)型

16位精度(8字節(jié))

m總個(gè)數(shù),d小數(shù)位decimal(m,d)定點(diǎn)數(shù)

總個(gè)數(shù)m38, d小數(shù)位

設(shè)一個(gè)字段定義為float(5,2),如果插入一個(gè)數(shù)123.45678,實(shí)際數(shù)據(jù)庫里存的是123.46(四舍五入)

MySQL 浮點(diǎn)型?

浮點(diǎn)型

float(255,30) 共255位 小數(shù)部分30位

double(255,30) 共255位 小數(shù)部分30位

dacimal(65,30) 共65位 小數(shù)部分30位

精準(zhǔn)度驗(yàn)證

create table t15(id float(255,30))

create table t15(id double(255,30))

create table t15(id decimal(60,30))

float double decimal

mysql的數(shù)據(jù)類型都有哪些

1、整型MySQL數(shù)據(jù)類型 含義(有符號(hào))tinyint(m) 1個(gè)字節(jié) 范圍(-128~127)smallint(m) 2個(gè)字節(jié) 范圍(-32768~32767)mediumint(m) 3個(gè)字節(jié) 范圍(-8388608~8388607)int(m) 4個(gè)字節(jié) 范圍(-2147483648~2147483647)bigint(m) 8個(gè)字節(jié) 范圍(+-9.22*10的18次方)取值范圍如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值范圍為(0~256)。int(m)里的m是表示SELECT查詢結(jié)果集中的顯示寬度,并不影響實(shí)際的取值范圍,沒有影響到顯示的寬度,不知道這個(gè)m有什么用。2、浮點(diǎn)型(float和double)MySQL數(shù)據(jù)類型 含義float(m,d) 單精度浮點(diǎn)型 8位精度(4字節(jié)) m總個(gè)數(shù),d小數(shù)位double(m,d) 雙精度浮點(diǎn)型 16位精度(8字節(jié)) m總個(gè)數(shù),d小數(shù)位設(shè)一個(gè)字段定義為float(5,3),如果插入一個(gè)數(shù)123.45678,實(shí)際數(shù)據(jù)庫里存的是123.457,但總個(gè)數(shù)還以實(shí)際為準(zhǔn),即6位。3、定點(diǎn)數(shù)浮點(diǎn)型在數(shù)據(jù)庫中存放的是近似值,而定點(diǎn)類型在數(shù)據(jù)庫中存放的是精確值。decimal(m,d) 參數(shù)m65 是總個(gè)數(shù),d30且 dm 是小數(shù)位。4、字符串(char,varchar,_text)MySQL數(shù)據(jù)類型 含義char(n) 固定長度,最多255個(gè)字符varchar(n) 固定長度,最多65535個(gè)字符tinytext 可變長度,最多255個(gè)字符text 可變長度,最多65535個(gè)字符mediumtext 可變長度,最多2的24次方-1個(gè)字符longtext 可變長度,最多2的32次方-1個(gè)字符char和varchar:1.char(n) 若存入字符數(shù)小于n,則以空格補(bǔ)于其后,查詢之時(shí)再將空格去掉。所以char類型存儲(chǔ)的字符串末尾不能有空格,varchar不限于此。2.char(n) 固定長度,char(4)不管是存入幾個(gè)字符,都將占用4個(gè)字節(jié),varchar是存入的實(shí)際字符數(shù)+1個(gè)字節(jié)(n=255)或2個(gè)字節(jié)(n255),所以varchar(4),存入3個(gè)字符將占用4個(gè)字節(jié)。3.char類型的字符串檢索速度要比varchar類型的快。varchar和text:1.varchar可指定n,text不能指定,內(nèi)部存儲(chǔ)varchar是存入的實(shí)際字符數(shù)+1個(gè)字節(jié)(n=255)或2個(gè)字節(jié)(n255),text是實(shí)際字符數(shù)+2個(gè)字節(jié)。2.text類型不能有默認(rèn)值。3.varchar可直接創(chuàng)建索引,text創(chuàng)建索引要指定前多少個(gè)字符。varchar查詢速度快于text,在都創(chuàng)建索引的情況下,text的索引似乎不起作用。5.二進(jìn)制數(shù)據(jù)(_Blob)1._BLOB和_text存儲(chǔ)方式不同,_TEXT以文本方式存儲(chǔ),英文存儲(chǔ)區(qū)分大小寫,而_Blob是以二進(jìn)制方式存儲(chǔ),不分大小寫。2._BLOB存儲(chǔ)的數(shù)據(jù)只能整體讀出。3._TEXT可以指定字符集,_BLO不用指定字符集。6.日期時(shí)間類型MySQL數(shù)據(jù)類型 含義date 日期 '2008-12-2'time 時(shí)間 '12:25:36'datetime 日期時(shí)間 '2008-12-2 22:06:44'timestamp 自動(dòng)存儲(chǔ)記錄修改時(shí)間若定義一個(gè)字段為timestamp,這個(gè)字段里的時(shí)間數(shù)據(jù)會(huì)隨其他字段修改的時(shí)候自動(dòng)刷新,所以這個(gè)數(shù)據(jù)類型的字段可以存放這條記錄最后被修改的時(shí)間。

新聞名稱:mysql浮點(diǎn)型怎么寫 mysql浮點(diǎn)數(shù)
標(biāo)題來源:http://muchs.cn/article4/doocooe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)、網(wǎng)站維護(hù)軟件開發(fā)、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)