首先,這個問題問得不是很規範。一般來說,char與nchar、nvarchar與varchar成對區分!他們都是表示字元,char和varchar在以前的版本會出現亂碼問題,故需要用nchar和nvarchar解決這個中文亂碼問題!但現在的版本char和varchar已經相容了中文,也就是說加不加n已經沒區別了,甚至有的資料庫已經淘汰了nchar和nvarchar。那麼,這個char跟varchar有什麼區別的?在資料庫中,使用它們是需要指定長度的!比如你給他們都是10個位元組長度char(10) varchar(10) ,
但在實際使用它是你執照用五個位元組,char型別不足的長度會用空格填補成10個位元組,但varchar型別只有使用時的那五個,不會用空格填補成十個長度。很明顯,在實際開發中varchar是用的最多的!比如賬號密碼登入驗證這個小程式,假如你的密碼型別為char(10),但你設定密碼時只用了6個長度123456,當你登入時只輸入123456(現實中沒有人會加多幾個空格,也不可能知道),此時你點選登入按鈕肯定現實密碼錯誤,因為你輸入的密碼沒有那四個空格,也就是跟資料庫的密碼不匹配。但用varchar(10) ,就能很好的解決問題了,你設定的密碼多長就是多長!就是這個原理!歡迎有不同見解的IT大佬下方留言評論。
首先,這個問題問得不是很規範。一般來說,char與nchar、nvarchar與varchar成對區分!他們都是表示字元,char和varchar在以前的版本會出現亂碼問題,故需要用nchar和nvarchar解決這個中文亂碼問題!但現在的版本char和varchar已經相容了中文,也就是說加不加n已經沒區別了,甚至有的資料庫已經淘汰了nchar和nvarchar。那麼,這個char跟varchar有什麼區別的?在資料庫中,使用它們是需要指定長度的!比如你給他們都是10個位元組長度char(10) varchar(10) ,
但在實際使用它是你執照用五個位元組,char型別不足的長度會用空格填補成10個位元組,但varchar型別只有使用時的那五個,不會用空格填補成十個長度。很明顯,在實際開發中varchar是用的最多的!比如賬號密碼登入驗證這個小程式,假如你的密碼型別為char(10),但你設定密碼時只用了6個長度123456,當你登入時只輸入123456(現實中沒有人會加多幾個空格,也不可能知道),此時你點選登入按鈕肯定現實密碼錯誤,因為你輸入的密碼沒有那四個空格,也就是跟資料庫的密碼不匹配。但用varchar(10) ,就能很好的解決問題了,你設定的密碼多長就是多長!就是這個原理!歡迎有不同見解的IT大佬下方留言評論。