国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

跟我學SQL:(八)數值數據類型

2019-11-03 08:37:09
字體:
來源:轉載
供稿:網友
SQL92標準定義了若干種基本數據類型,它們是SQL數據庫中各種數據類型的基礎。在《字符串數據類型》一文中,我們已經詳細討論了SQL92標準所定義的字符串數據類型。現在,我們來進一步討論數值數據類型。   
你最好開始嘗試使用不同數據庫實現方法并在它們傳遞數據,這樣可以加深你對數值數據類型的理解。本文將給你一個數值數據類型的概要,你可以結合你的數據庫的文檔資料來學習。

在字符串、數值、datetime和interval這四種數據類型中,數值型的種類最多,約束也最多。在不同數據庫實現方法之間交換數據時,數值型的精度也最容易降低。Oracle和SQL服務器之間的實現分歧(同樣的數據類型長度不同)導致它們之間的數據傳遞過程會截短數字、改變它們的數值。因此,在移植程序前,你有必須很明確的了解兩個平臺間的數據定義差異,以及危及數據精度的風險。

謹記上述警告后,讓我們看看SQL92標準的數值類型

基本數值類型
與數值有關的類型統稱為數值類型。所有的數值都有精度,精度指的是有效數字位數。有的數值還有標度值(scale value),它用來指示小數點右邊的最小有效數字位數。例如,數字1234.56的精度為6,標度值為2,可以定義為NUMERIC(6,2)。

每一個數據庫實現方法都有關于如何近似數值或者截短數值的規則。除了提供獲取數值長度和其它數值處理所需的屬性外,SQL92提供了內建函數,如加、減、乘、除等。所有的數值類型之間都可以互相比較、互相賦值。盡管實現方法不同,但是它們有一個的共同點,即它們的結果一般都保留最大精度。

NUMERIC

用法:NUMERIC(精度,標度值) 

是一種精確數值類型,即它是數字的值的文字表示。(可以對該數字進行取舍或者截取以符合指定精度,標度值由預定義的規則確定。) 
為了符合標度值指定的小數數字位數,舍去多余的小數部分,舍入過程采用十進制。 
數字的總長度等于精度,如果標度值大于0(有小數部分),則長度加1。 
小數部分的位數要符合標度值。 
DECIMAL | DEC
用法:DECIMAL(精度,標度值) | DEC(精度,標度值)

是一種精確數值類型。 
用十進制。 
數字的總長度等于精度,如果標度值大于0(有小數部分),則長度加1。 
小數部分的位數不得小于標度值,小數位數的上限由數據庫提供商設定。 

INTEGER | INT
用法: INTEGER(精度)

是一種精確數值類型。 
使用二進制或者十進制,這基于表示該數值的二進制位(bit)的個數(這是implementation-specific,與SMALLINT對應)。 
標度值恒為0。 
數據庫供應商對其定義了最大精度和最小精度。 
供應商可能會提供的默認精度。 
SMALLINT
用法:SMALLINT(精度)

是一種精確數值類型。 
位數取舍方法與INTEGER (二進制或者十進制)相同。 
標度值恒為0。 
最大精度等于或者小于INTEGER的最大精度。 
FLOAT
用法:FLOAT(精度)

是一種近似數值類型,即對一個指定的數值用指數形式表示出來,如1.23e-45(等于),該數值類型的取舍和截短方法大多由數據庫提供商定義。 
當取舍時,使用二進制精度。 
精度表示使用的最小位數,最大精度由數據庫提供商設定。 
REAL
用法:REAL

是一種近似數值類型。 
使用二進制精度,最大精度由數據庫提供商設定。 
其默認精度必須小于DOUBLE PRECISION的默認精度。 
DOUBLE PRECISION
用法: DOUBLE PRECISION

是一種近似數值類型。 
使用二進制精度,最大精度由數據庫提供商設定。 
其默認精度必須大于PRECISION的默認精度。 
相關理論
數據庫提供商在基本數據類型的基礎上創建了你實際需要的數據類型。對數值類型來說,它可以包括同名的數據類型,如INT、REAL,也包括為了滿足特定場合或者用途而創建的新數據類型。

在我們的下一篇文章,我們將討論datetime和interval數據類型。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡南县| 青川县| 图木舒克市| 临沂市| 西林县| 宜阳县| 蒙自县| 吉木乃县| 罗甸县| 博湖县| 龙泉市| 杭锦后旗| 平定县| 阜南县| 乌鲁木齐市| 大田县| 平顺县| 芦溪县| 慈利县| 蒲江县| 鄄城县| 弋阳县| 广水市| 晋宁县| 隆安县| 习水县| 明光市| 罗甸县| 留坝县| 宁国市| 于田县| 黎川县| 普宁市| 石家庄市| 陆良县| 信阳市| 黄山市| 黑山县| 手游| 南宁市| 集安市|