mysql中的varchar(n)可以存储几个汉字

varchar存储字段大小

我从网上搜到的是和mysql的版本有关:
4.0版本以下:varchar(n),指的是n个字节,如果存放UTF8汉字时,只能存n/3个(每个汉字3字节)。
5.0版本以上:varchar(n),指的是n个字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放n个。
我的mysql版本是8.0版本的,应该是可以存储n个汉字,以下是我做的能否存储的测试,以varchar(10)为例

测试

  1. cmd命令下打开mysqlnet start mysql,登录mysqlmysql -uroot -p,输入密码。
  2. 选择数据库use database;,可以使用show databases;查看都有哪些数据库。
  3. 创建表格,其中设置varchar类型的变量create table var(name varchar(10));
  4. 表格中添加记录insert into var values(' ');添加不同长度的值就可以进行测试了,以下是我的结果,varchar(10)确实可以存储10个汉字
    字段大小测试

问题

我很长时间没有在命令提示符中使用mysql了,之前用的是navicat,以下是我在使用cmd遇到的问题

  1. 启动时mysql报错:发生系统错误5,拒绝访问。解决方法,找到cmd.exe文件,右键,以管理员身份运行
  2. 登录时报错:mysql不是内部或外部命令。这个是因为没有配置环境变量,解决方法:配置环境变量即可,将mysql的bin目录路径添加到系统变量path中。
  3. sql语句的问题:我在使用数据库时在数据库名前加了database,结果报错unknown database,还有诸如此类的很多问题,sql的语法要求很严格,一定要保证sql语句的正确.