1. sql中類型佔多少位元組
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 到 1.79E + 308 的浮點精度數字。 real 從 -3.40E + 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)。
2. SQL中numeric(22,5)為什麼佔13個位元組,numeric(8,3)佔5個位元組
decimal[(p[,s])] 和numeric[(p[,s])]
固定精度和小數位數。使用最大精度時,有效值的范圍為 - 10^38 +1 到 10^38 - 1。decimal的 ISO 同義詞為dec和dec(p、s)。numeric在功能上等價於decimal。
p(精度)
最多可以存儲的十進制數字的總位數,包括小數點左邊和右邊的位數。該精度必須是從 1 到最大精度 38 之間的值。默認精度為 18。
s(小數位數)
小數點右邊可以存儲的十進制數字的位數。從p中減去此數字可確定小數點左邊的最大位數。小數點右邊可以存儲的十進制數字的最大位數。小數位數必須是從 0 到p之間的值。僅在指定精度後才可以指定小數位數。默認的小數位數為 0;因此,0 <=s<=p。最大存儲大小基於精度而變化。
如上表中:精度P=22時,numeric(22,5)是13位元組。
精度P=8 時,numeric(8,3)是5位元組。
一定要給分啊,親!~~
3. sql表有沒有大小限制
8,060 位元組,是 SQL Server 中的「數據頁」大小限制。
「數據行」是保存在「數據頁」中,一個「數據頁」可以保存多個「數據行」。如果一行數據超過 8,060 位元組,則無法放入「數據頁」中,因此保存失敗。
text、image 等欄位的數據不存在此限制,因為該欄位實際上僅把一個指向 text、image 數據的指針保存在「數據頁」上,而「數據頁」並沒有保存 text、image 欄位本身的數據(好像是 16 位元組長度的指針,記不清了)。
註:不能直接在 text、image 等欄位上指定條件搜索,必須使用全文檢索或相關函數。檢索該類型的欄位會嚴重降低資料庫性能,因此不是必須不推薦使用 text、image 等欄位。
4. SQL中英文字元數據類型nchar,char,varchar與nvarchar所佔位元組數分別是
這個提問有點問題哦,簡單的講是這樣的 1、 char(n),varchar(n)是長度為 n 個位元組的可變長度且非 Unicode 的字元數據。n 必須是一個介於 1 和 8,000 之間的數值。存儲大小為輸入數據的位元組的實際長度,而不是 n 個位元組。2、nchar(n),nvarchar(n)
包含 n 個字元的可變長度 Unicode 字元數據。n 的值必須介於 1 與 4,000 之間。位元組的存儲大小是所輸入字元個數的兩倍。
舉個例子,如果定義varchar(10) 這里可以最多可以存放10個英文字母和5個中文漢字
nvarchar(10) 這里可以最多可以存放10個英文字母和10個中文漢字
5. SQL數據類型nchar,char,varchar與nvarchar所佔位元組數是多少
nchar與char是相似的,nvarchar與varchar是相似的。
(1)char類型: 對英文(ASCII)字元佔用1個位元組,對一個漢字佔用2個位元組,CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義 char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間,不夠的字元用空格去填。因為是固定長度,所以速度效率高。
(2)Varchar類型:Varchar 的類型不以空格填滿,比如varchar(100),但它的值只是"qian",則它的值就是"qian"。
(3)而char 不一樣,比如char(100),它的值是"qian",而實際上它在資料庫中是"qian "(qian後共有96個空格,就是把它填滿為100個位元組)。
(4)由於char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉。
(5)VARCHAR存儲變長數據,但存儲效率沒有CHAR高。如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼「+1」呢?這一個位元組用於保存實際使用了多大的長度。
(6)nchar類型和Nvarchar類型是怎麼一回事呢?為了與其他多種字元的轉換,如中文,音標等,對每個英文(ASCII)字元都佔用2個位元組,對一個漢字也佔用兩個位元組,所有的字元都佔用2個位元組。
(7)關於長度與漢字:varchar(100)/char(100)能存50個漢字,nvarchar(100)/nchar(100)能存100個漢字。