① sql數據類型nchar,char,varchar與nvarchar區別
nchar與char是相似的,nvarchar與varchar是相似的。
char類型:
對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組,CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義
char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間,不夠的字元用空格去填。因為是固定長度,所以速度效率高。
Varchar類型:Varchar
的類型不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian"
而char
不一樣,比如char(100),它的值是"qian",而實際上它在資料庫中是"qian
"(qian後共有96個空格,就是把它填滿為100個位元組)。
由於char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉!
VARCHAR存儲變長數據,但存儲效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為
VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼「+1」呢?這一個位元組用於保存實際使用了多大的長度。
nchar類型和Nvarchar類型是怎麼一回事呢?為了與其他多種字元的轉換,如中文,音標等,對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也佔用兩個位元組,所有的字元都佔用2個位元組。
關於長度與漢字
varchar(100)/char(100)能存50個漢字,nvarchar(100)/nchar(100)能存100個漢字。
② sql中varbinary 是什麼數據類型
varbinary 類型和char與varchar類型是相似的,只是他們存儲的是二進制數據,也就是說他們是包含位元組流而不是字元流,他們有二進制字元的集合和順序,他們的對比,排序是基於位元組的數值進行的
binary與varbinary的最大長度和char與varchar是一樣的,只不過他們是定義位元組長度,而char和varchar對應的是字元長度。Varbinary是一個可以改變長度的二進制數據。
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4個位元組,不是n 個位元組。
varbinary在插入不會去填補0x00位元組,查詢的時候也不會丟棄任何位元組,在比較的時候,所有的位元組都是有效的,並且0x00<space (space對應的是0x20)。
(2)sql中數據類型可變長度擴展閱讀:
varbinary( n | max):可變長度,n 的取值范圍為 1 至 8,000,max 是指最大存儲空間是 2^31-1 個位元組,即最大4GB;
在將數據轉換為二進制數據時,SQL Server會對生成的二進制數據進行填充或截斷,詳細的規則是:
1、填充(或擴展)的二進制數據是16進制的0x00的整數倍,這就是說,填充的位元組中每一個bit都是0;
2、將字元類型轉換成二進制數據時,在數據的右側填充或截斷數據,填充數值是0x00;
3、將其他類型數據轉換成二進制數據時,在數據的左側填充或截斷數據,填充數值是0x00;在截斷數據時,保留低位的數據,將高位數值截斷。
③ 請問,SQL可變長度 和 固定長度區別
我舉個例子你就明白了。假如char(5),那輸入"ABC",你讀取這個欄位的時候,就是"ABC ",後面會加兩個空格,長度為5假如varchar(5),那輸入"ABC",你讀取這個欄位的時候,就是"ABC",後面會加兩個空格,長度為3 這種char類型,編程的時候如果用List類控制項或者網頁的下拉列表,兩個欄位合並,就比較方便了,例如ABC |肉類A |菜類如果用varchar類型,就會變成:ABC|肉類A|菜類
④ SQL中varchar和nvarchar有什麼區別
SQL中varchar和nvarchar區別:輸入不同,含義不同。
一、輸入不同:
varchar(4)可以輸入4個字線,也可以輸入兩個漢字。
nvarchar(4)可以輸四個漢字,也可以輸4個字母,但最多四個。
二、含義不同:
varchar(n)長度為n個位元組的可變長度且非Unicode的字元數據。n必須是一個介於1和8,000之間的數值。存儲大小為輸入數據的位元組的實際長度,而不是n個位元組。
nvarchar(n)包含n個字元的可變長度Unicode字元數據。n的值必須介於1與4,000之間。位元組的存儲大小是所輸入字元個數的兩倍。
字元數據類型
Varchar是變長字元數據,其長度不超過8KB。Char是定長字元數據,其長度最多為8KB。超過8KB的ASCII數據可以使用Text數據類型存儲。例如,因為Html文檔全部都是ASCII字元,並且在一般情況下長度超過8KB,所以這些文檔可以Text數據類型存儲在SQLServer中。
在SQLServer中,Unicode數據以Nchar、Nvarchar和Ntext數據類型存儲。使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar字元類型,這時最多可以存儲4000個字元。
以上內容參考:網路-SQL數據類型
⑤ sql中數據類型的長度
1.varchar,0在資料庫中作為字元串中的一個字元是不能被隱藏的,而作為int則會被隱藏;
2.datetime,專門用於存放時間的數據類型;
3.字元串,字元只是一字元串中的一個個體,字元只能表示一個字母或漢字;
4.
首先,我們來看下nvarchar和varchar的官方幫助里的說明:
varchar(n)
長度為
n
個位元組的可變長度且非
unicode
的字元數據。n
必須是一個介於
1
和
8,000
之間的數值。存儲大小為輸入數據的位元組的實際長度,而不是
n
個位元組。所輸入的數據字元長度可以為零。varchar
在
sql-92
中的同義詞為
char
varying
或
character
varying。
nvarchar(n)
包含
n
個字元的可變長度
unicode
字元數據。n
的值必須介於
1
與
4,000
之間。位元組的存儲大小是所輸入字元個數的兩倍。所輸入的數據字元長度可以為零。nvarchar
在
sql-92
中的同義詞為
national
char
varying
和
national
character
varying。
二、該如何選擇兩種字元呢?
varchar和nvarchar都能存儲漢字。區別在於,一個漢字佔varchar(2),只佔nvarchar(1),而字母只佔varchar(1),那麼在資料庫欄位求長度的時候,用varchar你就不一定知道它確切的知道它到底有幾個字,如果用nvarchar,那麼漢字也是nvarchar(1),字母也是nvarchar(1),那麼已經很明顯了.
同時,varchar的檢索快於nvarchar。
至於,具體該選擇哪種,看你自己的想法和需求了
5.單引號表示單引號中的數據是實際數據,如:int
test=5;
select
'test'與select
test不同,前者會是字元串test,而後者則是5
6.'
'表示的是一個空格,表明name1與name2中間有一個空格,而三者組合成一個字元串並且所在的列命名為name
⑥ 怎麼計算sql中數據類型的范圍
SQL數據類型詳解
bit 整型
其值只能是0、1或空值。
這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或False 、On
或Off.
int 整型 4個位元組
從- 2^31(-2147483648)到2^31 (2147483
647)之間的整數。
存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。
smallint 整型 2個位元組
smallint 數據類型可以存儲從- 2^15(-32768)到2^15(32767)之間的整數。
tinyint 整型 1個位元組
tinyint 數據類型能存儲從0到255 之間的整數。
numeric 、 decimal 精確數值型
從-1038-1到1038-1的固定精度和范圍的數值型數據。
使用這種數據類型時,必須指定范圍和精度。
范圍是小數點左右所能存儲的數字的總位數,精度是小數點右邊存儲的數字的位數。
money 貨幣型
這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一。
smallmoney 貨幣型
這種數據類型能存儲從-214748.3648 到214748.3647
之間的數據,精確到貨幣單位的萬分之一。
float 浮點數值型
從-1.79E+308到1.79E+308 之間的任意數。
real 實型
在-3.40E+38到3.40E+38之間的浮點數。
datetime 日期時間型
從1753年1月1日到9999年12月31日間所有的日期和時間數據,精確到三百分之一秒或3.33毫秒。
Smalldatetime 日期時間型
從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鍾。
cursor 特殊數據型
它包含一個對游標的引用。這種數據類型用在存儲過程中,而且創建表時不能用。
timestamp 特殊數據型
用來創建一個資料庫范圍內的唯一數碼。
一個表中只能有一個timestamp列。每次插入或修改一行時,timestamp列的值都會改變。
Uniqueidentifier 特殊數據型
全局唯一標識符,即GUID。可以使用NEWID
函數或轉換一個字元串為唯一標識符來初始化具有唯一標識符的列 .
char 字元型
存儲指定長度的定長非統一編碼型的數據。當定義一列為此類型時,你必須指定列長。
當你總能知道要存儲的數據的長度時,此數據類型很有用。
此數據類型的列寬最大為8000
個字元.
varchar 字元型
用來存儲非統一編碼型字元數據。與char
型不一樣,此數據類型為變長。
當定義一列為該數據類型時,你要指定該列的最大長度。
它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度.
text 字元型
用來存儲大量的非統一編碼型字元數據。
這種數據類型最多可以有2^31-1或20億個雙位元組字元.
nchar 統一編碼字元型
用來存儲定長統一編碼字元型數據。統一編碼用雙位元組結構來存儲每個字元,而不是用單位元組(普通文本中的情況)。它允許大量的擴展字元。此數據類型能存儲4000種字元,使用的位元組空間上增加了一倍.
nvarchar 統一編碼字元型
nvarchar
數據類型用作變長的統一編碼字元型數據。此數據類型能存儲4000種字元,使用的位元組空間增加了一倍.
ntext 統一編碼字元型
ntext 數據類型用來存儲大量的統一編碼字元型數據。
這種數據類型能存儲2^30
-1或將近10億個字元,且使用的位元組空間增加了一倍
binary 二進制數據類型
binary數據類型用來存儲可達8000
位元組長的定長的二進制數據。當輸入表的內容接近相同的長度時,你應該使用這種數據類型.
varbinary 二進制數據類型
varbinary 數據類型用來存儲可達8000
位元組長的變長的二進制數據。當輸入表的內容大小可變時,你應該使用這種數據類型
image 二進制數據類型
image 數據類型用來存儲變長的二進制數據,最大可達2^31-1或大約20億位元組
---------------------------------------------------
(1)二進制數據類型
二進制數據包括 Binary、Varbinary 和 Image
Binary
數據類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到
8000。其存儲窨的大小是 n + 4 個位元組。
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到
8000。其存儲窨的大小是 n + 4個位元組,不是n 個位元組。
在 Image 數據類型中存儲的數據是以位字元串存儲的,不是由 SQL Server
解釋的,必須由應用程序來解釋。例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類型中。
(2)字元數據類型
字元數據的類型包括 Char,Varchar 和 Text
字元數據是由任何字母、符號和數字任意組合而成的數據。
Varchar
是變長字元數據,其長度不超過 8KB。Char 是定長字元數據,其長度最多為 8KB。超過 8KB 的ASCII 數據可以使用Text數據類型存儲。例如,因為
Html 文檔全部都是 ASCII 字元,並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數據類型存儲在SQL Server 中。
(3)Unicode 數據類型
Unicode 數據類型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,傳統的非
Unicode 數據類型允許使用由特定字元集定義的字元。在 SQL Server安裝過程中,允許選擇一種字元集。使用 Unicode
數據類型,列中可以存儲任何由Unicode 標準定義的字元。在 Unicode
標准中,包括了以各種字元集定義的全部字元。使用Unicode數據類型,所戰勝的窨是使用非 Unicode 數據類型所佔用的窨大小的兩倍。
在 SQL
Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext
數據類型存儲。使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar 字元類型,這時最多可以存儲 4000
個字元。當列的長度固定不變時,應該使用 Nchar 字元類型,同樣,這時最多可以存儲4000 個字元。當使用 Ntext 數據類型時,該列可以存儲多於 4000
個字元。
(4)日期和時間數據類型
日期和時間數據類型包括 Datetime 和
Smalldatetime兩種類型
日期和時間數據類型由有效的日期和時間組成。例如,有效的日期和時間數據包括「4/01/98
12:15:00:00:00 PM」和「1:28:29:15:01AM
8/17/98」。前一個數據類型是日期在前,時間在後一個數據類型是霎時間在前,日期在後。在 Microsoft SQL
Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1
日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。使用 Smalldatetime 數據類型時,所存儲的日期范圍是 1900年 1
月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4
個存儲位元組)。
日期的格式可以設定。設置日期格式的命令如下:
Set DateFormat {format | @format
_var|
其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和
DYM。在默認情況下,日期格式為MDY。
例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;當執行 Set
DateFormat DMY 之後,日期的格式為日 月有年 形式
(5)數字數據類型
數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點數)和整數
整數由正整數和負整數組成,例如 39、25、0-2 和 33967。在
Micrsoft SQL Server 中,整數存儲的數據類型是 Int,Smallint和 Tinyint。
Int 數據類型存儲數據的范圍大於 Smallint 數據類型存儲數據的范圍,而 Smallint 據類型存儲數據的范圍大於Tinyint
數據類型存儲數據的范圍。
使用 Int 數據狗昔存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組存儲空間)。
使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個位元組存儲空間)。
使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個位元組存儲空間)。
精確小婁數據在 SQL Server
中的數據類型是 Decimal 和 Numeric。這種數據所佔的存儲空間根據該數據的位數後的位數來確定。
在SQL Server
中,近似小數數據的數據類型是 Float 和
Real。例如,三分之一這個分數記作。3333333,當使用近似數據類型時能准確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。
(6)貨幣數據表示正的或者負的貨幣數量 。
在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney
Money數據類型要求 8
個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。
(7)特殊數據類型
特殊數據類型包括前面沒有提過的數據類型。特殊的數據類型有3種,即 Timestamp、Bit 和
Uniqueidentifier。
Timestamp 用於表示SQL Server 活動的先後順序,以二進投影的格式表示。Timestamp
數據與插入數據或者日期和時間沒有關系。
Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit
數據類型。例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數據類型的列中。
Uniqueidentifier 由 16
位元組的十六進制數字組成,表示一個全局唯一的。當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數據類型可以區別不同的客戶。
2.用戶定義的數據類型
用戶定義的數據類型基於在 Microsoft SQL Server
中提供的數據類型。當幾個表中必須存儲同一種數據類型時,並且為保證這些列有相同的數據類型、長度和可空性時,可以使用用戶定義的數據類型。例如,可定義一種稱為
postal_code 的數據類型,它基於 Char
數據類型。
當創建用戶定義的數據類型時,必須提供三個數:數據類型的名稱、所基於的系統數據類型和數據類型的可空性。
(1)創建用戶定義的數據類型
創建用戶定義的數據類型可以使用 Transact-SQL 語句。系統存儲過程 sp_addtype
可以來創建用戶定義的數據類型。其語法形式如下:
sp_addtype
{type},[,system_data_bype][,'null_type']
其中,type
是用戶定義的數據類型的名稱。system_data_type 是系統提供的數據類型,例如 Decimal、Int、Char 等等。 null_type
表示該數據類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use
cust
Exec sp_addtype ssn,'Varchar(11)',"Not Null'
創建一個用戶定義的數據類型
ssn,其基於的系統數據類型是變長為11 的字元,不允許空。
例子:
Use cust
Exec sp_addtype
birthday,datetime,'Null'
創建一個用戶定義的數據類型 birthday,其基於的系統數據類型是
DateTime,允許空。
例子:
Use master
Exec sp_addtype
telephone,'varchar(24),'Not Null'
Eexc sp_addtype
fax,'varchar(24)','Null'
創建兩個數據類型,即 telephone 和 fax
(2)刪除用戶定義的數據類型
當用戶定義的數據類型不需要時,可刪除。刪除用戶定義的數據類型的命令是 sp_droptype {'type'}。
例子:
Use
master
Exec sp_droptype
'ssn'
注意:當表中的列還正在使用用戶定義的數據類型時,或者在其上面還綁定有默認或者規則時,這種用戶定義的數據類型不能刪除。
SQL SERVER的欄位類型說明
以下為SQL SERVER7.0以上版本的欄位類型說明。SQL SERVER6.5的欄位類型說明請參考SQL SERVER提供的說明。
欄位類型 描述
bit 0或1的整型數字
int
從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數字
smallint
從-2^15(-32,768)到2^15(32,767)的整型數字
tinyint 從0到255的整型數字
decimal 從-10^38到10^38-1的定精度與有效位數的數字
numeric decimal的同義詞
money
從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣數據,最小貨幣單位千分之十
smallmoney 從-214,748.3648到214,748.3647的貨幣數據,最小貨幣單位千分之十
float
從-1.79E+308到1.79E+308可變精度的數字
real 從-3.04E+38到3.04E+38可變精度的數字
datetime 從1753年1月1日到9999年12日31的日期和時間數據,最小時間單位為百分之三秒或3.33毫秒
smalldatetime 從1900年1月1日到2079年6月6日的日期和時間數據,最小時間單位為分鍾
timestamp 時間戳,一個資料庫寬度的唯一數字
uniqueidentifier 全球唯一標識符GUID
char 定長非Unicode的字元型數據,最大長度為8000
varchar 變長非Unicode的字元型數據,最大長度為8000
text 變長非Unicode的字元型數據,最大長度為2^31-1(2G)
nchar
定長Unicode的字元型數據,最大長度為8000
nvarchar 變長Unicode的字元型數據,最大長度為8000
ntext
變長Unicode的字元型數據,最大長度為2^31-1(2G)
binary 定長二進制數據,最大長度為8000
varbinary 變長二進制數據,最大長度為8000
image 變長二進制數據,最大長度為2^31-1(2G)
-------------------------------------
Bit
1位,值為0或1
Int
Integer
4位元組,值為-2^31~2^31-1
Smallint
2位元組,值為-2^15~2^15-1
Tinyint
1位元組,值為0~255
Decimal (p,s)
數字數據,固定精度為P,寬度為S
Numeric
Money
8位元組,存放貨幣類型,值為-2^63~2^63-1
Small money
4位元組,存放貨幣類型,值為-214748.3648~+214748.3647近似數值數據類型
Float (n)
N在1~24之間,4位元組,7位精度
N=1~7為real
N在25~53之間,8位元組,15位精度
=8~15為float
Datetime
8位元組,描述某天的日期和時刻,值的精確度為1/300秒
Smalldatetime
4位元組,描述某天的日期和時刻,精度為分鍾
Cursor
對游標的引用
Timestamp
8位元組,存放在資料庫內唯一的數據
Uniqueidentifier
16位元組,存放全局唯一標識(GUID)
Char (n)
非unicode字元串的固定長度,n=1~8000
Character (n)
Varchar (n)
可變長度,非unicode字元串n=1~8000
Char varying(n)
Text
伺服器代碼頁中可變長度非unicode數據。最大長度為2^31-1個字元
Nchar
固定長度unicode字元串n=1~4000
National character (n),
National char(n)
Nvarchar
固定長度unicode字元串n=1~4000
National
character varying(n)
Ntext
可變長度unicode數據,最大長度為2^30-1個字元
National text
Binary (n)
固定長度二進制數據,n在1~8000之間,存儲空間為n+4位元組
Varbinary (n)
可變長度二進制數據,n=1~8000
Binary varying (n)
Tmage
可變長度二進制數據,大小為0~2^31-1
注意:
1)
對於數值型數據類型,寬度(scale)是指存儲在小數點後的數字位數,而精度(precision)是指能存儲的包含小數點在內的所有數字位數。
2) money和small money的存儲寬度為4。
3) 時間戳列值在每一行更新時系統自動更新,時間戳列不能是關鍵字或關鍵字的一部分。
4)
唯一標識數據類型不能使用算術操作符(如+、-等),這種數據類型只能使用相等比較操作。Unicode是所有字元集的一致存儲數據的標准。它要使用兩倍於非Unicode數據存儲的存儲空間。
⑦ 請問。sql中可變長度和固定長度的區別
字元串
如果規定只能輸入幾多個字元,用這個,節省資料庫容量,比如文章標題:char固定長度的非 Unicode 字元數據。
如果無法規定多少個字的標題,用這個,它為什麼不能作文章內容?因為它有限制多少位元組:varchar可變長度的非 Unicode 數據。
這個錄入文章內容最合適的了:text可變長度的非 Unicode 數據。
相關說明,可以查一查"SQL SERVER數據類型".
⑧ sql數據類型有哪些
SQL數據類型有以下這些:
1、二進制數據類型。
二進制數據包括 Binary、Varbinary 和 Image
Binary 數據類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲空間的大小是 n + 4 個位元組。
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲空間的大小是 n + 4個位元組,不是n 個位元組。
2、字元數據類型。
字元數據類型包括char、varchar和text。
字元數據是由字母、符號和數字的任意組合組成的數據。
varchar是可變長度字元數據,其長度不超過8kb。char是最大長度為8kb的固定長度字元數據。超過8kb的ASCII數據可以使用文本數據類型存儲。
3、Unicode 數據類型。
Unicode數據類型包括nchar、nvarchar和ntext。
在Microsoft SQL Server中,傳統的非Unicode數據類型允許使用由特定字元集定義的字元。在安裝SQL Server期間,允許選擇字元集。
在Unicode標准中,包含由各種字元集定義的所有字元。使用Unicode數據類型佔用的空間是使用非Unicode數據類型的兩倍。
4、日期和時間數據類型。
日期和時間數據類型包括 Datetime 和 Smalldatetime兩種類型。
日期和時間數據類型由有效的日期和時間組成。
例如,有效的日期和時間數據包括「4/01/98 12:15:00:00:00 PM」和「1:28:29:15:01AM 8/17/98」。
前一個數據類型是日期在前,時間在後。後一個數據類型是時間在前,日期在後。
在 Microsoft SQL Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。
5、數字數據類型。
數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點)和整數。
整數由正整數和負整數組成,如39、25、0-2和33967。在Microsoft SQL Server中,存儲在整數中的數據類型是int、smallint和tinyint。
int數據類型存儲的數據多於smallint數據類型,而smallint數據類型存儲的數據多於tinyint數據類型。
使用int數據類型存儲數據的范圍從-2 147 483 648到2 147 483 647(每個值需要四個位元組的存儲空間)。
6、貨幣數據類型。
在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney
Money數據類型要求 8 個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。
⑨ sql 中的數據類型有那些請講明白些
這個太多了,推薦你還是看看Sql Sever 2000的基礎教程
數據類型
在 Microsoft® SQL Server™ 中,每個列、局部變數、表達式和參數都有一個相關的數據類型,這是指定對象可持有的數據類型(整型、字元、money 等等)的特性。SQL Server 提供系統數據類型集,定義了可與 SQL Server 一起使用的所有數據類型。下面列出系統提供的數據類型集。
可以定義用戶定義的數據類型,其是系統提供的數據類型的別名。有關用戶定義的數據類型的更多信息,請參見 sp_addtype 和創建用戶定義的數據類型。
當兩個具有不同數據類型、排序規則、精度、小數位數或長度的表達式通過運算符進行組合時:
通過將數據類型的優先順序規則應用到輸入表達式的數據類型來確定所得值的數據類型。有關更多信息,請參見數據類型的優先順序。
如果結果數據類型為 char、varchar、text、nchar、nvarchar 或 ntext,則結果值的排序規則由排序規則的優先順序規則決定。有關更多信息,請參見排序規則的優先順序。
結果的精度、小數位數及長度取決於輸入表達式的精度、小數位數及長度。有關更多信息,請參見精度、小數位數和長度。
SQL Server 為 SQL-92 兼容性提供了數據類型同義詞。有關更多信息,請參見數據類型同義詞。
精確數字
整數
bigint
從 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807) 的整型數據(所有數字)。
int
從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型數據(所有數字)。
smallint
從 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型數據。
tinyint
從 0 到 255 的整數數據。
bit
bit
1 或 0 的整數數據。
decimal 和 numeric
decimal
從 -10^38 +1 到 10^38 –1 的固定精度和小數位的數字數據。
numeric
功能上等同於 decimal。
money 和 smallmoney
money
貨幣數據值介於 -2^63 (-922,337,203,685,477.5808) 與 2^63 - 1 (+922,337,203,685,477.5807) 之間,精確到貨幣單位的千分之十。
smallmoney
貨幣數據值介於 -214,748.3648 與 +214,748.3647 之間,精確到貨幣單位的千分之十。
近似數字
float
浮點精度數字數據,有效值為:從 -1.79E + 308 到 -2.23E - 308,0 和 2.23E + 308 到 1.79E + 308。
real
浮點精度數字數據,有效值為:從 -3.40E + 38 到 -1.18E - 38,0 和 1.18E - 38 到 3.40E + 38。
datetime 和 smalldatetime
datetime
從 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和時間數據,精確到百分之三秒(或 3.33 毫秒)。
smalldatetime
從 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和時間數據,精確到分鍾。
字元串
char
固定長度的非 Unicode 字元數據,最大長度為 8,000 個字元。
varchar
可變長度的非 Unicode 數據,最長為 8,000 個字元。
text
可變長度的非 Unicode 數據,最大長度為 2^31 - 1 (2,147,483,647) 個字元。
Unicode 字元串
nchar
固定長度的 Unicode 數據,最大長度為 4,000 個字元。
nvarchar
可變長度 Unicode 數據,其最大長度為 4,000 字元。sysname 是系統提供用戶定義的數據類型,在功能上等同於 nvarchar(128),用於引用資料庫對象名。
ntext
可變長度 Unicode 數據,其最大長度為 2^30 - 1 (1,073,741,823) 個字元。
二進制字元串
binary
固定長度的二進制數據,其最大長度為 8,000 個位元組。
varbinary
可變長度的二進制數據,其最大長度為 8,000 個位元組。
image
可變長度的二進制數據,其最大長度為 2^31 - 1 (2,147,483,647) 個位元組。
其它數據類型
cursor
游標的引用。
sql_variant
一種存儲 SQL Server 支持的各種數據類型(text、ntext、timestamp 和 sql_variant 除外)值的數據類型。
table
一種特殊的數據類型,存儲供以後處理的結果集。
timestamp
資料庫范圍的唯一數字,每次更新行時也進行更新。
uniqueidentifier
全局唯一標識符 (GUID)。
回答者:wfchenjin - 大魔法師 九級 3-10 17:48
--------------------------------------------------------------------------------
SQL SERVER的數據類型
數據類弄是數據的一種屬性,表示數據所表示信息的類型。任何一種計算機語言都定義了自己的數據類型。當然,不同的程序語言都具有不同的特點,所定義的數據類型的各類和名稱都或多或少有些不同。SQLServer 提供了 25 種數據類型:
·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)二進制數據類型
二進制數據包括 Binary、Varbinary 和 Image
Binary 數據類型既可以是固定長度的(Binary),也可以是變長度的。
Binary[(n)] 是 n 位固定的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4 個位元組。
Varbinary[(n)] 是 n 位變長度的二進制數據。其中,n 的取值范圍是從 1 到 8000。其存儲窨的大小是 n + 4個位元組,不是n 個位元組。
在 Image 數據類型中存儲的數據是以位字元串存儲的,不是由 SQL Server 解釋的,必須由應用程序來解釋。例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類型中。 (2)字元數據類型
字元數據的類型包括 Char,Varchar 和 Text
字元數據是由任何字母、符號和數字任意組合而成的數據。
Varchar 是變長字元數據,其長度不超過 8KB。Char 是定長字元數據,其長度最多為 8KB。超過 8KB 的ASCII 數據可以使用Text數據類型存儲。例如,因為 Html 文檔全部都是 ASCII 字元,並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數據類型存儲在SQL Server 中。 (3)Unicode 數據類型
Unicode 數據類型包括 Nchar,Nvarchar 和Ntext
在 Microsoft SQL Server 中,傳統的非 Unicode 數據類型允許使用由特定字元集定義的字元。在 SQL Server安裝過程中,允許選擇一種字元集。使用 Unicode 數據類型,列中可以存儲任何由Unicode 標準定義的字元。在 Unicode 標准中,包括了以各種字元集定義的全部字元。使用Unicode數據類型,所戰勝的窨是使用非 Unicode 數據類型所佔用的窨大小的兩倍。
在 SQL Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext 數據類型存儲。使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar 字元類型,這時最多可以存儲 4000 個字元。當列的長度固定不變時,應該使用 Nchar 字元類型,同樣,這時最多可以存儲4000 個字元。當使用 Ntext 數據類型時,該列可以存儲多於 4000 個字元。 (4)日期和時間數據類型
日期和時間數據類型包括 Datetime 和 Smalldatetime兩種類型
日期和時間數據類型由有效的日期和時間組成。例如,有效的日期和時間數據包括「4/01/98 12:15:00:00:00 PM」和「1:28:29:15:01AM 8/17/98」。前一個數據類型是日期在前,時間在後一個數據類型是霎時間在前,日期在後。在 Microsoft SQL Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。使用 Smalldatetime 數據類型時,所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4 個存儲位元組)。
日期的格式可以設定。設置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。
例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;當執行 Set DateFormat DMY 之後,日期的格式為日 月有年 形式 (5)數字數據類型
數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點數)和整數
整數由正整數和負整數組成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整數存儲的數據類型是 Int,Smallint和 Tinyint。Int 數據類型存儲數據的范圍大於 Smallint 數據類型存儲數據的范圍,而 Smallint 據類型存儲數據的范圍大於Tinyint 數據類型存儲數據的范圍。使用 Int 數據狗昔存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組存儲空間)。使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個位元組存儲空間)。使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個位元組存儲空間)。
精確小婁數據在 SQL Server 中的數據類型是 Decimal 和 Numeric。這種數據所佔的存儲空間根據該數據的位數後的位數來確定。
在SQL Server 中,近似小數數據的數據類型是 Float 和 Real。例如,三分之一這個分數記作。3333333,當使用近似數據類型時能准確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。 (6)貨幣數據表示正的或者負的貨幣數量 。
在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney Money數據類型要求 8 個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。 (7)特殊數據類型
特殊數據類型包括前面沒有提過的數據類型。特殊的數據類型有3種,即 Timestamp、Bit 和 Uniqueidentifier。
Timestamp 用於表示SQL Server 活動的先後順序,以二進投影的格式表示。Timestamp 數據與插入數據或者日期和時間沒有關系。
Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit 數據類型。例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數據類型的列中。
Uniqueidentifier 由 16 位元組的十六進制數字組成,表示一個全局唯一的。當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數據類型可以區別不同的客戶。 2.用戶定義的數據類型
用戶定義的數據類型基於在 Microsoft SQL Server 中提供的數據類型。當幾個表中必須存儲同一種數據類型時,並且為保證這些列有相同的數據類型、長度和可空性時,可以使用用戶定義的數據類型。例如,可定義一種稱為 postal_code 的數據類型,它基於 Char 數據類型。
當創建用戶定義的數據類型時,必須提供三個數:數據類型的名稱、所基於的系統數據類型和數據類型的可空性。 (1)創建用戶定義的數據類型
創建用戶定義的數據類型可以使用 Transact-SQL 語句。系統存儲過程 sp_addtype 可以來創建用戶定義的數據類型。其語法形式如下:
sp_addtype {type},[,system_data_bype][,''null_type'']
其中,type 是用戶定義的數據類型的名稱。system_data_type 是系統提供的數據類型,例如 Decimal、Int、Char 等等。 null_type 表示該數據類型是如何處理空值的,必須使用單引號引起來,例如''NULL''、''NOT NULL''或者''NONULL''。
例子:
Use cust
Exec sp_addtype ssn,''Varchar(11)'',"Not Null''
創建一個用戶定義的數據類型 ssn,其基於的系統數據類型是變長為11 的字元,不允許空。
例子:
Use cust
Exec sp_addtype birthday,datetime,''Null''
創建一個用戶定義的數據類型 birthday,其基於的系統數據類型是 DateTime,允許空。
例子:
Use master
Exec sp_addtype telephone,''varchar(24),''Not Null''
Eexc sp_addtype fax,''varchar(24)'',''Null''
創建兩個數據類型,即 telephone 和 fax (2)刪除用戶定義的數據類型
當用戶定義的數據類型不需要時,可刪除。刪除用戶定義的數據類型的命令是 sp_droptype {''type''}。
例子:
Use master
Exec sp_droptype ''ssn''
注意:當表中的列還正在使用用戶定義的數據類型時,或者在其上面還綁定有默認或者規則時,這種用戶定義的數據類型不能刪除。
SQL SERVER的欄位類型說明
以下為SQL SERVER7.0以上版本的欄位類型說明。SQL SERVER6.5的欄位類型說明請參考SQL SERVER提供的說明。
欄位類型 描述
bit 0或1的整型數字
int 從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數字
smallint 從-2^15(-32,768)到2^15(32,767)的整型數字
tinyint 從0到255的整型數字
decimal 從-10^38到10^38-1的定精度與有效位數的數字
numeric decimal的同義詞
money 從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣數據,最小貨幣單位千分之十
smallmoney 從-214,748.3648到214,748.3647的貨幣數據,最小貨幣單位千分之十
float 從-1.79E+308到1.79E+308可變精度的數字
real 從-3.04E+38到3.04E+38可變精度的數字
datetime 從1753年1月1日到9999年12日31的日期和時間數據,最小時間單位為百分之三秒或3.33毫秒
smalldatetime 從1900年1月1日到2079年6月6日的日期和時間數據,最小時間單位為分鍾
timestamp 時間戳,一個資料庫寬度的唯一數字
uniqueidentifier 全球唯一標識符GUID
char 定長非Unicode的字元型數據,最大長度為8000
varchar 變長非Unicode的字元型數據,最大長度為8000
text 變長非Unicode的字元型數據,最大長度為2^31-1(2G)
nchar 定長Unicode的字元型數據,最大長度為8000
nvarchar 變長Unicode的字元型數據,最大長度為8000
ntext 變長Unicode的字元型數據,最大長度為2^31-1(2G)
binary 定長二進制數據,最大長度為8000
varbinary 變長二進制數據,最大長度為8000
image 變長二進制數據,最大長度為2^31-1(2G)
回答者:mgc - 經理 五級 3-10 17:53
--------------------------------------------------------------------------------
表1顯示了數字數據類型;表2顯示了字元數據類型;表3顯示了日期和布爾數據類型。
表1 scalar types:numeric
datatype range subtypes description
binary_integer -214748-2147483647 natural
natural
npositive
positiven
signtype
用於存儲單位元組整數。
要求存儲長度低於number值。
用於限制范圍的子類型(subtype):
natural:用於非負數
positive:只用於正數
naturaln:只用於非負數和非null值
positiven:只用於正數,不能用於null值
signtype:只有值:-1、0或1.
number 1.0e-130-9.99e125 dec
decimal
double
precision
float
integeric
int
numeric
real
smallint 存儲數字值,包括整數和浮點數。可以選擇精度和刻度方式,語法:
number[([,])]。
預設的精度是38,scale是0.
pls_integer -2147483647-2147483647 與binary_integer基本相同,但採用機器運算時,pls_integer提供更好的性能 。
表2 字元數據類型
datatype rang subtype description
char 最大長度32767位元組 character 存儲定長字元串,如果長度沒有確定,預設是1
long 最大長度2147483647位元組 存儲可變長度字元串
raw 最大長度32767位元組 用於存儲二進制數據和位元組字元串,當在兩個資料庫之間進行傳遞時,raw數據不在字元集之間進行轉換。
longraw 最大長度2147483647 與long數據類型相似,同樣他也不能在字元集之間進行轉換。
rowid 18個位元組 與資料庫rowid偽列類型相同,能夠存儲一個行標示符,可以將行標示符看作資料庫中每一行的唯一鍵值。
varchar2 最大長度32767位元組 stringvarchar 與varchar數據類型相似,存儲可變長度的字元串。聲明方法與varchar相同
表3 date和boolean
datatype range description
boolean true/false 存儲邏輯值true或false,無參數
date 01/01/4712 bc 存儲固定長的日期和時間值,日期值中包含時間
⑩ sql中varchar(50)代表什麼
此處例子----sql server
對於字元類型的有:
char:固定長度,存儲ANSI字元,不足的補英文半形空格。
nchar:固定長度,存儲Unicode字元,不足的補英文半形空格
varchar:可變長度,存儲ANSI字元,根據數據長度自動變化。
nvarchar:可變長度,存儲Unicode字元,根據數據長度自動變化。
也就是說:varchar 可變長度,
varchar(50)即長度為:50個字元
當有存入值時,就跟據實際的值的大小(長度)存入數據。