mysql 数据库中varchar的存储单位是什么
一、先了解字节与字符
- 字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。
- 字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&',1、2、3、~!·#、¥、%、…、*、(、)—、+、'汉字'等等。
一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。
字节与字符
- ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
- UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
- Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
- 符号:英文标点为一个字节,中文标点为两个字节。例如:英文句号 . 占1个字节的大小,中文句号 。占2个字节的大小。
- UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)。
- UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。
单位换算
- 计算机存储信息的最小单位,称之为位(bit),音译为比特,二进制的一个“0”或一个“1”叫一位。
- 计算机存储容量基本单位是字节(Byte),音译为拜特,8个二进制位组成1个字节。一般而言:一个标准英文字母占一个字节位置,一个标准汉字占二个字节位置。
- 计算机存储容量大小以字节数来度量,1024进位制:
1024B=1K(千)B
1024KB=1M(兆)B
1024MB=1G(吉)B
1024GB=1T(太)B
以下还有PB、EB、ZB、YB 、NB、DB,一般人不常使用了。
二、mysql数据库中varchar的长度与字节、字符的关系
准备sql脚本:
CREATE TABLE `test` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`content` varchar(5) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into test (id, content) values(default, 'abcde');
insert into test (id, content) values(default, '12345');
insert into test (id, content) values(default, '!@#$%');
insert into test (id, content) values(default, '你好就是我');select * from test;#查看mysql版本号
select version();
分析:四条语句(英文字母/数字/字符/中文)都能正确插入(当前mysql版本号8),查询结果如下:
mysql版本号:
三、结论
mysql里的varchar是字符单位,无论内容是英文、数字、字符、中文,都能插入。
四、拓展
varchar存储规则:
- mysql4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 。
- mysql5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个。
varchar与char区别:
- CHAR:固定长度的类型,若输入数据的字符小于指定长度,则系统自动在其后添加空格来填满设定好的空间。
- VARCHAR:可变长度的类型。数据类型的存储长度为实际数值长度,字符的长度小于指定长度,不会用空格填充。
timestamp与datetime存储的时间范围:
timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。
datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。
参考文章:https://www.runoob.com/w3cnote/byte-character.html
mysql 数据库中varchar的存储单位是什么相关推荐
- mysql数据库应用模式与特点_MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述...
MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...
- mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争
在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...
- mysql 存储年月_php – 在mysql数据库中存储月份和年份
我有以下日期: $params['ExpirationMonth']; $params['ExpirationYear']; 关于如何在mysql数据库中只保存月份和年份,我需要一些建议.经过一些研究 ...
- mysql数据库中的存储引擎
mysql数据库中的存储引擎 文章目录 mysql数据库中的存储引擎 mysql中包含的存储引擎 1.InnoDB存储引擎 1.1简介 1.2InnoDB体系架构 1.2.1后台线程 1.2.2内存 ...
- mysql数据库中数据类型的长度
mysql数据库中数据类型的长度 在mysql中新建数据表的时候会有长度一说,其实用建表语句建数据表的时候也有涉及 例如: CREATE TABLE user( uid int(4), name va ...
- 在mysql数据库中,多表查询,事务,DCL,
多表查询: * 查询语法:select列名列表from表名列表where.... * 准备sql# 创建部门表CREATE TABLE dept(id INT PRIMARY KEY AUTO_INC ...
- numeric转换varchar_数据库中varchar类型数据转换为numeric类型
关于数据库中varchar/nvarchar类型数据的获取注意事项 当在页面后台获取数据库表中某字段的数据时,需注意该数据的类型.防止因实际数据的字符长度因达不到指定数据类型规定的字符长度而导致空格的 ...
- 用 Python selenium爬取股票新闻并存入mysql数据库中带翻页功能demo可下载
用 Python selenium爬取实时股票新闻并存入mysql数据库中 1.分析需求 2.创建表 3.分析需要爬取的网页内容 4.python里面selenium进行爬虫操作 1.添加包 2.连接 ...
- mysql数据库中到底能建多少张表?(单实例下单个库)
单实例mysql数据库中到底能建多少张表? 业务两个同学今天就这个问题过来探讨,他们的诉求是: 1. 一个用户的表要全部放到一个数据库中. 2. 预计1000个用户每个用户初步规划1000张表. 这1 ...
最新文章
- WIN2008系统的IIS7.0配置REWRITE伪静态环境
- 【设计模式】—— 职责链模式ChainOfResponsibility
- 7-20牛客网未知点集合
- LeetCode 7 Reverse Integer(反转数字)
- ld: -pie can only be used when targeting iOS 4.2 or later clang: error: linker command failed with e
- Centos系统查看版本
- C中的位域与大小端问题
- 手机科学计算机xy怎么用,如何使用科学计算器
- 在C#中使用钩子实现Alt+F4健窗口最小化功能
- 如何选择字体(font-family)
- 每日刷题:lightoj-1004 - Monkey Banana Problem
- 关于支持电脑登录选项设置
- iOS二维码代码实现
- 华科再次拿下华为“天才少年”最高薪!201万给到通信应届博士生
- Received disconnect from xxx.xxx.xxx port 22:2: Too many authentication failures for git
- 2-文件+结构体实现实用系统(拓展)
- kindle 电子书
- A Survey of Two Signature Aggregation Techniques学习笔记
- 基于阿里云的数据仓库架构设计
- 嵌入式系统开发教程 - 创新课程设计- “AI人脸识别+扩展系统”