數(shù)據(jù)庫中一般的數(shù)字類型都可以存儲負數(shù),如int,numeric,decimal等。
創(chuàng)新互聯(lián)公司IDC提供業(yè)務:成都移動機房托管,成都服務器租用,成都移動機房托管,重慶服務器租用等四川省內(nèi)主機托管與主機租用業(yè)務;數(shù)據(jù)中心含:雙線機房,BGP機房,電信機房,移動機房,聯(lián)通機房。
工具:sqlserver 2008 R2
步驟:
1、以int類型為例,首先創(chuàng)建一個表:
2、在表中分別插入正數(shù)、負數(shù)和零。
3、執(zhí)行后結(jié)果:
大型文本數(shù)據(jù)可以采用文本或圖形二進制的數(shù)據(jù)類型:
1、TEXT
TEXT數(shù)據(jù)類型用于存儲大量文本數(shù)據(jù),其容量理論上為1 到2的31次方-1 (2, 147, 483, 647)個字節(jié),在實際應用時需要視硬盤的存儲空間而定。
SQL Server 2000 以前的版本中,數(shù)據(jù)庫中一個TEXT 對象存儲的實際上是一個指針,它指向一個個以8KB (8192 個字節(jié))為單位的數(shù)據(jù)頁(Data Page)。 這些數(shù)據(jù)頁是動態(tài)增加并被邏輯鏈接起來的。在SQL Server 2000 中,則將TEXT 和IMAGE 類型的數(shù)據(jù)直接存放到表的數(shù)據(jù)行中,而不是存放到不同的數(shù)據(jù)頁中。 這就減少了用于存儲TEXT 和IMA- GE 類型的空間,并相應減少了磁盤處理這類數(shù)據(jù)的I/O 數(shù)量。
2、NTEXT
NTEXT數(shù)據(jù)類型與TEXT.類型相似不同的,是NTEXT 類型采用UNICODE 標準字符集(Character Set), 因此其理論容量為230-1(1, 073, 741, 823)個字節(jié)。
3、IMAGE
IMAGE 數(shù)據(jù)類型用于存儲大量的二進制數(shù)據(jù)Binary Data。其理論容量為2的31次方-1(2,147,483,647)個字節(jié)。其存儲數(shù)據(jù)的模式與TEXT 數(shù)據(jù)類型相同。通常用來存儲圖形等OLE Object Linking and Embedding,對象連接和嵌入)對象。在輸入數(shù)據(jù)時同BINARY數(shù)據(jù)類型一樣,必須在數(shù)據(jù)前加上字符“0X”作為二進制標識。
可以為負值。
Decimal為SQL Server、MySql等數(shù)據(jù)庫的一種數(shù)據(jù)類型,不屬于浮點數(shù)類型,可以在定義時劃定整數(shù)部份以及小數(shù)部分的位數(shù)。使用精確小數(shù)類型不僅能夠保證數(shù)據(jù)計算更為精確,還可以節(jié)省儲存空間,例如百分比使用decimal(4,2)即可。存儲數(shù)據(jù)范圍是:-10^38~10^38-1 的固定精度和小數(shù)位的數(shù)字。一個decimal類型的數(shù)據(jù)占用了2~17個字節(jié)。
bit 整型 bit 數(shù)據(jù)類型是整型,其值只能是0、1或空值。這種數(shù)據(jù)類型用于存儲只有兩種可能值的數(shù)據(jù),如Yes 或No、True 或Fa lse 、On 或Off
int 整型 int 數(shù)據(jù)類型可以存儲從- 231(-2147483648)到231 (2147483 647)之間的整數(shù)。存儲到數(shù)據(jù)庫的幾乎所有數(shù)值型的數(shù)據(jù)都可以用這種數(shù)據(jù)類型。這種數(shù)據(jù)類型在數(shù)據(jù)庫里占用4個字節(jié)
smallint 整型 smallint 數(shù)據(jù)類型可以存儲從- 215(-32768)到215(32767)之間的整數(shù)。這種數(shù)據(jù)類型對存儲一些常限定在特定范圍內(nèi)的數(shù)值型數(shù)據(jù)非常有用。這種數(shù)據(jù)類型在數(shù)據(jù)庫里占用2 字節(jié)空間
tinyint 整型 tinyint 數(shù)據(jù)類型能存儲從0到255 之間的整數(shù)。它在你只打算存儲有限數(shù)目的數(shù)值時很有用。 這種數(shù)據(jù)類型在數(shù)據(jù)庫中占用1 個字節(jié)
numeric 精確數(shù)值型 numeric數(shù)據(jù)類型與decimal 型相同
decimal 精確數(shù)值型 decimal 數(shù)據(jù)類型能用來存儲從-1038-1到1038-1的固定精度和范圍的數(shù)值型數(shù)據(jù)。使用這種數(shù)據(jù)類型時,必須指定范圍和精度。 范圍是小數(shù)點左右所能存儲的數(shù)字的總位數(shù)。精度是小數(shù)點右邊存儲的數(shù)字的位數(shù)
money 貨幣型 money 數(shù)據(jù)類型用來表示錢和貨幣值。這種數(shù)據(jù)類型能存儲從-9220億到9220 億之間的數(shù)據(jù),精確到貨幣單位的萬分之一
smallmoney 貨幣型 smallmoney 數(shù)據(jù)類型用來表示錢和貨幣值。這種數(shù)據(jù)類型能存儲從-214748.3648 到214748.3647 之間的數(shù)據(jù),精確到貨幣單位的萬分之一
float 近似數(shù)值型 float 數(shù)據(jù)類型是一種近似數(shù)值類型,供浮點數(shù)使用。說浮點數(shù)是近似的,是因為在其范圍內(nèi)不是所有的數(shù)都能精確表示。浮點數(shù)可以是從-1.79E+308到1.79E+308 之間的任意數(shù)
real 近似數(shù)值型 real 數(shù)據(jù)類型像浮點數(shù)一樣,是近似數(shù)值類型。它可以表示數(shù)值在-3.40E+38到3.40E+38之間的浮點數(shù)
datetime 日期時間型 datetime數(shù)據(jù)類型用來表示日期和時間。這種數(shù)據(jù)類型存儲從1753年1月1日到9999年12月3 1日間所有的日期和時間數(shù)據(jù), 精確到三百分之一秒或3.33毫秒
Smalldatetime 日期時間型 smalldatetime 數(shù)據(jù)類型用來表示從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鐘
cursor 特殊數(shù)據(jù)型 cursor 數(shù)據(jù)類型是一種特殊的數(shù)據(jù)類型,它包含一個對游標的引用。這種數(shù)據(jù)類型用在存儲過程中,而且創(chuàng)建表時不能用
timestamp 特殊數(shù)據(jù)型 timestamp 數(shù)據(jù)類型是一種特殊的數(shù)據(jù)類型,用來創(chuàng)建一個數(shù)據(jù)庫范圍內(nèi)的唯一數(shù)碼。 一個表中只能有一個timestamp列。每次插入或修改一行時,
timestamp列的值都會改變。盡管它的名字中有“time”, 但timestamp列不是人們可識別的日期。在一個數(shù)據(jù)庫里,timestamp值是唯一的
Uniqueidentifier 特殊數(shù)據(jù)型 Uniqueidentifier數(shù)據(jù)類型用來存儲一個全局唯一標識符,即GUID。GUID確實是全局唯一的。這個數(shù)幾乎沒有機會在另一個系統(tǒng)中被重建。可以使用NEWID 函數(shù)或轉(zhuǎn)換一個字符串為唯一標識符來初始化具有唯一標識符的列
char 字符型 char數(shù)據(jù)類型用來存儲指定長度的定長非統(tǒng)一編碼型的數(shù)據(jù)。當定義一列為此類型時,你必須指定列長。當你總能知道要存儲的數(shù)據(jù)的長度時,此數(shù)據(jù)類型很有用。例如,當你按郵政編碼加4個字符格式來存儲數(shù)據(jù)時,你知道總要用到10個字符。此數(shù)據(jù)類型的列寬最大為8000 個字符
varchar 字符型 varchar數(shù)據(jù)類型,同char類型一樣,用來存儲非統(tǒng)一編碼型字符數(shù)據(jù)。與char 型不一樣,此數(shù)據(jù)類型為變長。當定義一列為該數(shù)據(jù)類型時,你要指定該列的最大長度。 它與char數(shù)據(jù)類型最大的區(qū)別是,存儲的長度不是列長,而是數(shù)據(jù)的長度
text 字符型 text 數(shù)據(jù)類型用來存儲大量的非統(tǒng)一編碼型字符數(shù)據(jù)。這種數(shù)據(jù)類型最多可以有231-1或20億個字符
nchar 統(tǒng)一編碼字符型 nchar 數(shù)據(jù)類型用來存儲定長統(tǒng)一編碼字符型數(shù)據(jù)。統(tǒng)一編碼用雙字節(jié)結(jié)構(gòu)來存儲每個字符,而不是用單字節(jié)(普通文本中的情況)。它允許大量的擴展字符。此數(shù)據(jù)類型能存儲4000種字符,使用的字節(jié)空間上增加了一倍
nvarchar 統(tǒng)一編碼字符型 nvarchar 數(shù)據(jù)類型用作變長的統(tǒng)一編碼字符型數(shù)據(jù)。此數(shù)據(jù)類型能存儲4000種字符,使用的字節(jié)空間增加了一倍
ntext 統(tǒng)一編碼字符型 ntext 數(shù)據(jù)類型用來存儲大量的統(tǒng)一編碼字符型數(shù)據(jù)。這種數(shù)據(jù)類型能存儲230 -1或?qū)⒔?0億個字符,且使用的字節(jié)空間增加了一倍
binary 二進制數(shù)據(jù)類型 binary數(shù)據(jù)類型用來存儲可達8000 字節(jié)長的定長的二進制數(shù)據(jù)。當輸入表的內(nèi)容接近相同的長度時,你應該使用這種數(shù)據(jù)類型
varbinary 二進制數(shù)據(jù)類型 varbinary 數(shù)據(jù)類型用來存儲可達8000 字節(jié)長的變長的二進制數(shù)據(jù)。當輸入表的內(nèi)容大小可變時,你應該使用這種數(shù)據(jù)類型
image 二進制數(shù)據(jù)類型 image 數(shù)據(jù)類型用來存儲變長的二進制數(shù)據(jù),最大可達231-1或大約20億字節(jié)
SQL SERVER的數(shù)據(jù)類型
數(shù)據(jù)類弄是數(shù)據(jù)的一種屬性,表示數(shù)據(jù)所表示信息的類型。任何一種計算機語言都定義了自己的數(shù)據(jù)類型。當然,不同的程序語言都具有不同的特點,所定義的數(shù)據(jù)類型的各類和名稱都或多或少有些不同。SQLServer 提供了 25 種數(shù)據(jù)類型:
·Binary [(n)]
·Varbinary [(n)]
·Char [(n)]
·Varchar[(n)]
·Nchar[(n)]
·Nvarchar[(n)]
·Datetime
·Smalldatetime
·Decimal[(p[,s])]
·Numeric[(p[,s])]
·Float[(n)]
·Real
·Int
·Smallint
·Tinyint
·Money
·Smallmoney
·Bit
·Cursor
·Sysname
·Timestamp
·Uniqueidentifier
·Text
·Image
·Ntext
(1)二進制數(shù)據(jù)類型
二進制數(shù)據(jù)包括 Binary、Varbinary 和 Image
Binary 數(shù)據(jù)類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數(shù)據(jù)。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4 個字節(jié)。
Varbinary[(n)] 是 n 位變長度的二進制數(shù)據(jù)。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4個字節(jié),不是n 個字節(jié)。
在 Image 數(shù)據(jù)類型中存儲的數(shù)據(jù)是以位字符串存儲的,不是由 SQL Server 解釋的,必須由應用程序來解釋。例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數(shù)據(jù)存儲在 Image 數(shù)據(jù)類型中。
(2)字符數(shù)據(jù)類型
字符數(shù)據(jù)的類型包括 Char,Varchar 和 Text
字符數(shù)據(jù)是由任何字母、符號和數(shù)字任意組合而成的數(shù)據(jù)。
Varchar 是變長字符數(shù)據(jù),其長度不超過 8KB。Char 是定長字符數(shù)據(jù),其長度最多為 8KB。超過 8KB 的ASCII 數(shù)據(jù)可以使用Text數(shù)據(jù)類型存儲。例如,因為 Html 文檔全部都是 ASCII 字符,并且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數(shù)據(jù)類型存儲在SQL Server 中。
(3)Unicode 數(shù)據(jù)類型
Unicode 數(shù)據(jù)類型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,傳統(tǒng)的非 Unicode 數(shù)據(jù)類型允許使用由特定字符集定義的字符。在 SQL Server安裝過程中,允許選擇一種字符集。使用 Unicode 數(shù)據(jù)類型,列中可以存儲任何由Unicode 標準定義的字符。在 Unicode 標準中,包括了以各種字符集定義的全部字符。使用Unicode數(shù)據(jù)類型,所戰(zhàn)勝的窨是使用非 Unicode 數(shù)據(jù)類型所占用的窨大小的兩倍。
在 SQL Server 中,Unicode 數(shù)據(jù)以 Nchar、Nvarchar 和 Ntext 數(shù)據(jù)類型存儲。使用這種字符類型存儲的列可以存儲多個字符集中的字符。當列的長度變化時,應該使用Nvarchar 字符類型,這時最多可以存儲 4000 個字符。當列的長度固定不變時,應該使用 Nchar 字符類型,同樣,這時最多可以存儲4000 個字符。當使用 Ntext 數(shù)據(jù)類型時,該列可以存儲多于 4000 個字符。
(4)日期和時間數(shù)據(jù)類型
日期和時間數(shù)據(jù)類型包括 Datetime 和 Smalldatetime兩種類型
日期和時間數(shù)據(jù)類型由有效的日期和時間組成。例如,有效的日期和時間數(shù)據(jù)包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一個數(shù)據(jù)類型是日期在前,時間在后一個數(shù)據(jù)類型是霎時間在前,日期在后。在 Microsoft SQL Server中,日期和時間數(shù)據(jù)類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結(jié)束(每一個值要求 8 個存儲字節(jié))。使用 Smalldatetime 數(shù)據(jù)類型時,所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結(jié)束(每一個值要求 4 個存儲字節(jié))。
日期的格式可以設定。設置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的順序。有效的參數(shù)包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。
例如,當執(zhí)行 Set DateFormat YMD 之后,日期的格式為年 月 日 形式;當執(zhí)行 Set DateFormat DMY 之后,日期的格式為日 月有年 形式
(5)數(shù)字數(shù)據(jù)類型
數(shù)字數(shù)據(jù)只包含數(shù)字。數(shù)字數(shù)據(jù)類型包括正數(shù)和負數(shù)、小數(shù)(浮點數(shù))和整數(shù)
整數(shù)由正整數(shù)和負整數(shù)組成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整數(shù)存儲的數(shù)據(jù)類型是 Int,Smallint和 Tinyint。Int 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍大于 Smallint 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍,而 Smallint 據(jù)類型存儲數(shù)據(jù)的范圍大于Tinyint 數(shù)據(jù)類型存儲數(shù)據(jù)的范圍。使用 Int 數(shù)據(jù)狗昔存儲數(shù)據(jù)的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個字節(jié)存儲空間)。使用 Smallint 數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍從 -32 768 到 32 767(每一個值要求2個字節(jié)存儲空間)。使用Tinyint 數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍是從0 到255(每一個值要求1個字節(jié)存儲空間)。
精確小婁數(shù)據(jù)在 SQL Server 中的數(shù)據(jù)類型是 Decimal 和 Numeric。這種數(shù)據(jù)所占的存儲空間根據(jù)該數(shù)據(jù)的位數(shù)后的位數(shù)來確定。
在SQL Server 中,近似小數(shù)數(shù)據(jù)的數(shù)據(jù)類型是 Float 和 Real。例如,三分之一這個分數(shù)記作。3333333,當使用近似數(shù)據(jù)類型時能準確表示。因此,從系統(tǒng)中檢索到的數(shù)據(jù)可能與存儲在該列中數(shù)據(jù)不完全一樣。
(6)貨幣數(shù)據(jù)表示正的或者負的貨幣數(shù)量 。
在 Microsoft SQL Server 中,貨幣數(shù)據(jù)的數(shù)據(jù)類型是Money 和 Smallmoney
Money數(shù)據(jù)類型要求 8 個存儲字節(jié),Smallmoney 數(shù)據(jù)類型要求 4 個存儲字節(jié)。
(7)特殊數(shù)據(jù)類型
特殊數(shù)據(jù)類型包括前面沒有提過的數(shù)據(jù)類型。特殊的數(shù)據(jù)類型有3種,即 Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用于表示SQL Server 活動的先后順序,以二進投影的格式表示。Timestamp 數(shù)據(jù)與插入數(shù)據(jù)或者日期和時間沒有關(guān)系。
Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit 數(shù)據(jù)類型。例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數(shù)據(jù)類型的列中。
Uniqueidentifier 由 16 字節(jié)的十六進制數(shù)字組成,表示一個全局唯一的。當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數(shù)據(jù)類型可以區(qū)別不同的客戶。
2.用戶定義的數(shù)據(jù)類型
用戶定義的數(shù)據(jù)類型基于在 Microsoft SQL Server 中提供的數(shù)據(jù)類型。當幾個表中必須存儲同一種數(shù)據(jù)類型時,并且為保證這些列有相同的數(shù)據(jù)類型、長度和可空性時,可以使用用戶定義的數(shù)據(jù)類型。例如,可定義一種稱為 postal_code 的數(shù)據(jù)類型,它基于 Char 數(shù)據(jù)類型。
當創(chuàng)建用戶定義的數(shù)據(jù)類型時,必須提供三個數(shù):數(shù)據(jù)類型的名稱、所基于的系統(tǒng)數(shù)據(jù)類型和數(shù)據(jù)類型的可空性。
(1)創(chuàng)建用戶定義的數(shù)據(jù)類型
創(chuàng)建用戶定義的數(shù)據(jù)類型可以使用 Transact-SQL 語句。系統(tǒng)存儲過程 sp_addtype 可以來創(chuàng)建用戶定義的數(shù)據(jù)類型。其語法形式如下:
sp_addtype {type},[,system_data_bype][,'null_type']
其中,type 是用戶定義的數(shù)據(jù)類型的名稱。system_data_type 是系統(tǒng)提供的數(shù)據(jù)類型,例如 Decimal、Int、Char 等等。 null_type 表示該數(shù)據(jù)類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use cust
Exec sp_addtype ssn,'Varchar(11)',"Not Null'
創(chuàng)建一個用戶定義的數(shù)據(jù)類型 ssn,其基于的系統(tǒng)數(shù)據(jù)類型是變長為11 的字符,不允許空。
例子:
Use cust
Exec sp_addtype birthday,datetime,'Null'
創(chuàng)建一個用戶定義的數(shù)據(jù)類型 birthday,其基于的系統(tǒng)數(shù)據(jù)類型是 DateTime,允許空。
例子:
Use master
Exec sp_addtype telephone,'varchar(24),'Not Null'
Eexc sp_addtype fax,'varchar(24)','Null'
創(chuàng)建兩個數(shù)據(jù)類型,即 telephone 和 fax
(2)刪除用戶定義的數(shù)據(jù)類型
當用戶定義的數(shù)據(jù)類型不需要時,可刪除。刪除用戶定義的數(shù)據(jù)類型的命令是 sp_droptype {'type'}。
例子:
Use master
Exec sp_droptype 'ssn'
注意:當表中的列還正在使用用戶定義的數(shù)據(jù)類型時,或者在其上面還綁定有默認或者規(guī)則時,這種用戶定義的數(shù)據(jù)類型不能刪除。
SQL SERVER的字段類型說明
以下為SQL SERVER7.0以上版本的字段類型說明。SQL SERVER6.5的字段類型說明請參考SQL SERVER提供的說明。
字段類型 描述
bit 0或1的整型數(shù)字
int 從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數(shù)字
smallint 從-2^15(-32,768)到2^15(32,767)的整型數(shù)字
tinyint 從0到255的整型數(shù)字
decimal 從-10^38到10^38-1的定精度與有效位數(shù)的數(shù)字
numeric decimal的同義詞
money 從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣數(shù)據(jù),最小貨幣單位千分之十
smallmoney 從-214,748.3648到214,748.3647的貨幣數(shù)據(jù),最小貨幣單位千分之十
float 從-1.79E+308到1.79E+308可變精度的數(shù)字
real 從-3.04E+38到3.04E+38可變精度的數(shù)字
datetime 從1753年1月1日到9999年12日31的日期和時間數(shù)據(jù),最小時間單位為百分之三秒或3.33毫秒
smalldatetime 從1900年1月1日到2079年6月6日的日期和時間數(shù)據(jù),最小時間單位為分鐘
timestamp 時間戳,一個數(shù)據(jù)庫寬度的唯一數(shù)字
uniqueidentifier 全球唯一標識符GUID
char 定長非Unicode的字符型數(shù)據(jù),最大長度為8000
varchar 變長非Unicode的字符型數(shù)據(jù),最大長度為8000
text 變長非Unicode的字符型數(shù)據(jù),最大長度為2^31-1(2G)
nchar 定長Unicode的字符型數(shù)據(jù),最大長度為8000
nvarchar 變長Unicode的字符型數(shù)據(jù),最大長度為8000
ntext 變長Unicode的字符型數(shù)據(jù),最大長度為2^31-1(2G)
binary 定長二進制數(shù)據(jù),最大長度為8000
varbinary 變長二進制數(shù)據(jù),最大長度為8000
image 變長二進制數(shù)據(jù),最大長度為2^31-1(2G)
標題名稱:SQLserver負整數(shù),sql 負數(shù)
URL地址:http://www.chinadenli.net/article36/dseddsg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、手機網(wǎng)站建設、Google、網(wǎng)站建設、定制網(wǎng)站、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)