国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

探究MySQL中varchar的定義長度

來源:懂視網 責編:小采 時間:2020-11-09 20:58:00
文檔

探究MySQL中varchar的定義長度

探究MySQL中varchar的定義長度:UTF8字符集下: SQL>create table test(id int auto_increment,name varchar(10),primary key(id)); SQL>insert into test values(null,'1234567890'); Query OK, 1 row affected (0.00 s
推薦度:
導讀探究MySQL中varchar的定義長度:UTF8字符集下: SQL>create table test(id int auto_increment,name varchar(10),primary key(id)); SQL>insert into test values(null,'1234567890'); Query OK, 1 row affected (0.00 s

UTF8字符集下:

SQL>create table test(id int auto_increment,name varchar(10),primary key(id));
SQL>insert into test values(null,'1234567890');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,'一二三四五六七八九十');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,'abcdefghig');
Query OK, 1 row affected (0.01 sec)
SQL>insert into test values(null,12345678901);
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>insert into test values(null,'一二三四五六七八九十1');
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>insert into test values(null,'一二三四五六七八九十一');
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>select id,name,length(name),char_length(name) from test;

+----+--------------------------------+--------------+-------------------+
 | id | name | length(name) | char_length(name) |
 +----+--------------------------------+--------------+-------------------+
 | 1 | 1234567890 | 10 | 10 |
 | 2 | 一二三四五六七八九十 | 30 | 10 |
 | 3 | abcdefghig | 10 | 10 |
 +----+--------------------------------+--------------+-------------------+
 3 rows in set (0.00 sec)

   GBK字符集下:

SQL>create table test(id int auto_increment,name varchar(10),primary key(id));
SQL>insert into test values(null,'1234567890');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,'一二三四五六七八九十');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,'abcdefghig');
Query OK, 1 row affected (0.01 sec)
SQL>insert into test values(null,12345678901);
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>insert into test values(null,'一二三四五六七八九十1');
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>insert into test values(null,'一二三四五六七八九十一');
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>select id,name,length(name),char_length(name) from test;

+----+----------------------+--------------+-------------------+
 | id | name | length(name) | char_length(name) |
 +----+----------------------+--------------+-------------------+
 | 1 | 1234567890 | 10 | 10 |
 | 2 | 一二三四五六七八九十 | 20 | 10 |
 | 3 | abcdefghig | 10 | 10 |
 +----+----------------------+--------------+-------------------+
 3 rows in set (0.00 sec)

   由此可見,varchar定義的長度的單位是字符,哪怕是1個多字節字符也是1個字符,如中文和英文字母都被當作1個字符來對待。

   那么varchar能夠定義的最大長度是多少呢?這個和你當前所使用的字符集有關。拋開字符,其最大長度為65535字節(這是最大行大小,由所有列共享),而放在不同的字符集下,能夠定義的最大長度就會有所不同,如UTF8下是21845。據說MySQL5中varchar的長度也為字符,而MySQL4中的則為字節,未經證實,感興趣的有環境可以自己測下。

   順便補充一下,char數據類型定義的長度也為字符,其最大長度為255。

SQL>create table test(id int auto_increment,name char(5),primary key(id));
Query OK, 0 rows affected (0.09 sec)
SQL>insert into test values(null,'123');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,'12345');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,'一二三');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,'一二三四五');
Query OK, 1 row affected (0.00 sec)
SQL>insert into test values(null,123456);
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>insert into test values(null,'一二三四五1');
ERROR 1406 (22001): Data too long for column 'name' at row 1
SQL>select id,name,length(name),char_length(name) from test;

+----+-----------------+--------------+-------------------+
 | id | name | length(name) | char_length(name) |
 +----+-----------------+--------------+-------------------+
 | 1 | 123 | 3 | 3 |
 | 2 | 12345 | 5 | 5 |
 | 3 | 一二三 | 9 | 3 |
 | 4 | 一二三四五 | 15 | 5 |
 +----+-----------------+--------------+-------------------+
 4 rows in set (0.00 sec)

您可能感興趣的文章:

  • 對比MySQL中int、char以及varchar的性能
  • MySQL動態修改varchar長度的方法
  • Mysql中varchar長度設置方法
  • Mysql數據庫中把varchar類型轉化為int類型的方法
  • MySQL數據庫中把int轉化varchar引發的慢查詢
  • MySQL中把varchar類型轉為date類型方法詳解
  • MySQL中VARCHAR與CHAR格式數據的區別
  • mysql varchar類型求和實例操作
  • 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    探究MySQL中varchar的定義長度

    探究MySQL中varchar的定義長度:UTF8字符集下: SQL>create table test(id int auto_increment,name varchar(10),primary key(id)); SQL>insert into test values(null,'1234567890'); Query OK, 1 row affected (0.00 s
    推薦度:
    標簽: 定義 長度 mysql
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 日韩高清dvd| 亚洲一区二区三区久久久久 | 成人黄色在线 | 久久er | va欧美国产在线视频 | 欧美人一级淫片a免费播放 欧美精品专区免费观看 | 欧美日韩1区 | 久久精品日日躁夜夜躁欧美 | 欧美亚洲国产精品 | 久久久国产99久久国产久 | 四虎精品成人a在线观看 | 99精品国产高清一区二区三区香蕉 | 中文字幕国产欧美 | 亚洲va在线va天堂va四虎 | a一区二区三区视频 | 免费在线一级毛片 | 午夜视频免费看 | 欧美日韩精品一区二区在线播放 | 极品国产高颜值露脸在线 | 欧美日韩性视频一区二区三区 | 欧美日韩亚洲区久久综合 | 国产乱来视频 | 欧美在线免费播放 | a级毛片在线免费观看 | 亚洲一区二区三区中文字幕 | 国产一区二区三区免费在线观看 | 可以免费观看的毛片 | 欧美日韩不卡视频一区二区三区 | 亚洲国产精品一区二区九九 | 欧美精品午夜久久久伊人 | 国产成人手机在线好好热 | 天码毛片一区二区三区入口 | 亚洲精品国产综合久久一线 | 精品一区二区三区视频日产 | 精品国产综合区久久久久99 | 亚洲第一视频网 | 亚洲综合视频 | 唯美清纯另类亚洲 | 国产在线欧美日韩精品一区二区 | 国产一区视频在线 | 亚洲免费在线视频 |