新聞中心
數(shù)據(jù)庫(kù)的數(shù)值類(lèi)型是數(shù)據(jù)庫(kù)管理系統(tǒng)中的一種數(shù)據(jù)類(lèi)型,用于表示和儲(chǔ)存數(shù)字。不同的數(shù)據(jù)庫(kù)系統(tǒng)支持不同的數(shù)值類(lèi)型,但是它們一般都包括整數(shù)和浮點(diǎn)數(shù)。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了界首免費(fèi)建站歡迎大家使用!
在數(shù)據(jù)庫(kù)中,數(shù)值類(lèi)型的儲(chǔ)存和表示方式非常重要。這些方式直接影響到數(shù)據(jù)在數(shù)據(jù)庫(kù)中的存儲(chǔ)和訪問(wèn)速度,并且還會(huì)對(duì)數(shù)據(jù)庫(kù)的性能和可擴(kuò)展性產(chǎn)生影響。
下面我們將對(duì)數(shù)值類(lèi)型的存儲(chǔ)和表示方式進(jìn)行詳細(xì)的介紹。
一、整數(shù)類(lèi)型
整數(shù)類(lèi)型是一種表示整數(shù)數(shù)字的數(shù)值類(lèi)型,在數(shù)據(jù)庫(kù)中通常使用來(lái)儲(chǔ)存數(shù)量、計(jì)數(shù)和標(biāo)識(shí)符等。
在不同的數(shù)據(jù)庫(kù)系統(tǒng)中,整數(shù)類(lèi)型有所不同。MySQL中有TINYINT、ALLINT、MEDIUMINT、INT、BIGINT等數(shù)值類(lèi)型。Oracle數(shù)據(jù)庫(kù)則有NUMBER、INTEGER、ALLINT、BIGINT等。
不同的整數(shù)類(lèi)型有不同的存儲(chǔ)大小和表示范圍。例如,MySQL的TINYINT類(lèi)型可以儲(chǔ)存-128到127之間的整數(shù),而B(niǎo)IGINT類(lèi)型可以儲(chǔ)存-9223372023854775808到9223372023854775807之間的整數(shù)。
對(duì)于整數(shù)類(lèi)型,其儲(chǔ)存和表示方式的主要差異在于使用多少個(gè)字節(jié)來(lái)存儲(chǔ)數(shù)字,以及如何表示負(fù)數(shù)。在使用較小的整數(shù)類(lèi)型時(shí),可以有效地減小存儲(chǔ)空間占用,但是需要注意數(shù)值過(guò)大超出數(shù)據(jù)類(lèi)型范圍的問(wèn)題。
二、浮點(diǎn)數(shù)類(lèi)型
浮點(diǎn)數(shù)類(lèi)型是一種表示小數(shù)的數(shù)值類(lèi)型,在數(shù)據(jù)庫(kù)中通常用于存儲(chǔ)金錢(qián)、測(cè)量和成分等需求。
與整數(shù)類(lèi)型相比,浮點(diǎn)數(shù)儲(chǔ)存范圍更廣,可以儲(chǔ)存更大的數(shù)字,也可以儲(chǔ)存小數(shù)點(diǎn)后的數(shù)字。
在不同的數(shù)據(jù)庫(kù)系統(tǒng)中,浮點(diǎn)數(shù)類(lèi)型的字節(jié)大小和表示方式也有所不同。例如,MySQL支持FLOAT和DOUBLE類(lèi)型,Oracle支持BINARY_FLOAT和BINARY_DOUBLE類(lèi)型。
不同的浮點(diǎn)數(shù)類(lèi)型在存儲(chǔ)和表示上的主要區(qū)別在于字節(jié)大小、規(guī)格和精度。FLOAT類(lèi)型通常使用4個(gè)字節(jié),DOUBLE類(lèi)型通常使用8個(gè)字節(jié)。兩者之間更大的差異在于DOUBLE類(lèi)型可以存儲(chǔ)更多的小數(shù)位,但是占用的存儲(chǔ)空間更大。
對(duì)于浮點(diǎn)數(shù)類(lèi)型,還需要注意浮點(diǎn)數(shù)精度問(wèn)題。由于計(jì)算機(jī)的浮點(diǎn)數(shù)計(jì)算精度限制,浮點(diǎn)數(shù)類(lèi)型的計(jì)算結(jié)果可能會(huì)存在少量誤差。
三、定點(diǎn)數(shù)類(lèi)型
定點(diǎn)數(shù)類(lèi)型是一種精確表示小數(shù)的數(shù)值類(lèi)型,在數(shù)據(jù)庫(kù)中通常用于儲(chǔ)存貨幣、精確測(cè)量結(jié)果等需求。
與浮點(diǎn)數(shù)類(lèi)型不同,定點(diǎn)數(shù)類(lèi)型使用固定的數(shù)據(jù)格式來(lái)表示小數(shù)。這種格式通常是一個(gè)整數(shù)和一個(gè)小數(shù)部分,其中小數(shù)部分的數(shù)量是固定的。
在不同的數(shù)據(jù)庫(kù)系統(tǒng)中,定點(diǎn)數(shù)類(lèi)型的字節(jié)大小和表示方式也有所不同。例如,MySQL支持DECIMAL和NUMERIC類(lèi)型,Oracle支持NUMBER類(lèi)型。
不同的定點(diǎn)數(shù)類(lèi)型在存儲(chǔ)和表示上的主要區(qū)別在于字節(jié)大小、精確度和規(guī)格。例如,DECIMAL類(lèi)型的規(guī)格通常是DECIMAL(精度,小數(shù)位數(shù)),其中精度表示更大可儲(chǔ)存的數(shù)字的位數(shù),小數(shù)位數(shù)表示浮點(diǎn)位數(shù)。
:
在數(shù)據(jù)庫(kù)中,數(shù)值類(lèi)型用于儲(chǔ)存和表示數(shù)字。不同的數(shù)值類(lèi)型有不同的存儲(chǔ)和表示方式,可以通過(guò)儲(chǔ)存大小、數(shù)字量、規(guī)格和精度等來(lái)區(qū)分。在選擇數(shù)值類(lèi)型時(shí),應(yīng)該根據(jù)具體的需求選擇最適合的類(lèi)型,避免浪費(fèi)存儲(chǔ)空間并提高性能和可擴(kuò)展性。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專(zhuān)注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)類(lèi)型?
MySQL 數(shù)據(jù)類(lèi)型,在 MySQL 中,有三種攜鍵主要的類(lèi)型:文本、數(shù)字和日期/時(shí)間類(lèi)型橡敬。辯如巧
SQL 用于各種數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型:
一、MySQL 數(shù)據(jù)類(lèi)型:
在 MySQL 中,有三種主要的類(lèi)型:Text(文本)、Number(數(shù)字)和 Date/Time(日期/時(shí)間)類(lèi)型。
1、羨悉Text 類(lèi)型。
2、Number 類(lèi)型。這些整數(shù)類(lèi)型擁有額外的選項(xiàng) UNSIGNED。通常,整數(shù)可以是負(fù)數(shù)或正數(shù)。如果添加 UNSIGNED 屬性,那么范圍將從 0 開(kāi)始,而不是某個(gè)負(fù)數(shù)。
3、Date 類(lèi)型。
即便 DATETIME 和 TIMESTAMP 返回相同的格式,它們的工作方式很不同。在 INSERT 或 UPDATE 查詢中,TIMESTAMP 自動(dòng)把自身設(shè)置為當(dāng)前的日期和時(shí)間。
TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。
二、SQL Server 數(shù)據(jù)類(lèi)型:
1、String 類(lèi)兄腔乎型。
2、Number 類(lèi)型。
3、Date 類(lèi)型。
4、其他數(shù)據(jù)類(lèi)型。
擴(kuò)展資料:
Microsoft Access的數(shù)據(jù)類(lèi)型:
參考資料圓孝:
百度百科–SQL數(shù)據(jù)類(lèi)型
數(shù)據(jù)庫(kù)模型主要分有兩種,即關(guān)系型數(shù)據(jù)庫(kù)和
非關(guān)系型數(shù)據(jù)庫(kù)
。
關(guān)系型數(shù)據(jù)庫(kù):網(wǎng)絡(luò)數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù)很好地解決了數(shù)據(jù)的集中和共享問(wèn)題,但是在數(shù)據(jù)獨(dú)立性和抽象級(jí)別上仍有很大欠缺。用戶對(duì)這兩種數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),依然需要明確數(shù)據(jù)的存儲(chǔ)結(jié)攔察構(gòu),支出存儲(chǔ)路徑。而
關(guān)系數(shù)據(jù)庫(kù)
就可以較好地解決這些問(wèn)題 。
非關(guān)系型數(shù)據(jù)庫(kù):非關(guān)系型數(shù)據(jù)庫(kù)也被成為NoSQL數(shù)據(jù)庫(kù),NOSQL的本意是“Not Olnly SQL” 指的是非關(guān)系型數(shù)據(jù)庫(kù),而不是“No SQL”的意思,因此,NoSQL的產(chǎn)生并不是要徹底地否定非關(guān)系型數(shù)據(jù)庫(kù),而是作為傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的一個(gè)有效補(bǔ)充。
擴(kuò)展資料
關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn):關(guān)系型數(shù)據(jù)庫(kù)由于具有20多年的技術(shù)歷程,技術(shù)成熟。通過(guò)事務(wù)處理保持?jǐn)?shù)據(jù)的一致性,數(shù)據(jù)更新的開(kāi)銷(xiāo)很小。其次,可以進(jìn)行Join等復(fù)雜查詢
非關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn):處理高并發(fā)、大兄滾批量數(shù)據(jù)的能力強(qiáng)羨衡余。支持分布式集群,
負(fù)載均衡
,性能高,而且可以解決“阻抗失諧”問(wèn)題。內(nèi)存級(jí)數(shù)據(jù)庫(kù),查詢速度快。儲(chǔ)格式多,支持key-value形式、文檔形式、圖片形式。有多表連接查詢機(jī)制的限制,擴(kuò)展性高。
參考資料來(lái)源:
百度百科-數(shù)據(jù)庫(kù)(類(lèi)型)
參考資料來(lái)源:
百度百科-關(guān)系型數(shù)據(jù)庫(kù)
參考資料來(lái)源:
百度百科-非關(guān)系型數(shù)據(jù)庫(kù)
bigint
巨整型,橡戚巨整型是八個(gè)字節(jié)的整數(shù),精度為 19 位返畝。巨整型的范圍從 -9,223,372,036,854,775,808 到
9,223,372,036,854,775,807。
binary
二進(jìn)制
bit
字節(jié)
char
字符類(lèi)型
detetime
時(shí)間類(lèi)型
decimal
Decimal 數(shù)據(jù)類(lèi)型 Decimal 變量存儲(chǔ)為 96 位(12 個(gè)字節(jié))無(wú)符號(hào)的整型形式,并除以一個(gè) 10 的冪數(shù)。
這個(gè)變比因子決定了小數(shù)點(diǎn)右面的數(shù)字位數(shù),其范圍從 0 到 28。變比因子為 0(沒(méi)有小數(shù)位)的情形下,
更大的可能值為 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 個(gè)小數(shù)位的情況下,更大值為
+/-7.,而最小的非零值為 +/-0.。
float
單精度類(lèi)型
image
圖片類(lèi)型
int
整形
money
貨幣類(lèi)型
nchar
字符類(lèi)型,根據(jù) unicode 標(biāo)準(zhǔn)所進(jìn)行的定義,用給定整數(shù)代碼返回 unicode 字符。
ntext
文本類(lèi)型
numeric
decimal(numeric ) 同義,用于精確存儲(chǔ)數(shù)值
decimal 數(shù)據(jù)類(lèi)型最多可存儲(chǔ) 38 個(gè)數(shù)字,所有數(shù)字都能夠放到小數(shù)點(diǎn)的右邊。decimal 數(shù)據(jù)類(lèi)型存儲(chǔ)了一
個(gè)準(zhǔn)確(精確)的數(shù)字表達(dá)法;不存儲(chǔ)值的近似值。
nvarchar
可變長(zhǎng)度 (varchar) 字符數(shù)據(jù)類(lèi)型。
real
float 和 real 數(shù)據(jù)
float 和 real 數(shù)據(jù)類(lèi)型被稱為近似的數(shù)據(jù)類(lèi)型。在近似數(shù)字?jǐn)?shù)據(jù)類(lèi)型方面,float 和 real 數(shù)據(jù)的使用遵
循 IEEE 754 標(biāo)準(zhǔn)。
alldatetime
短日期類(lèi)型
allint
短整型
allmoney
短貨幣型
sql_variant
一種數(shù)據(jù)類(lèi)型,用于存儲(chǔ) SQL Server 支持的各種數(shù)據(jù)類(lèi)型(不包括 text、ntext、image、timestamp 和
sql_variant)的值。
text
文本
timestamp
這里有介紹
tinyint
tinyint 使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類(lèi)型,范圍 0 到 255,存儲(chǔ) 1 字節(jié)
uniquedentifier
uniqueidentifier數(shù)據(jù)類(lèi)型可存儲(chǔ)16字節(jié)的二進(jìn)制值,其作用與全局唯一標(biāo)記符(GUID)一樣。GUID是唯一
的二進(jìn)制數(shù):世界上的任何兩臺(tái)計(jì)算機(jī)都不會(huì)生成重復(fù)的GUID值。GUID主要用于在用于多個(gè)節(jié)點(diǎn),多臺(tái)計(jì)算
機(jī)的網(wǎng)絡(luò)中,分配必須具有唯一性的標(biāo)識(shí)符。 在SQL中 ROWGUIDCOL表示新列是行的全局唯一標(biāo)識(shí)列。對(duì)于
每個(gè)表只能指派一個(gè)uniqueidentifier 列作為ROWGUIDCO列。ROWGUIDCOL屬性只能指派給uniqueidentifier
列
Uniqqueidentifier 是全局唯一的標(biāo)識(shí)
varbinary
可變長(zhǎng)度二進(jìn)制數(shù)據(jù)。n 可以是從 1 到 8,000 之間的值。max 指示更大存儲(chǔ)大小為 2^31-1 字節(jié)。存儲(chǔ)大
小為所輸入數(shù)據(jù)的實(shí)際長(zhǎng)度 + 2 個(gè)字節(jié)。所輸入數(shù)據(jù)的長(zhǎng)度可以是 0 字節(jié)。varbinary 的 ANSI SQL 同義
詞為 binary varying。
varchar
可漏如森變長(zhǎng)度,非 Unicode 字符數(shù)據(jù)。n 的取值范圍為 1 至 8,000。max 指示更大存儲(chǔ)大小是 2^31-1 個(gè)字節(jié)
。存儲(chǔ)大小是輸入數(shù)據(jù)的實(shí)際長(zhǎng)度加 2 個(gè)字節(jié)。所輸入數(shù)據(jù)的長(zhǎng)度可以為 0 個(gè)字符。varchar 的 ISO 同
義詞為 char varying 或 character varying。
基本就是這樣吧。
bigint 大的伍春整型 64位
binary 二伏空進(jìn)制型數(shù)據(jù)
bit 位(1為真0為假)
char 字符
datetime 時(shí)間
decimal 十進(jìn)制浮點(diǎn)型
float 單精度浮點(diǎn)型
image 二進(jìn)制圖像
int 整型(32位)
money 錢(qián)(浮點(diǎn)型缺橘瞎,精度三位小數(shù))
nchar Unicode固定長(zhǎng)度字符
ntext 文本
numeric 數(shù)字
nvarchar Unicode可變長(zhǎng)度字符
real 類(lèi)似于C++,JAVA中的double
alldatetime 小型時(shí)間
allint 小型int(16)位
allmoney 小錢(qián)
sql_variant 變量
text ANSI文本
timestamp 不知道
tinyint 極少整型(8位)
uniquedentifier 不知道
varbinary varchar
sql語(yǔ)言中,各種數(shù)據(jù)類(lèi)型代表的含義是什么
(1)數(shù)值型
數(shù)值是諸如32 或153.4 這樣的值。MySQL 支持科學(xué)表示法,科學(xué)表示法由整數(shù)或浮點(diǎn)數(shù)后跟“e”或“E”、一個(gè)符號(hào)(“+”或“-”)和一個(gè)整數(shù)指數(shù)來(lái)表示。1.24E+12 和23.47e-1 都是合法的科學(xué)表示法表示的稿緩數(shù)。而1.24E12 不是合法的,因?yàn)橹笖?shù)前的符號(hào)未給出。
浮點(diǎn)數(shù)由整數(shù)部分、一個(gè)小數(shù)點(diǎn)和小數(shù)部分組成。整數(shù)部分和小數(shù)部分可以分別為空,但不能同時(shí)為空。
數(shù)值前可放一個(gè)負(fù)號(hào)“-”以表示負(fù)值。
(2)字符(串)型
字符型(也叫字符串型,簡(jiǎn)稱串)是諸如“Hello, world!”或“一個(gè)饅頭引起的血案”這樣的值,或者是號(hào)碼這樣的值。既可用單引號(hào)也可用雙引號(hào)將串值括起來(lái)。
初學(xué)者往往分不清數(shù)值和字符串的區(qū)別。都是數(shù)字啊,怎么一個(gè)要用數(shù)值型,一個(gè)要用字符型呢?關(guān)鍵就在于:數(shù)值型的是要參與計(jì)算的,比如它是金融中的一個(gè)貨款總額;而字符型的是不參與計(jì)算的,只是表示號(hào)碼,這樣的還有街道號(hào)碼、門(mén)牌號(hào)碼等等,它們都不參與計(jì)算。
(3)日期和時(shí)間型
日期和時(shí)間是一些諸如“”或“12:30:43”這樣的值。MySQL還支持日期/時(shí)間的組合,如“:30:43”。
(4)NULL值
NULL表示未知值。比如填寫(xiě)表格中通訊地址不清楚留空不填寫(xiě),這就是NULL值。
我們用Create Table語(yǔ)句創(chuàng)建一個(gè)表,這個(gè)表中包含列的定義。例如我們?cè)谇懊鎰?chuàng)建了一個(gè)joke表,這個(gè)表中有content和writer兩個(gè)列:
定義一個(gè)列的語(yǔ)法如下:
其中列名由col_name 給出。列名可最多包含64個(gè)字符,字符包括字母、數(shù)字、下劃線及美元符號(hào)。列名可以名字中合法的任何符號(hào)(包括數(shù)字)開(kāi)頭。但列名不能完全由數(shù)字組成,因?yàn)槟菢涌赡苁蛊渑c數(shù)據(jù)分不開(kāi)。MySQL保留諸如SELECT、DELETE和CREATE這樣的詞,這些詞不能用做列名,但是函數(shù)名(如POS 和MIN)是可以使用的。
列類(lèi)型col_type表示列可存儲(chǔ)的特定值。列類(lèi)型說(shuō)明符還能表示存放在列中的值的更大長(zhǎng)度。對(duì)于某些類(lèi)型,可用一個(gè)數(shù)值明確地說(shuō)明其長(zhǎng)度。而另外一些值,其長(zhǎng)度由類(lèi)型名蘊(yùn)含。例如,CHAR(10) 明確指定了10個(gè)字符的長(zhǎng)度,而TINYBLOB值隱含更大長(zhǎng)度為255個(gè)字符。有的類(lèi)型說(shuō)明符允許指定更大的顯示寬度(即顯示值時(shí)使用多少個(gè)字符)。浮點(diǎn)類(lèi)型允許指定小數(shù)位數(shù),所以能控制浮點(diǎn)數(shù)的精度值為多少。
可仔敬山以在列類(lèi)型之后指定可選的類(lèi)型說(shuō)明屬性,以及指定更多的常見(jiàn)屬性。屬性起修飾類(lèi)型的作用,并更改其處理列值的方式,屬性有以下類(lèi)型:
(1)專(zhuān)用屬性用于指定列。例如,UNSIGNED 屬性只針對(duì)整型,而B(niǎo)INARY屬性只用于CHAR 和VARCHAR。
(2)通用屬性除少數(shù)列之外可用于任意列??梢灾付∟ULL 或NOT NULL 以表示某個(gè)列是否能夠存放NULL。還可以用DEFAULT,def_value 來(lái)表示在創(chuàng)建一個(gè)新行但未明確給出該列的值時(shí),該列可賦予值def_value。def_value 必須為一個(gè)常量;它不能是表達(dá)式,也不能引用其他列。不能對(duì)BLOB 或TEXT 列指定缺省值。
如果想給出多個(gè)列的專(zhuān)用屬性,可按任意順序指定它們,只要它們跟在列類(lèi)型之念中后、通用屬性之前即可。類(lèi)似地,如果需要給出多個(gè)通用屬性,也可按任意順序給出它們,只要將它們放在列類(lèi)型和可能給出的列專(zhuān)用屬性之后即可。
2. MySQL的列(字段)類(lèi)型
數(shù)據(jù)庫(kù)中的每個(gè)表都是由一個(gè)或多個(gè)列(字段)構(gòu)成的。在用CREATE TABLE語(yǔ)句創(chuàng)建一個(gè)表時(shí),要為每列(字段)指定一個(gè)類(lèi)型。列(字段)的類(lèi)型比數(shù)據(jù)類(lèi)型更為細(xì)化,它精確地描述了給定表列(字段)可能包含的值的種類(lèi),如是否帶小數(shù)、是否文字很多。
MySQL有整數(shù)和浮點(diǎn)數(shù)值的列類(lèi)型,如表1所示。整數(shù)列類(lèi)型可以有符號(hào)也可無(wú)符號(hào)。有一種特殊的屬性允許整數(shù)列值自動(dòng)生成,這對(duì)需要唯一序列或標(biāo)識(shí)號(hào)的應(yīng)用系統(tǒng)來(lái)說(shuō)是非常有用的。
類(lèi)型說(shuō)明
TINYINT 非常小的整數(shù)
ALLINT較小整數(shù)
MEDIUMINT 中等大小整數(shù)
INT標(biāo)準(zhǔn)整數(shù)
BIGINT 較大整數(shù)
FLOAT 單精度浮點(diǎn)數(shù)
DOUBLE雙精度浮點(diǎn)數(shù)
DECIMAL 一個(gè)串的浮點(diǎn)數(shù)
表1:數(shù)值列類(lèi)型
每種數(shù)值類(lèi)型的名稱和取值范圍如表2所示。
類(lèi)型說(shuō)明取值范圍
TINYINT有符號(hào)值:-128 到127
無(wú)符號(hào)值:0到255(0 到28 – 1)
ALLINT有符號(hào)值:到32767(- 215 到)
無(wú)符號(hào)值:0到65535(0 到)
MEDIUMINT 有符號(hào)值:到(到)
無(wú)符號(hào)值:0到(0 到)
INT 有符號(hào)值:到(- 231 到231- 1)
無(wú)符號(hào)值:0到(0 到232-1)
BIGINT 有符號(hào)值:到75807(- 263到263-1)
無(wú)符號(hào)值:0到551615(0到264 – 1)
FLOAT 最小非零值:±1.E – 38
DOUBLE 最小非零值:±2.14E – 308
DECIMAL (M, D)可變;其值的范圍依賴于M 和D
表2:數(shù)值列類(lèi)型的取值范圍
類(lèi)型說(shuō)明存儲(chǔ)需求
TINYINT字節(jié)
ALLINT 2字節(jié)
MEDIUMINT3字節(jié)
INT 4字節(jié)
BIGINT8字節(jié)
FLOAT字節(jié)
DOUBLE 8字節(jié)
DECIMAL (M, D)M字節(jié)(MySQL 3.23 )
表3:數(shù)值列類(lèi)型的存儲(chǔ)需求
MySQL提供了五種整型: TINYINT、ALLINT、MEDIUMINT、INT和BIGINT。INT為INTEGER的縮寫(xiě)。這些類(lèi)型在可表示的取值范圍上是不同的。整數(shù)列可定義為UNSIGNED從而禁用負(fù)值;這使列的取值范圍為0以上。各種類(lèi)型的存儲(chǔ)量需求也是不同的。取值范圍較大的類(lèi)型所需的存儲(chǔ)量較大。
MySQL 提供三種浮點(diǎn)類(lèi)型: FLOAT、DOUBLE和DECIMAL。與整型不同,浮點(diǎn)類(lèi)型不能是UNSIGNED的,其取值范圍也與整型不同,這種不同不僅在于這些類(lèi)型有更大值,而且還有最小非零值。最小值提供了相應(yīng)類(lèi)型精度的一種度量,這對(duì)于記錄科學(xué)數(shù)據(jù)來(lái)說(shuō)是非常重要的(當(dāng)然,也有負(fù)的更大和最小值)。
在選擇了某種數(shù)值類(lèi)型時(shí),應(yīng)該考慮所要表示的值的范圍,只需選擇能覆蓋要取值的范圍的最小類(lèi)型即可。選擇較大類(lèi)型會(huì)對(duì)空間造成浪費(fèi),使表不必要地增大,處理起來(lái)沒(méi)有選擇較小類(lèi)型那樣有效。對(duì)于整型值,如果數(shù)據(jù)取值范圍較小,如人員年齡或兄弟姐妹數(shù),則TINYINT最合適。MEDIUMINT能夠表示數(shù)百萬(wàn)的值并且可用于更多類(lèi)型的值,但存儲(chǔ)代價(jià)較大。BIGINT在全部整型中取值范圍更大,而且需要的存儲(chǔ)空間是表示范圍次大的整型INT類(lèi)型的兩倍,因此只在確實(shí)需要時(shí)才用。對(duì)于浮點(diǎn)值,DOUBLE占用FLOAT的兩倍空間。除非特別需要高精度或范圍極大的值,一般應(yīng)使用只用一半存儲(chǔ)代價(jià)的FLOAT型來(lái)表示數(shù)據(jù)。
在定義整型列時(shí),可以指定可選的顯示尺寸M。如果這樣,M應(yīng)該是一個(gè)1 到255的整數(shù)。它表示用來(lái)顯示列中值的字符數(shù)。例如,MEDIUMINT(4)指定了一個(gè)具有4個(gè)字符顯示寬度的MEDIUMINT列。如果定義了一個(gè)沒(méi)有明確寬度的整數(shù)列,將會(huì)自動(dòng)分配給它一個(gè)缺省的寬度。缺省值為每種類(lèi)型的“最長(zhǎng)”值的長(zhǎng)度。如果某個(gè)特定值的可打印表示需要不止M個(gè)字符,則顯示完全的值;不會(huì)將值截?cái)嘁赃m合M個(gè)字符。
對(duì)每種浮點(diǎn)類(lèi)型,可指定一個(gè)更大的顯示尺寸M 和小數(shù)位數(shù)D。M 的值應(yīng)該取1 到255。D的值可為0 到3 0,但是不應(yīng)大于M – 2(如果熟悉ODBC 術(shù)語(yǔ),就會(huì)知道M 和D 對(duì)應(yīng)于ODBC 概念的“精度”和“小數(shù)點(diǎn)位數(shù)”)。M和D對(duì)FLOAT和DOUBLE 都是可選的,但對(duì)于DECIMAL是必須的。在選項(xiàng)M 和D時(shí),如果省略了它們,則使用缺省值。
2.2字符串列類(lèi)型
MySQL提供了幾種存放字符數(shù)據(jù)的串類(lèi)型,其類(lèi)型如下:
類(lèi)型名說(shuō)明
CHAR 定長(zhǎng)字符串
VARCHAR 可變長(zhǎng)字符串
TINYBLOB 非常小的BLOB(二進(jìn)制大對(duì)象)
BLOB小BLOB
MEDIUMBLOB中等的BLOB
LONGBLOB大BLOB
TINYTEXT 非常小的文本串
TEXT 小文本串
MEDIUMTEXT中等文本串
LONGTEXT大文本串
ENUM 枚舉;列可賦予某個(gè)枚舉成員
SET;列可賦予多個(gè)成員
表4:字符串列類(lèi)型
下表給出了MySQL 定義串值列的類(lèi)型,以及每種類(lèi)型的更大尺寸和存儲(chǔ)需求。對(duì)于可變長(zhǎng)的列類(lèi)型,各行的值所占的存儲(chǔ)量是不同的,這取決于實(shí)際存放在列中的值的長(zhǎng)度。這個(gè)長(zhǎng)度在表中用L 表示。
類(lèi)型說(shuō)明
更大尺寸
存儲(chǔ)需求
CHAR( M)
M 字節(jié)
M 字節(jié)
VARCHAR(M)
M 字節(jié)
L + 1字節(jié)
TINYBLOB, TINYTEXT
28- 1字節(jié)
L + 1字節(jié)
BLOB, TEXT
字節(jié)
L + 2字節(jié)
MEDIUMBLOB, MEDIUMTEXT
224- 1字節(jié)
L + 3字節(jié)
LONGBLOB, LONGTEXT
232- 1字節(jié)
L + 4字節(jié)
ENUM(“value1”, “value2”, …)
65535 個(gè)成員
1 或2字節(jié)
SET (“value1”, “value2”, …)
64個(gè)成員
1、2、3、4 或8字節(jié)
表5:串列類(lèi)型更大尺寸及存儲(chǔ)需求
L 以外所需的額外字節(jié)為存放該值的長(zhǎng)度所需的字節(jié)數(shù)。MySQL 通過(guò)存儲(chǔ)值的內(nèi)容及其長(zhǎng)度來(lái)處理可變長(zhǎng)度的值。這些額外的字節(jié)是無(wú)符號(hào)整數(shù)。請(qǐng)注意,可變長(zhǎng)類(lèi)型的更大長(zhǎng)度、此類(lèi)型所需的額外字節(jié)數(shù)以及占用相同字節(jié)數(shù)的無(wú)符號(hào)整數(shù)之間的對(duì)應(yīng)關(guān)系。例如,MEDIUMBLOB 值可能最多字節(jié)長(zhǎng)并需要3 個(gè)字節(jié)記錄其結(jié)果。3 個(gè)字節(jié)的整數(shù)類(lèi)型MEDIUMINT 的更大無(wú)符號(hào)值為。這并非偶然。
2.3日期時(shí)間列類(lèi)型
MySQL 提供了幾種時(shí)間值的列類(lèi)型,它們分別是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。下表給出了MySQL 為定義存儲(chǔ)日期和時(shí)間值所提供的這些類(lèi)型,并給出了每種類(lèi)型的合法取值范圍。
類(lèi)型名說(shuō)明
DATE“YYYY-MM-DD”格式表示的日期值
TIME“hh:mm:ss”格式表示的時(shí)間值
DATETIME“YYYY-MM-DD hh:mm:ss”格式
TIMESTAMP“YYYYMMDDhhmmss”格式表示的時(shí)間戳值
YEAR“YYYY”格式的年份值
表6:日期時(shí)間列類(lèi)型
下面舉個(gè)例子:
這個(gè)例子創(chuàng)建一個(gè)student表,這個(gè)表中有name字段,字符類(lèi)型列,不允許NULL(空值)。有Chinese、Maths和English三個(gè)整數(shù)類(lèi)型列。還有個(gè)Birthday日期類(lèi)型列。
CREATE TABLE student
(
Name varchar(20) NOT NULL,
Chinese TINYINT(3),
Maths TINYINT(3),
English TINYINT(3),
Birthday DATE
數(shù)據(jù)庫(kù)的類(lèi)型有哪些?本人在學(xué)mysql.
MySQL數(shù)據(jù)類(lèi)型主要可以分成四種其中包括數(shù)值型、字符(串)型與日期和時(shí)間型與NULL值。
1. MySQL數(shù)據(jù)類(lèi)型
在MySQL中有如下幾種數(shù)據(jù)類(lèi)型:
(1)數(shù)值型
數(shù)值是諸如32 或153.4 這樣的值。MySQL 支持科學(xué)表示法,科學(xué)表示法由整數(shù)或浮點(diǎn)數(shù)后跟“e”或“E”、一個(gè)符號(hào)(“+”或“-”)和一個(gè)整數(shù)指數(shù)來(lái)表示。1.24E+12 和23.47e-1 都是合法的科學(xué)表示法表示的數(shù)。而1.24E12 不是合法的,因?yàn)橹笖?shù)前的符號(hào)未給出。
浮點(diǎn)數(shù)由整數(shù)部分、一個(gè)小數(shù)點(diǎn)和小數(shù)部分組成。整數(shù)部分和小數(shù)部分可以分別為空,但不能同時(shí)為空。
數(shù)值前可放一個(gè)負(fù)號(hào)“-”以表示負(fù)值。
(2)字符(串)型
字符型(也叫字符串型,簡(jiǎn)稱串)是諸如“Hello, world!”或“一個(gè)饅頭引起的血案”這樣的值,或者是號(hào)碼這樣的值。既可用單引號(hào)也可用雙引號(hào)將串值括起來(lái)。
初學(xué)者往往分不清數(shù)值和字符串的區(qū)別。都是數(shù)字啊,怎么一 個(gè)要用數(shù)值型,一個(gè)要用字符型呢?關(guān)鍵就在于:數(shù)值型的是要參與計(jì)算的,比如它是金融中的一個(gè)貨款總額;而字符型的是不 參與計(jì)算的,只是表示號(hào)碼,這樣的還有街道號(hào)碼、門(mén)牌號(hào)碼等等,它們都不參與計(jì)算。
(3)日期和時(shí)間型
日期和時(shí)間是一些諸如“”或“12:30:43”這樣的值。MySQL還支持日期/時(shí)間的組合,如“:30:43”。
(4)NULL值
NULL表示未知值。比如填寫(xiě)表格中通訊地址不清楚留空不填寫(xiě),這就是NULL值。
我們用Create Table語(yǔ)句創(chuàng)建一個(gè)表(參看前面的章節(jié)),這個(gè)表中包含列的定義。例如我們?cè)谇懊鎰?chuàng)建了一個(gè)joke表,這個(gè)表中有content和writer兩個(gè)列:
定義一個(gè)列的語(yǔ)法如下:
其中列名由col_name 給出。列名可最多包含64個(gè)字符,字符包括字母、數(shù)字、下劃線及美元符號(hào)。列名可以名字中合法的任何符號(hào)(包括數(shù)字)開(kāi)頭。但列名不能完全由數(shù)字舉逗組成,因 為那樣可能使其與MySQL數(shù)據(jù)類(lèi)型分不開(kāi)。MySQL保留諸如SELECT、DELETE和CREATE這樣的詞,這些詞不能用做列名,但是函數(shù)名(如POS 和MIN)是可以使用的。
列類(lèi)型col_type表示列可存儲(chǔ)的特定值。列類(lèi)型說(shuō)明符還能表示存放在列中的值的更大長(zhǎng) 度。對(duì)于某些類(lèi)型,可用一個(gè)數(shù)值明確地說(shuō)明其長(zhǎng)度。而另外一些值,其長(zhǎng)度由類(lèi)型名蘊(yùn)含。例如,CHAR(10) 明確指定了10個(gè)字符的長(zhǎng)度,而TINYBLOB值隱含更大長(zhǎng)度為255個(gè)字符。
有的類(lèi)型說(shuō)明符允許指定更大的顯示寬度(即顯示值時(shí)使用多少個(gè)字符)。浮 點(diǎn)類(lèi)型允許指定小數(shù)位數(shù),所以能控制浮點(diǎn)數(shù)的精度值為多少。
可以在列類(lèi)型之后指定可選的類(lèi)型說(shuō)明屬性,以及指定更多的常見(jiàn)屬性。屬性起修飾類(lèi)型的作用,并更改其處理列值物伏的方式,屬性有以下類(lèi)型:
(1)專(zhuān)用屬性用于指定列。例如,UNSIGNED 屬性只針對(duì)整型,而B(niǎo)INARY屬性只用于CHAR 和VARCHAR。
(2)通用屬性除少數(shù)列之外可用于任意列??梢灾付∟ULL 或NOT NULL 以表示某個(gè)列是否能夠存放NULL。還可以用DEFAULT,def_value 來(lái)表示在創(chuàng)建一個(gè)新行但未明確給出該列的值時(shí),該列可賦予值def_value。def_value 必須為一個(gè)常量;它不能是表達(dá)式,也不能引用其他罩答攜列。不能對(duì)BLOB 或TEXT 列指定缺省值。
如果想給出多個(gè)列的專(zhuān)用屬性,可按任意順序指定它們,只要它們跟在列類(lèi)型之后、通用屬性之前即可。類(lèi)似地,如果需要給出多個(gè)通用屬性,也可按任意順序給出它們,只要將它們放在列類(lèi)型和可能給出的列專(zhuān)用屬性之后即可。
2. MySQL的列(字段)類(lèi)型
數(shù)據(jù)庫(kù)中的每個(gè)表都是由一個(gè)或多個(gè)列(字段)構(gòu)成的。在用CREATE TABLE語(yǔ)句創(chuàng)建一個(gè)表時(shí),要為每列(字段)指定一個(gè)類(lèi)型。列(字段)的類(lèi)型比MySQL數(shù)據(jù)類(lèi)型更為細(xì)化,它精確地描述了給定表列(字段)可能包含的值的種類(lèi),如是否帶小數(shù)、是否文字很多。
瑭錦TANJURD總結(jié)數(shù)據(jù)庫(kù)族御通常分為層次式數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)和關(guān)系式數(shù)據(jù)庫(kù)三種。而不同的數(shù)據(jù)兆櫻巖庫(kù)是按不同的數(shù)據(jù)結(jié)構(gòu)來(lái)聯(lián)系頌純和組織的。
關(guān)于數(shù)據(jù)庫(kù)數(shù)值型表示方法的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計(jì),成都高端網(wǎng)站制作開(kāi)發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營(yíng)銷(xiāo)讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。
新聞名稱:數(shù)據(jù)庫(kù)中的數(shù)值類(lèi)型:儲(chǔ)存和表示方式(數(shù)據(jù)庫(kù)數(shù)值型表示方法)
本文地址:http://m.fisionsoft.com.cn/article/cophhoi.html


咨詢
建站咨詢
