《SQL查詢凡人入門》學習筆記之二

在SQL Server中,Char是最常見的數據類型之一。Char和Varchar的長度都在1-8000之間,兩者的
區別在於Char是定長字符數據,而Varchar是變長字符數據。所謂定長就是長度是固定的,當輸入
的數據長度沒有達到指定的長度時自動以英文空格在其後面填充,使長度達到固定的長度;而變長
字符數據則不會以空格填充。
    在SQL Server中新建一個數據庫,並在新建的數據庫中創建一個表,併爲該表建立C1、C2兩個
字段,C1的數據類型爲Char,C2的數據類型爲Varchar,C1、C2的長度和允許空屬性都取默認值。在
該表中隨便輸入一條數據,比如輸入aaaaa、bbbbb。關閉該表,然後再打開,在剛纔插入的數據
aaaaa的後面添加一個a,發現系統提示錯誤:“輸入的值與數據類型不一致,或者此值與列的長度
不一致。”在數據bbbbb後面插入字符則沒有問題。
    出現這樣的問題怎麼解決呢?由於我們輸入的值與數據類型是一致的,所以問題應該是在值與
列的長度不一致上面。SQL Server中Char類型默認的長度是10個字符,可是aaaaa加上一個a也才6
個字符,並沒能超過10個字符。經過仔細分析,Char是定長字符數據,當輸入的數據長度沒有達到
指定的長度時將自動以英文空格在其後面填充。aaaaa的後面其實隱藏了5個字符,所以當再插入字
符時,不管插什麼字符,都超過了列的允許長度,系統當然會報錯。解決的辦法就是在數據後面按
Del鍵把部分空格去掉,按一次Del鍵表示刪除一個空格,然後再輸入要插入的字符肯定就沒有問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章