魔扣论坛

魔扣源码论坛业务
查看: 397|回复: 1

在MySQL中,VARCHAR与CHAR的区别是什么?VARCHAR(50)中的50代表的含义是什么?

[复制链接]
  • TA的每日心情
    擦汗
    21 小时前
  • 签到天数: 2950 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745563
    贡献
    157865
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-10-4 08:13:06 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    varchar
                    答案:CHAR是一种固定长度的类型,VARCHAR则是一种可变长度的类型。
    CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。
    VARCHAR列中的值为可变长字符串。长度可以指定为0到65535之间的值。VARCHAR的最大有效长度由最大行大小和使用的字符集确定。在mysql
    4.1之前的版本,VARCHAR(50)的“50”指的是50字节(bytes)。如果存放UTF8汉字时,那么最多只能存放16个(每个汉字3字节)。从MySQL
    4.1版本开始,VARCHAR(50)的“50”指的是50字符(character),无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个。
    CHAR和VARCHAR类型声明的长度表示保存的最大字符数。例如,CHAR(30)可以占用30个字符。对于MyISAM表,推荐CHAR类型;对于InnoDB表,推荐VARCHAR类型。另外,在进行检索的时候,若列值的尾部含有空格,则CHAR列会删除其尾部的空格,而VARCHAR则会保留空格。如下所示:

    mysql> create table vc(v varchar(4), c char(4));
    Query OK, 0 rows affected (0.02 sec)
    mysql> desc vc;
    +-------+------------+------+-----+---------+-------+
    | field | Type       | Null | Key | Default | Extra |
    +-------+------------+------+-----+---------+-------+
    | v     | varchar(4) | YES  |     | NULL    |       |
    | c     | char(4)    | YES  |     | NULL    |       |
    +-------+------------+------+-----+---------+-------+
    mysql> insert into vc values('ab  ','ab  ');
    Query OK, 1 row affected (0.03 sec)
    mysql> select * from vc;
    +------+------+
    | v    | c    |
    +------+------+
    | ab   | ab   |
    +------+------+
    1 row in set (0.00 sec)
    mysql> select length(v),length(c) from vc;
    +-----------+-----------+
    | length(v) | length(c) |
    +-----------+-----------+
    |         4 |         2 |
    +-----------+-----------+
    1 row in set (0.01 sec)
    可以看到,c列的length只有2,下面给字段加上“+”:

    mysql> select concat(v,'+'),concat(c,'+') from vc;
    +---------------+---------------+
    | concat(v,'+') | concat(c,'+') |
    +---------------+---------------+
    | ab  +         | ab+           |
    +---------------+---------------+
    1 row in set (0.00 sec)
    mysql> select * from vc where v='ab';
    +------+------+
    | v    | c    |
    +------+------+
    | ab   | ab   |
    +------+------+
    1 row in set (0.00 sec)
    mysql> select * from vc where c='ab';
    +------+------+
    | v    | c    |
    +------+------+
    | ab   | ab   |
    +------+------+
    1 row in set (0.00 sec)
    mysql> select * from vc where c='ab  ';
    +------+------+
    | v    | c    |
    +------+------+
    | ab   | ab   |
    +------+------+
    1 row in set (0.00 sec)
    mysql> select * from vc where v='ab  ';
    +------+------+
    | v    | c    |
    +------+------+
    | ab   | ab   |
    +------+------+
    1 row in set (0.00 sec)
                                        
                        
       
       
            相关阅读
    解决Pycharm无法显示动态图片的问题
    最近在学习的时候遇到了一个问题始终没有解决,这个博客写的也不是完全解决了这个问题。指示换了一种可行的思路而已。
    在运行一些
    编译器的选择(x86_amd64, amd64等的区别)
    https://blog.csdn.net/WL2002200/article/details/52984241/结论32/64 位系统编译在32位系统上运行 => x8632 系统上编译64位系
    Python3中列表del(),remove(),pop()三个函数
    del():删除指定值
    del  a[0]
    remove():移除指定值
    a.remove("str")
    pop()获取并删除指定位置元素
    A = ['a','b','c']
    # pop
    “中国YouTube”发展史
    YouTube从最初的籍籍无名到现在国外的主流视频渠道,你知道它的前世今生吗?你了解它是如何发展到现在的头部地位吗?而在中国,有与YouTu
    Excel2010中字体简繁转换的操作方法
    Excel2010的简繁转换操作和EXCEL2007差不多,但貌似excel2010要比2007稳定多了,几乎未见2010丢失简繁转换功能的。今天,seo实验室小

    该用户从未签到

    1

    主题

    233

    回帖

    467

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    233
    贡献
    233
    威望
    0
    发表于 2022-6-26 14:16:32 | 显示全部楼层
    OMG!介是啥东东!!!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表