字符類型
1、長度
char: 定長
varchar:變長
字符的寬度值得是字符的個數(shù)


2、對空格的處理
char類型在存取的時候會按照指定長度存入,取出時會自動去掉空格。
#略施小計:SET sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
varchar類型 會存入實際的字符數(shù),包括空格,存入取出一致
當插入的字符數(shù)超過給定寬度時,多出的字符會被拋棄

會發(fā)現(xiàn) ’? ‘沒有存儲進去

char匹配時會自動忽略字符后面的空格,但字符前面或者中間的空格有效。

3)模糊查詢
select name from t13 where name like '海鷗‘;
必須嚴格保持一致,才可以查到,多一個空格少一個空格都不行。
末尾去空格只適合 =
4)存取問題
name char(5)
ab ? |abcd |abcde
name varchar(5)
ab|abcd|abcdefg ? 取值無法判斷到哪是一個詞
1bytes + ab| 1bytes + abcd| 1bytes + abcd ?;
先存 2 + ab| 4+ abcd| 4 + abcd ?;
mysql對單個字符限制 65536, 字符頭最大2個字節(jié)。
數(shù)據(jù)庫要存精簡數(shù)據(jù), 至于下載文件或者訪問文件 應(yīng)單獨用一臺計算機處理。數(shù)據(jù)庫只需提供連接或者文件路徑名稱即可。
varchar存取速度慢 , 一般大場景都用char.
建表 定長往前放 ,盡量不要混用定長和變長
標簽: