作者 主題: SQL 資料型態疑問  (閱讀 7092 次)

0 會員 與 1 訪客 正在閱讀本文。

apachectl

  • 憂鬱的高中生
  • ***
  • 文章數: 174
    • 檢視個人資料
SQL 資料型態疑問
« 於: 2009-12-17 09:04 »
在SQL Server裡,如果資料型態為 char(6),表示可以有6bytes的字串長度,比如我輸入123456 是可以的,或者abcdef也是可行的,不曉得這觀念對不對?
那如果我輸入的是一般的中文字,char(6) 最多可以寫幾個中文字呢?也就是一個中文字是多少bytes呢?
問的問題有點基本,不好意思,剛學而已。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: SQL 資料型態疑問
« 回覆 #1 於: 2009-12-17 12:35 »
在SQL Server裡,如果資料型態為 char(6),表示可以有6bytes的字串長度,比如我輸入123456 是可以的,或者abcdef也是可行的,不曉得這觀念對不對?
那如果我輸入的是一般的中文字,char(6) 最多可以寫幾個中文字呢?也就是一個中文字是多少bytes呢?
問的問題有點基本,不好意思,剛學而已。

中文字要看是用什麼編碼, 大五碼是2bytes, 萬國碼則是2~3bytes
不過 M$ 的 sql server 很少用(很久沒用), 實際情形就不清楚了
其實這種問題, 樓主自己稍微做一下測試應該就能得到解答吧

洋蔥叔叔

  • 榮譽博士
  • 鑽研的研究生
  • *****
  • 文章數: 830
    • 檢視個人資料
    • 洋蔥叔叔的隨意漫談電腦、網路、.NET、軟體本地化、雜七雜八
回覆: SQL 資料型態疑問
« 回覆 #2 於: 2009-12-17 13:17 »
對跟字串長度有關係
如果用中文的 big5 編碼的話,char(6) 只能存三個中文字,因為 big5 一個中文字 2 個 byte
所以一般而言,會用 nchar,nchar 一個字用 2 個 byte 存