Mysql字符类型字段介绍。
- char 与 varchar类型
- CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
- CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。
- CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。
- VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由整张表所有varhcar列大小和使用的字符集确定。整体最大长度是65,532字节)。
- 同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。
VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。
- binary与 varbinary类型
- BINARY和VARBINARY类类似于CHAR和VARCHAR,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值。
- BINARY和VARBINARY允许的最大长度一样,如同CHAR和VARCHAR,不同的是BINARY和VARBINARY的长度是字节长度而不是字符长度。
-
当保存BINARY值时,在它们右边填充值以达到指定长度。填充值是0x00(零字节)。插入值时在右侧添加0x00 on,并且选择时不删除尾部的字节。比较时所有字节很重要,包括ORDER BY和DISTINCT操作。比较时0x00字节和空格是不同的,0x00<空格。例如:对于一个BINARY(3)列,当插入时 'a' 变为 'a \0'。'a\0'插入时变为'a\0\0'。当选择时两个插入的值均不更改。
- Enum类型
-
ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。在某些情况下,ENUM值也可以为空字符串('')或NULL:
- 如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),将插入空字符串以作为特殊错误值。该字符串与“普通”空字符串不同,该字符串有数值0。(这与sql_mode有关,在严格模式下,插入允许之外的值错得到一个错误)
- 如果将ENUM列声明为允许NULL,NULL值则为该列的一个有效值,并且 默认值为NULL。如果ENUM列被声明为NOT NULL,其默认值为允许的值列的第1个元素。
-
每个枚举值有一个索引
- 来自列规定的允许的值列中的值从1开始编号。
-
空字符串错误值的索引值是0。这说明你可以使用下面的SELECT语句来找出分配了非法ENUM值的行:
mysql> SELECT * FROM tbl_name WHERE enum_col=0; - 枚举最多可以有65,535个元素。
- Set类型
-
SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。
例如,指定为SET('one', 'two') NOT NULL的列可以有下面的任何值:
''
'one'
'two'
'one,two' - SET最多可以有64个不同的成员。
- 当创建表时,SET成员值的尾部空格将自动被删除。
- 当检索时,保存在SET列的值使用列定义中所使用的大小写来显示。请注意可以为SET列分配字符集和 校对规则。对于二进制或大小写敏感的校对规则,当为列分配值时应考虑大小写。
-
set类型定义的值的索引值计算:
在set中声明的位置为n,mysql生成的索引值为: 2^(n-1)
相关推荐
理解 —— MySQL支持的数据类型; 表的字段类型 MySQL支持的类型 MySQL支持多种类型,大致可以分为三类: 数值类型 日期和时间类型 字符串(字符)类型。 数值类型 表的字段类型 MySQL支持所有标准SQL数值数据类型。 ...
### MySQL字符型数据类型详解 在数据库设计与应用过程中,选择合适的数据类型至关重要。本文将深入探讨MySQL中几种常见的字符型数据类型,包括`CHAR`、`VARCHAR`、`BINARY`、`VARBINARY`、`ENUM`以及`SET`类型,并...
$Fileds 字段名,默认为所有(选填) $Condition 查询条件(选填) $Rows 待查询记录条数,为0表示不限制(选填) -- 返回值:布尔 -- 实 例:$DB->Get('mydb','user,password','order by id desc',10) ************...
本训练主要关注在使用Hibernate时如何处理与各种数据库字段类型的映射,这对于理解和优化数据库交互至关重要。 首先,我们要理解Hibernate的核心概念——对象关系映射(ORM)。ORM允许我们将数据库表结构映射到Java...
在MyBatis中,操作JSON类型数据涉及到对MySQL数据库中JSON字段类型的映射和转换,以便于在Java代码中能够方便地处理这些数据。这里,我们主要关注如何自定义TypeHandler来实现这一功能。 首先,MySQL引入了JSON类型...
将ubk_vhost_list表中的字段userid中的字符...表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 今天运行了一个查询 UPDATE ubk_vhost_list SET userid = replace (use
在关系型数据库中,如Oracle、MySQL、SQL Server等,BLOB字段提供了一种高效的方式,用于处理和存储大数据量的非结构化信息。 ### 判断BLOB字段是否为空的必要性 在实际应用中,判断BLOB字段是否为空对于数据完整...
接下来,我们深入到核心主题——MySQL数据类型。MySQL是一个流行的开源关系型数据库管理系统,其支持多种数据类型,包括: 1. **数值类型**:如`INT`(整数)、`FLOAT`(浮点数)、`DOUBLE`(双精度浮点数)、`...
MySQL支持多种数据类型,包括整数类型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT)、浮点数类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)以及...
在给出的MySQL数据库脚本中,可以看到一个名为`cs_dustbin`的垃圾桶表,其中有一个`ext`字段,其类型为VARCHAR(1000),默认值为空JSON对象。这个字段可以用来存储任何非关键的、可变的、或者是未来可能需要的额外...
为了防止数字参数被自动转换为二进制格式,可以使用`CAST()`函数将其转换为字符类型,例如 `SELECT CONCAT(CAST(int_col AS CHAR), char_col)`。 在实际应用中,我们经常使用`CONCAT()`来合并字段或常量,例如: `...
它的数据类型丰富,包括整型、浮点型、字符型和日期型等,能够满足各种数据存储需求。MySQL的安全权限系统确保了数据的保护,同时提供了ODBC接口,方便与其他应用程序集成。在处理大规模数据时,MySQL也能表现出色,...
这个函数接受两个参数——要被比较的字符串。如果这个两个字符串相同,它就返回0;如果第一个大于第二个,它就返回1;如果第一个小于第二个,它就返回-1 REGEXP UNKNOWN未知类型(null) if(e1,e2,e3) e1为true则返回...
=`或`IS NOT NULL`判断、`LIKE`模糊查询时百分号在前、对索引列使用函数或不正确地处理字符串类型字段。 7. **关联查询优化**: - 在JOIN操作中,选择合适的驱动表(通常是最小表或有索引的表)可以显著提高性能。...
总之,当遇到Java 8插入MySQL时间数据时出现8小时偏差的问题,检查并调整JDBC连接字符串中的`serverTimezone`参数至关重要。正确设置时区参数,如`Asia/Shanghai`,能确保时间和日期的准确无误地存储和检索。这是一...
【MySQL数据库基础】 MySQL是一种广泛使用的开源关系型数据库管理系统,其设计目标是处理大量...这些是MySQL数据库管理的基础知识,包括数据模型、数据库操作和数据类型的使用,对于理解和操作MySQL数据库至关重要。
MySQL是世界上最流行的关系型数据库管理系统之一,用于存储和管理各种类型的数据。《MySQL必知必会》这本书提供了全面的MySQL基础知识,涵盖了从数据库基础到高级功能的诸多方面。以下是根据书中的章节内容概述的...
MYSQL 数据库的字段类型标准是指在选择字段类型时所遵守的规则,包括: * 规则:用尽量少的存储空间来存储一个字段的数据。 * 时间戳字段尽量用 int 型。 七、数据库设计文档标准 MYSQL 数据库设计文档标准是指在...