所在的位置: mysql >> mysql市场 >> mysql中varcharn中的n到

mysql中varcharn中的n到

我们一般开发的系统基本都离不开数据库。mysql就是我们经常会使用的一个关系型数据库。关系型数据库存储的数据都是按照定义好的列的规则存放的行列形式的数据。

varchar就是mysql数据库中定义列为字符串的一种数据类型。使用varchar定义列时需要指定这个列存放数据的长度上限,就可以通过varchar(n)中的n来实现。

但是这个n,有的说是字节数,存放英文和汉字时会有不同的效果。而有的又说是字符数。那究竟是什么呢。

实际操作一下试试看吧。先创建一张表。

这张表中tname列设置的是varchar(7)。

我的数据库设置的模式是如果数据超出列设置的长度,则截短到符合列设置的长度并给出警告,而不是报错。

我们来执行下面的sql看看最终执行效果就可以看出来varchar(n)中的n到底是指的什么了。

四条插入语句,两条是插入英文字母的,两条是插入中文的。

看执行结果是插入了4条数据,但是产生了2条警告,警告的内容是tname列的数据被截断了。

再来看看数据。

可以看到,不论是英文字母,还是中文汉字超出7个字符的都只保留了7个字符。那看来这个varchar(n)中的n指的是字符数了。

那varchar(n)中的n指的是字节数这种说法是错的吗?其实也不是错误的。这种说法是对于早期版本(4.0版本及以下)而言的。到了5.0版本开始就是这个n指的就是字符数了。

好了,今天的内容就到这里了。有问题、意见建议的朋友欢迎评论或私信告诉我。




转载请注明:http://www.aierlanlan.com/rzdk/3473.html