Mysql字符串类数据列类型(参考)

字符串可以用来表示任何一种值,所以它是最基本的类型之一。我们可以用字符串类型来存储图象或 声音之类的二进制数据,也可存储用gzip压缩的数据。下表介绍了各种字符串类型:

Table 1.3. 字符串类数据列类型

CHAR[(M)] M字节 M字节
VARCHAR[(M)] M字节 L+1字节
TINYBLOD,TINYTEXT 2^8-1字节 L+1字节
BLOB,TEXT 2^16-1字节 L+2
MEDIUMBLOB,MEDIUMTEXT 2^24-1字节 L+3
LONGBLOB,LONGTEXT 2^32-1字节 L+4
ENUM('value1','value2',...) 65535个成员 1或2字节
SET('value1','value2',...) 64个成员 1,2,3,4或8字节

L+1、L+2是表示数据列是可变长度的,它占用的空间会根据数据行的增减面则改变。数据行的总长度 取决于存放在这些数据列里的数据值的长度。L+1或L+2里多出来的字节是用来保存数据值的长度的。在对 长度可变的数据进行处理时,MySQL要把数据内容和数据长度都保存起来。

如果把超出字符串最大长度的数据放到字符类数据列中,MySQL会自动进行截短处理。

ENUM和SET类型的数据列定义里有一个列表,列表里的元素就是该数据列的合法取值。如果试图把一个 没有在列表里的值放到数据列里,它会被转换为空字符串(“”)。

字符串类型的值被保存为一组连续的字节序列,并会根据它们容纳的是二进制字符串还是非二进制字 符而被区别对待为字节或者字符:

二进制字符串被视为一个连续的字节序列,与字符集无关。MySQL把BLOB数据列和带BINARY属性的CHAR 和VARCHAR数据列里的数据当作二进制值。

非二进制字符串被视为一个连续排列的字符序列。与字符集有关。MySQL把TEXT列与不带BINARY属性的 CHAR和VARCHAR数据列里的数据当作二进制值对待。

在MySQL4.1以后的版本中,不同的数据列可以使用不同的字符集。在MySQL4.1版本以前,MySQL用服务 器的字符集作为默认字符集。

非二进制字符串,即我们通常所说的字符串,是按字符在字符集中先后次序进行比较和排序的。而二 进制字符串因为与字符集无关,所以不以字符顺序排序,而是以字节的二进制值作为比较和排序的依据。 下面介绍两种字符串的比较方式:

二进制字符串的比较方式是一个字节一个字节进行的,比较的依据是两个字节的二进制值。也就是说 它是区分大小写的,因为同一个字母的大小写的数值编码是不一样的。

时间: 2024-09-25 13:32:44

Mysql字符串类数据列类型(参考)的相关文章

Mysql支持的数据类型(列类型总结)_Mysql

一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展. 扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据.   整数类型        字节       范围(有符号)      范围(无符号)          用途  TINYINT

MYSQL列类型参考

mysql|参考    本附录介绍MySQL提供的每种列类型.关于利用每种类型的详细说明请参阅第2 章.除非另有说明,否则所列出的类型早在MySQL3.21.0 中就已经有了.    按下列约定给出类型名说明:    方括号( [ ]) 可选信息.    M 最大显示宽度.除非另有说明,否则M 应该是一个1到255 之间的整数.    D 有小数部分的类型的小数位数.D 为一个0 到30 之间的整数.D 应该小于等于M - 2.否则,M 的值将调整为D + 2.    在ODBC 术语中,M 和

MySQL 4.1.0 中文参考手册 --- 6.2 列类型

mysql|参考|参考手册|中文 MySQL 4.1.0 中文参考手册 --- 犬犬(心帆)翻译 MySQL Reference Manual for version 4.1.0-alpha. 6.2 列类型 MySQL 支持大量的列类型,它们可以被分为 3 类:数字类型.日期和时间类型以及字符串(字符)类型.这个章节首先给出可用类型的概述,并且总结各类型所需的存储需求,然后提供各类型中的类型范畴更详细的描述.概述有意地简化了.更详细的说明应该参考特写列类型的附加信息,例如你能为其指定值的允许格

MySQL的列类型

    数据库中的每个表都是由一个或多个列构成的.在用CREATE TABLE 语句创建一个表时,要为每列指定一个类型.列的类型比数据类型更为特殊,它仅仅是如"数"或"串"这样的通用类型.列的类型精确地描述了给定表列可能包含的值的种类,如SMALLINT 或VARCHAR( 3 2 ).    MySQL的列类型是一种手段,通过这种手段可以描述一个表列包含什么类型的值,这又决定了MySQL怎样处理这些值.例如,数值值既可用数值也可用串的列类型来存放,但是根据存放这些

mysql 的列类型,增加更新表字段

#列类型 mysql 三大列类型 数值型 tinyint 占据空间 1字节 8个位 存储范围,-128-127,0-255 0-2^8 0-255 -2^7 2^7-1 smallint mediuint int bigint int系列声明时的参数 (M) unsigned zerofill 分析M参数 M表示补0宽度 M必须和zerofill配合才有意义, zerofill 表示的unsigned alter table calss add snum smallint(5) zerofill

mysql 数据库-mysql中表中列类型是枚举类型不能参与运算吗?

问题描述 mysql中表中列类型是枚举类型不能参与运算吗? 表结构: +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | sporter_id | char(4) | YES |

MYSQL列类型选择与MYSQL查询效率

    4.3 列类型选择与查询效率    要选择有助于使查询执行更快的列,应遵循如下规则(这里,"BLOB 类型"应该理解为即包含B L O B也包含TEXT 类型):    ■ 使用定长列,不使用可变长列.这条准则对被经常修改,从而容易产生碎片的表来说特别重要.例如,应该选择CHAR 列而不选择VARCHAR 列.所要权衡的是使用定长列时,表所占用的空间更多,但如果能够承担这种占涞暮姆眩褂枚ǔば薪仁褂每杀涑さ男写砜斓枚唷?br>     ■ 在较短的列能够满足要求时不要

MySQL日期数据类型、时间类型使用总结_Mysql

MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间       日期格式                 日期范围 ------------ ---------   --------------------- ----------------------------------------- datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-31

TIMESTAMP列类型详解(怎样设列的默认值为Now())

详解 TIMESTAMP列类型详解(怎样设列的默认值为Now()) MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型 TIMESTAMP列类型TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示.TIMESTAMP值显示尺寸的格式如下表所示::+---------------+----------------+| 列类型