文章目录 MySQL_字符集及数据类型 1.字符集 2.校对集 3.MySQL的数据类型--值的类型 (1)整型 (2)unsigned(无符号) (3)显示宽度(zerofill) (4)浮点型 (5 )定点数 4.字符串类型 5.枚举(enum) 6.集合(set) 7.时间类型 1.datetime 2.time 3.timestamp 4.year 8.布尔型 9.列的属性 10.SQL注释 MySQL _字符集及数据类型 1.字符集 字符集在什么时候可以发挥作用? 1.保存数据的时候需要使用字符集 2.数据传输的时候也需要使用字符集 在存续的时候使用字符集 在MySQL的服务器上,在数据库中,在表的使用上,在字段的设置上. , b double(10,2), c decimal(10,2) ); #五舍六如 4.字符串类型 类型 描述 char 定长(255) varchar 可变长度(65535) tinytext
https://blog.csdn.net/robinson_0612/article/details/82824320 在MySQL关系型数据库中,MySQL支持的数据类型非常丰富。 它主要分为3大类,即:数值型,日期时间性,字符型。而实际上这三类数据类型可以进一步的细分扩展,可以根据业务需要选择最适合的一种。本文主要介绍字符类型,并演示其用法。 一、字符型 MySQL支持的字符类型可以进一步细分,即可以分为定(变)长字符型,大值字符型,枚举集合类型等。如下图所示: ? 二、字符型空间需求 ? ----------+ | Leshami | | http://blog.csdn.net/leshami | +------------------------------+ -- 创建表,包含2种数据类型的列 -- 通过字符串函数可知,第二列定长类型ab后的空格被截断 mysql> SELECT CONCAT('(', v, ')'), -> CONCAT('(', c, ')') FROM vc
注意:MySQL的字符集设置不进可以设置整一张表,也可以细到具体的每个字段上,用法是在建表或者修改字段时候加上charset [字符集名称] 二、字符集排序规则 2.1、排序规则定义 排序规则(Collation ,其语法分别是char(N)和varchar(N),注意其中N在MySQL4.1版本后都表示字符的长度,而非字节长度,在MySQL4.1之前版本才表示字节的长度 3.1、CHAR类型 对于CHAR(N) 这些才有字符集的概念 BINARY(N)和VARBINARY(N)中的N表示的字节的长度,从前面我们知道CHAR(N)和VARCHAR(N)中的N自从MySQL4.1之后,就表示字符的长度 CHAR和VARCHAR ,TEXT类型和blob类型一样,可以细分为: tinytext(2^8) text(2^16) mediumtext(2^24) longtext(2^32) 5.2、blob类型 BLOB(Binary 根据存储长度的不同,blob类型可以细分为: tinyblob(2^8) blob(2^16) mediumblob(2^24) longblob(2^32) 5.3、排序问题 blob和text排序问题
文本字符串类型 在实际的项目中,经常遇到一种数据,就是字符串数据。 MySQL中,文本字符串总体上分为CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET等类型。 [在这里插入图片描述] 1. ,则会在右侧填充空格以达到指定的长度 SELECT CONCAT(c2,'***') FROM test_char1; [在这里插入图片描述] 测试:当MySQL检索CHAR类型的数据时,CHAR类型的字段会去除尾部的空格 MySQL4.0版本以下,varchar(20):指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) ;MySQL5.0版本以上,varchar(20):指的是20字符。 TEXT类型 在MySQL中,TEXT用来保存文本类型的字符串,总共包含4种类型,分别为TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 类型。
10个字符的空间填充机制:对于实际长度不足定义长度的字符,char 类型会在右侧用空格符填充空格处理:检索时,MySQL会自动去除尾部填充的空格特点:char 取值范围 0-255char 类型在比较时会忽略尾部空格对于长度基本相同的字符串 :utf8mb4已成为现代应用的标准大文本考虑:超过VARCHAR限制时使用TEXT类型索引优化:对长VARCHAR列考虑使用前缀索引text概述: TEXT 是 MySQL 中用于存储大文本数据的可变长度字符串类型 超大容量:远超 VARCHAR 的存储能力 2. 存储效率:只占用实际需要的空间 3. 灵活性:适合存储不可预知长度的文本 4. 专用优化:MySQL对TEXT类型有专门的存储处理缺点 1. 以字符串形式存储,确保精确但占用更多空间未指定精度时,FLOAT默认约7位,DOUBLE默认约15位对于货币金额,推荐使用DECIMAL(19,4)MySQL 日期时间类型作用说明类型作用描述格式范围存储大小 2位或4位年份(4位推荐)TIMESTAMP列在记录更新时会自动更新(需配置)时间函数(NOW(), CURDATE()等)适用于这些类型MySQL 常见字符集作用说明字符集作用描述支持字符范围存储需求兼容性
MySQL数据库提供了多种数据类型,其中包括数字类型、时间和日期类型、字符串类型。 下面以保存A字符为例 注意:MySQL中的直接常量是指在MySQL中直接编写的字面常量,常用在insert语句中编写插入的数据,包括:十进制数、二进制数、十六进制数、字符串。 数据类型 存储范围 TINYTEXT 0~ 2^8-1字节 TEXT 0~2^16-1字节 MEDIUMTEXT 0~2^24-1字节 LONGTEXT 0~2^32-1字节 TEXT类型所能保存的最大字符数量取决于字符串实际占用的字节数 ENUM类型 ENUM类型又称为枚举类型,定义ENUM类型方式如下所示: ENUM(‘值1’,‘值2’,‘值3’,…,‘值n’) 在MySQL中,枚举列表最多可以有65535个值,每个值都有一个顺序编号 BLOB查询时区分大小写 JSON数据类型 MySQL从5.7.8版本开始提供了JSON数据类型。JSON是一种轻量级的数据交换格式,有JavaScript语言发展而来,其本质是一个字符串。
MySQL可以将一个字符串列更改为不同于CREATE TABLE或ALTER TABLE语句中所给出的类型。 MySQL 5.1字符串数据类型包括部分在MySQL 4.1之前的版本中没有的特性: · 许多字符串数据类型的列定义可以包括指定字符集的CHARACTER SET属性,也可能包括校对规则 它分配ucs2字符集。 MySQL允许创建类型CHAR(0)的列。这主要用于必须有一个列但实际上不使用值的旧版本的应用程序相兼容。 则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。 · MEDIUMBLOB 最大长度为16,777,215(224–1)字节的BLOB列。 · ENUM('value1','value2',...) 枚举类型。只能有一个值的字符串,从值列'value1','value2',...,NULL中或特殊 ''错误值中选出。
: 1)在对数据进行比较时,字符类型处理与当前所使用的排序规则是相关的, 而数字和二进制是按照二进制大小来进行的,同样的数据,字符类型比数字处理慢 2)在数据库中,数据处理 是以页为单位的,每页的大小是恒定的 2)面试题:varchar(5)和varchar(200)来存储’mysql’字符串性能相同吗? 3.varchar的适用场景 1)字符串列的最大长度比平均长度大很多的情况 2)字符串列很少被更新 3)使用了多字节字符集存储字符串,例如utf-8 3.char类型的存储特点 1)char类型是定长的 2)字符串存储在char类型的列中会删除末尾的空格,而字符串存在varchar类型中时末尾的空格不会被删除 3)char类型的最大宽度为255 4.char类型的使用场景 1)char适合存储长度近似的值 ,例如MD5值,身份证,手机号等 2)char类型适合存储短字符串,例如性别,因为varchar还要多出一个字节来存储字符串长度 3)char类型适合存储经常更新的字符串列
From: mysql分别用数字INT和中文varchar做索引查询效率上差多少 性能相当 mysql中区别性能的是采用哪种索引方式,而不是索引的数据类型。 (2)hash 索引无法被用来避免数据的排序操作。 在数据运算、对比方面,整数得益于原生支持,因此会比字符串稍快一丁点。 若采用索引,所谓整数、字符串的性能差距更是微乎其微。 在实际开发中,许多开发者经常使用char(1)、char(4)这样的字符串表示类型枚举,这种做法在我看来属于最佳方案,因为这种做法在存储空间、运算性能、可读性、可维护性、可扩展性方面,远胜于int、enum 但是如果你在创建索引的时候定义其类型为 Hash,MySql 并不会报错,而且你通过 SHOW CREATE TABLE 查看该索引也是 Hash,只不过该索引实际上还是 B-Tree。
222条记录: 注意:MySQL的字符集设置不进可以设置整一张表,也可以细到具体的每个字段上,用法是在建表或者修改字段时候加上charset [字符集名称] 二、字符集排序规则 2.1、排序规则定义 ,其语法分别是char(N)和varchar(N),注意其中N在MySQL4.1版本后都表示字符的长度,而非字节长度,在MySQL4.1之前版本才表示字节的长度 3.1、CHAR类型 对于CHAR(N) 这些才有字符集的概念 BINARY(N)和VARBINARY(N)中的N表示的字节的长度,从前面我们知道CHAR(N)和VARCHAR(N)中的N自从MySQL4.1之后,就表示字符的长度 CHAR和VARCHAR varchar类型的列 5.1、text类型 TEXT 是用来存储字符大数据类型的,TEXT类型和blob类型一样,可以细分为: tinytext(2^8) text(2^16) mediumtext( 2^24) longtext(2^32) 5.2、blob类型 BLOB(Binary Large Object)是用来存储二进制大数据类型的。
mysql对数值类型字符串进行排序 排序 有时会遇到这种需求,对数值型的字符串进行排序 在默认情况下使用order by 字段名称 desc/asc 进行排序的时候,mysql进行的排序规则是按照ASCII 码进行排序的,并不会自动的识别出这些数据是数值,就会出现比如要排序的字段值是1,2,3,11,12,排序完的结果会变成1,11,12,2,3, 很显然,这不是我们想要的,通过查阅资料,发现了一下三种方式可以使用 select * from 表名 ORDER BY `数值型字符串字段名`*1; select * from 表名 ORDER BY `数值型字符串字段名`+0; select * from 表名 ORDER BY CAST(数值型字符串字段名 AS DECIMAL);
mysql中有哪些字符串类型 说明 1、char和varchar都用来保存MySQL中的短字符串。varchar列中的值是可变长字符串。 2、binary和varbinary存储二进制字符串。 当binary值被保存时,MySQL通过在值的最后填充0x00(零字节)来实现指定的字段定义长度。 )); --向表中插入数据('a ','a ') mysql> insert into tbc values('a ','a '); --查看字段值长度 mysql> select length (bc),length(vbc) from tbc; 以上就是mysql中字符串类型的介绍,希望对大家有所帮助。 更多mysql学习指路:MySQL 推荐操作系统:windows7系统、mysql5.8、DELL G3电脑 收藏 | 0点赞 | 0打赏
二进制字符串类型 MySQL中的二进制字符串类型主要存储一些二进制数据,比如可以存储图片、音频和视频等二进制数据。 MySQL中支持的二进制字符串类型主要包括BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB类型。 1. BINARY与VARBINARY类型 BINARY和VARBINARY类似于CHAR和VARCHAR,只是它们存储的是二进制字符串。 MySQL中的BLOB类型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB 4种类型,它们可容纳值的最大长度不同。可以存储一个二进制的大对象,比如图片、音频和视频等。 需要注意的是,在实际工作中,往往不会在MySQL数据库中使用BLOB类型存储大对象数据,通常会将图片、音频和视频文件存储到服务器的磁盘上,并将图片、音频和视频的访问路径存储到MySQL中。
VARCHAR和CHAR类型VARCHAR类型用于存储可变长字符串。它比定长类型更节省空间。 有一种情况例外,如果MySQL表使用ROW_FORMAT=FIXED创建的话,每一行都会使用定长存储,这会很浪费空间。 VARCHAR需要使用1或2个额外字节记录字符串长度,如果列的最大长度小于或者等于255字节,则只使用1个字节表示,否则使用2个字节表示。例如一个VARCHAR(10)需要使用11个字节的存储空间。 CHAR类型是定长的,当存储CHAR值,MySQL会删除所有的末尾空格。CHAR值会根据需要采用空格填充的方式方便比较。它适合存储很短的字符串。 对于很短的列CHAR比VARCHAR更有优势,CHAR(1)采用单字节存储字符集,只需要一个字节。VARCHAR(1)需要2个字节,因为还有一个记录长度的额外字节。春节不间断,持续充电!
这个专题的内容为mysqlbinlog命令的详解 mysqlbinlog是MySQL中用来处理binlog的工具 为了更好的讲解后面的内容,这节先说下MySQL常用的一些事件类型 1. 常见事件列表 一些事件是没有类型代码的,因为他是其他事件的基类,如Log_event ,这些并不会写在日志文件中 一些事件可能被分配多个类型代码,如Load_log_event 代表LOAD_EVENT 和NEW_LOAD_EVENT 两种事件 所有的类型请参见官方文档 https://dev.mysql.com/doc/internals/en/event-classes-and-types.html 2、在statement格式中,具体执行的SQL语句会保存在该事件中。 3、对于ROW格式的binlog,所有DDL操作以文本的形式记录在该事件中。 INTVAR_EVENT 该事件在语句使用了AUTO_INCREMENT 列或者LAST_INSERT_ID()函数时写入 它只会在QUERY_EVENT事件前写入,并且在基于行的日志记录中不会出现 该事件有2个子类型
在 MySQL 中,选择合适的[数据类型]对于数据库的存储效率和查询性能至关重要。 MySQL 提供了**字符串(String)、数字(Numeric)和日期(Date & Time)**三大类数据类型,每种类型又有不同的子类型,以适应不同的业务需求。1. 字符串(String)数据类型[字符串类型]用于存储文本数据,主要分为定长(CHAR)和变长(VARCHAR) ,以及大文本(TEXT 和 BLOB) 。 VARCHAR(10) 只存储实际字符,最多 10 个字节,并额外占用 1-2 字节用于存储长度信息。一般来说:短小、长度固定的文本(如国家代码、MD5 哈希)用 CHAR。 2. 数字(Numeric)数据类型数字类型用于存储整数或小数,主要分为整数类型和浮点/定点类型。
此次实验的环境如下 MySQL 5.7.25 Redhat 6.10 binlog模式采用row模式 这个专题的内容为mysqlbinlog命令的详解 mysqlbinlog是MySQL中用来处理binlog 的工具 为了更好的讲解后面的内容,这节先说下MySQL常用的一些事件类型 1. 所有的类型请参见官方文档 Event Classes and Types 3. 2、在statement格式中,具体执行的SQL语句会保存在该事件中。 3、对于ROW格式的binlog,所有DDL操作以文本的形式记录在该事件中。 INTVAR_EVENT 该事件在语句使用了AUTO_INCREMENT 列或者LAST_INSERT_ID()函数时写入 它只会在QUERY_EVENT事件前写入,并且在基于行的日志记录中不会出现 该事件有2个子类型
BLOB和TEXT类型 BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符串方式存储。 他们分别属于两组不同的数据类型家族:字符类型是TINYTEXT,SMALLTEXT,TEXT,MEDIUMTEXT,LONGTEXT。 BLOB类型存储的是二进制数据,没有排序规则或字符集,而TEXT类型有字符集和排序规则。 最好的解决办法就是尽量避免使用BLOB和TEXT类型。如果实在无法避免,就在所有用到BLOB字段的地方都使用SUBSTRING(column,length)将列值转换为字符串。 但是要确保截取的字符串足够短,不会使临时表的大小超过max_heap_table_size或者tmp_table_size,超过以后MySQL会将内存临时表转换成磁盘临时表。
数据类型 数值类型 日期和时间类型 字符串类型 一、数值类型 整数 tinyint[M] [unsigned] [zerofill] // [ ] 表示可选,这里的M表示显示宽度,并不是取值范围 ); /* -999.99 ~999.99*/ 二、字符串类型 char(M) varchar(M) //这里的M表示字符数 CHAR列的长度固定为创建表时声明的长度。 这说明它们没有字符集,并且排序和比较基于列值字节的数值。 字符串存储需求 VARCHAR、BLOB和TEXT类是变长类型。 每个类型的存储需求取决于列值的实际长度(用前面的表中的L表示),而不是该类型的最大可能的大小。例如,VARCHAR(10)列可以容纳最大长度为10的字符串。 对于CHAR、VARCHAR和TEXT类型,前面的表中的值L和M应解释为字符数目,并且列定义中的这些类型的长度表示字符数目。例如,要想保存一个TINYTEXT值需要L字符+ 1个字节。
主要内容 介绍mysql中常用的数据类型 mysql类型和java类型对应关系 数据类型选择的一些建议 MySQL的数据类型 主要包括以下五大类 整数类型:bit、bool、tinyint、smallint 、mediumint、int、bigint 浮点数类型:float、double、decimal 字符串类型:char、varchar、tinyblob、blob、mediumblob、longblob 示例2:无符号类型 mysql> create table demo2( c1 tinyint unsigned ); Query OK, 0 rows affected (0.01 日期类型 ? 字符串类型 ? char类型占用固定长度,如果存放的数据为固定长度的建议使用char类型,如:手机号码、身份证等固定长度的信息。 简单就好:简单的数据类型的操作通常需要更少的CPU周期,例如:整型比字符操作代价要小得多,因为字符集和校对规则(排序规则)使字符比整型比较更加复杂。