`
重庆-卖菜
  • 浏览: 9727 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Mysql字段类型——字符类型

阅读更多

Mysql字符类型字段介绍。

  • char 与 varchar类型
  1. CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
  2.  CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。例如,CHAR(30)可以占用30个字符。
  3. CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。
  4. VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由整张表所有varhcar列大小和使用的字符集确定。整体最大长度是65,532字节)。
  5. 同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。
    VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留
    ,符合标准SQL。
  • binary与 varbinary类型
  1.  BINARY和VARBINARY类类似于CHAR和VARCHAR,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值。
  2. BINARY和VARBINARY允许的最大长度一样,如同CHAR和VARCHAR,不同的是BINARY和VARBINARY的长度是字节长度而不是字符长度。
  3. 当保存BINARY值时,在它们右边填充值以达到指定长度。填充值是0x00(零字节)。插入值时在右侧添加0x00 on,并且选择时不删除尾部的字节。比较时所有字节很重要,包括ORDER BY和DISTINCT操作。比较时0x00字节和空格是不同的,0x00<空格。例如:对于一个BINARY(3)列,当插入时 'a' 变为 'a \0'。'a\0'插入时变为'a\0\0'。当选择时两个插入的值均不更改。

     

     

     

  • Enum类型
  1. ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。在某些情况下,ENUM值也可以为空字符串('')NULL

    1. 如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),将插入空字符串以作为特殊错误值。该字符串与“普通”空字符串不同,该字符串有数值0。(这与sql_mode有关,在严格模式下,插入允许之外的值错得到一个错误)
    2. 如果将ENUM列声明为允许NULL,NULL值则为该列的一个有效值,并且 默认值为NULL。如果ENUM列被声明为NOT NULL,其默认值为允许的值列的第1个元素。
  2. 每个枚举值有一个索引
    1. 来自列规定的允许的值列中的值从1开始编号。
    2. 空字符串错误值的索引值是0。这说明你可以使用下面的SELECT语句来找出分配了非法ENUM值的行:
                mysql> SELECT * FROM tbl_name WHERE enum_col=0;
    3. 枚举最多可以有65,535个元素。

  • Set类型
  1.  SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。

    例如,指定为SET('one', 'two') NOT NULL的列可以有下面的任何值:

    ''
    'one'
    'two'
    'one,two'
  2. SET最多可以有64个不同的成员。
  3. 当创建表时,SET成员值的尾部空格将自动被删除。
  4. 当检索时,保存在SET列的值使用列定义中所使用的大小写来显示。请注意可以为SET列分配字符集和 校对规则。对于二进制或大小写敏感的校对规则,当为列分配值时应考虑大小写。
  5. set类型定义的值的索引值计算:

    在set中声明的位置为n,mysql生成的索引值为: 2^(n-1)

分享到:
评论

相关推荐

    MySQL数据库:表的字段类型.pptx

    理解 —— MySQL支持的数据类型; 表的字段类型 MySQL支持的类型 MySQL支持多种类型,大致可以分为三类: 数值类型 日期和时间类型 字符串(字符)类型。 数值类型 表的字段类型 MySQL支持所有标准SQL数值数据类型。 ...

    MySQL常见数据类型:字符型——尚硅谷教学文章

    ### MySQL字符型数据类型详解 在数据库设计与应用过程中,选择合适的数据类型至关重要。本文将深入探讨MySQL中几种常见的字符型数据类型,包括`CHAR`、`VARCHAR`、`BINARY`、`VARBINARY`、`ENUM`以及`SET`类型,并...

    [php]mysql数据库操作——DB类

    $Fileds 字段名,默认为所有(选填) $Condition 查询条件(选填) $Rows 待查询记录条数,为0表示不限制(选填) -- 返回值:布尔 -- 实 例:$DB-&gt;Get('mydb','user,password','order by id desc',10) ************...

    hibernate使用中与各种数据库字段类型对应类型训练

    本训练主要关注在使用Hibernate时如何处理与各种数据库字段类型的映射,这对于理解和优化数据库交互至关重要。 首先,我们要理解Hibernate的核心概念——对象关系映射(ORM)。ORM允许我们将数据库表结构映射到Java...

    mybatis中操作json类型数据(csdn)————程序.pdf

    在MyBatis中,操作JSON类型数据涉及到对MySQL数据库中JSON字段类型的映射和转换,以便于在Java代码中能够方便地处理这些数据。这里,我们主要关注如何自定义TypeHandler来实现这一功能。 首先,MySQL引入了JSON类型...

    mysql查询字符串替换语句小结(数据库字符串替换)

    将ubk_vhost_list表中的字段userid中的字符...表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 今天运行了一个查询 UPDATE ubk_vhost_list SET userid = replace (use

    判断blob字段是否为空

    在关系型数据库中,如Oracle、MySQL、SQL Server等,BLOB字段提供了一种高效的方式,用于处理和存储大数据量的非结构化信息。 ### 判断BLOB字段是否为空的必要性 在实际应用中,判断BLOB字段是否为空对于数据完整...

    JDBC.rar_MYSQL_MYSQL  数据类型_jdbc_jdbc mysql

    接下来,我们深入到核心主题——MySQL数据类型。MySQL是一个流行的开源关系型数据库管理系统,其支持多种数据类型,包括: 1. **数值类型**:如`INT`(整数)、`FLOAT`(浮点数)、`DOUBLE`(双精度浮点数)、`...

    MySQL——数据库表.rar

    MySQL支持多种数据类型,包括整数类型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT)、浮点数类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)以及...

    如何不改表结构动态扩展字段?(csdn)————程序.pdf

    在给出的MySQL数据库脚本中,可以看到一个名为`cs_dustbin`的垃圾桶表,其中有一个`ext`字段,其类型为VARCHAR(1000),默认值为空JSON对象。这个字段可以用来存储任何非关键的、可变的、或者是未来可能需要的额外...

    浅谈mysql中concat函数,mysql在字段前/后增加字符串

    为了防止数字参数被自动转换为二进制格式,可以使用`CAST()`函数将其转换为字符类型,例如 `SELECT CONCAT(CAST(int_col AS CHAR), char_col)`。 在实际应用中,我们经常使用`CONCAT()`来合并字段或常量,例如: `...

    PHP+MySQL——开发Web数据库的实用工具

    它的数据类型丰富,包括整型、浮点型、字符型和日期型等,能够满足各种数据存储需求。MySQL的安全权限系统确保了数据的保护,同时提供了ODBC接口,方便与其他应用程序集成。在处理大规模数据时,MySQL也能表现出色,...

    mysql函数大全,mysql

    这个函数接受两个参数——要被比较的字符串。如果这个两个字符串相同,它就返回0;如果第一个大于第二个,它就返回1;如果第一个小于第二个,它就返回-1 REGEXP UNKNOWN未知类型(null) if(e1,e2,e3) e1为true则返回...

    mysql进阶学习一之知识点总结(csdn)————程序.pdf

    =`或`IS NOT NULL`判断、`LIKE`模糊查询时百分号在前、对索引列使用函数或不正确地处理字符串类型字段。 7. **关联查询优化**: - 在JOIN操作中,选择合适的驱动表(通常是最小表或有索引的表)可以显著提高性能。...

    JAVA8时间插入mysql少了8小时的解决办法(csdn)————程序.pdf

    总之,当遇到Java 8插入MySQL时间数据时出现8小时偏差的问题,检查并调整JDBC连接字符串中的`serverTimezone`参数至关重要。正确设置时区参数,如`Asia/Shanghai`,能确保时间和日期的准确无误地存储和检索。这是一...

    数据库——MYSQL.docx

    【MySQL数据库基础】 MySQL是一种广泛使用的开源关系型数据库管理系统,其设计目标是处理大量...这些是MySQL数据库管理的基础知识,包括数据模型、数据库操作和数据类型的使用,对于理解和操作MySQL数据库至关重要。

    读书笔记系列1——MySQL必知必会.pdf

    MySQL是世界上最流行的关系型数据库管理系统之一,用于存储和管理各种类型的数据。《MySQL必知必会》这本书提供了全面的MySQL基础知识,涵盖了从数据库基础到高级功能的诸多方面。以下是根据书中的章节内容概述的...

    mysql数据库命名与设计规范.doc

    MYSQL 数据库的字段类型标准是指在选择字段类型时所遵守的规则,包括: * 规则:用尽量少的存储空间来存储一个字段的数据。 * 时间戳字段尽量用 int 型。 七、数据库设计文档标准 MYSQL 数据库设计文档标准是指在...

Global site tag (gtag.js) - Google Analytics