MYsql字段类型说明

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。

本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。

概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。

由MySQL支持的列类型列在下面。

下列代码字母用于描述中:
M
指出最大的显示尺寸。

最大的合法的显示尺寸是255 。

D
适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。

最大可能的值是30,但是应该不大于M-2。

方括号(“[”和“]”)指出可选的类型修饰符的部分。

注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个很小的整数。

有符号的范围是-128到127,无符号的范围是0到255。

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一个小整数。

有符号的范围是-32768到32767,无符号的范围是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个中等大小整数。

有符号的范围是-8388608到8388607,无符号的范围是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]
一个正常大小整数。

有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是INT的一个同义词。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一个大整数。

有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到
18446744073709551615。

注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。

一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<=24,对一个双精度浮点数,是在25 和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。

FLOAT(X)有对应的FLOAT和DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。

在MySQL3.23
中,这是一个真正的浮点值。

在更早的MySQL版本中,FLOAT(precision)总是有2位小数。

该句法为了ODBC兼容性而提供。

FLOAT[(M,D)] [ZEROFILL]
一个小(单精密)浮点数字。

不能无符号。

允许的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。

M是显示宽度而D是小数的位数。

没有参数的FLOAT或有<24 的一个参数表示一个单精密浮点数字。

DOUBLE[(M,D)] [ZEROFILL]
一个正常大小(双精密)浮点数字。

不能无符号。

允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。

M是显示宽度而D是小数位数。

没有一个参数的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。

DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
这些是DOUBLE同义词。

DECIMAL[(M[,D])] [ZEROFILL]
一个未压缩(unpack)的浮点数字。

不能无符号。

行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。

小数点,并且对于负数,“-”符号不在M中计算。

如果D是0,值将没有小数点或小数部分。

DECIMAL值的最大范围与DOUBLE 相同,但是对一个给定的DECIMAL列,实际的范围可以通过M和D的选择被限制。

如果D 被省略,它被设置为0。

如果M被省掉,它被设置为10。

注意,在MySQL3.22里,M参数包括符号和小数点。

NUMERIC(M,D) [ZEROFILL]
这是DECIMAL的一个同义词。

DATE
一个日期。

支持的范围是'1000-01-01'到'9999-12-31'。

MySQL以'YYYY-MM-DD'格式来显示DATE 值,但是允许你使用字符串或数字把值赋给DATE列。

DATETIME
一个日期和时间组合。

支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

MySQL 以'YYYY-MM-DD HH:MM:SS'格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。

TIMESTAMP[(M)]
一个时间戳记。

范围是'1970-01-01 00:00:00'到2037年的某时。

MySQL以YYYYMMDDHHMMSS、
YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。

一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。

你以可以通过赋给它一个NULL 值设置它为当前的日期和时间。

TIME
一个时间。

范围是'-838:59:59'到'838:59:59'。

MySQL以'HH:MM:SS'格式来显示TIME值,但是允许你使用字符串或数字把值赋给TIME列。

YEAR[(2|4)]
一个2或4位数字格式的年(缺省是4位)。

允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。

MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。

(YEAR类型在MySQL3.22中是新类型。


CHAR(M) [BINARY]
一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。

M的范围是1 ~255个字符。

当值被检索时,空格尾部被删除。

CHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词。

NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。

这是MySQL的缺省。

CHAR是CHARACTER的一个缩写。

[NATIONAL] VARCHAR(M) [BINARY]
一个变长字符串。

注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。

M的范围是1 ~255个字符。

VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。

VARCHAR是CHARACTER VARYING一个缩写。

TINYBLOB
TINYTEXT
一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。

BLOB
TEXT
一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。

MEDIUMBLOB
MEDIUMTEXT
一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。

LONGBLOB
LONGTEXT
一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。

ENUM('value1','value2',...)
枚举。

一个仅有一个值的字符串对象,这个值式选自与值列表'value1'、'value2', ...,或NULL。

一个ENUM最多能有65535不同的值。

SET('value1','value2',...)
一个集合。

能有零个或多个值的一个字符串对象,其中每一个必须从值列表'value1', 'value2', ...选出。

一个SET最多能有64个成员。

合集下载

MySQL字段类型说明

MySQL字段类型说明

MySQL字段类型说明MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。

本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。

概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。

由MySQL支持的列类型列在下面。

下列代码字母用于描述中:M指出最大的显示尺寸。

最大的合法的显示尺寸是255 。

D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。

最大可能的值是30,但是应该不大于M-2。

方括号(“[”和“]”)指出可选的类型修饰符的部分。

注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。

TINYINT[(M)] [UNSIGNED] [ZEROFILL]一个很小的整数。

有符号的范围是-128到127,无符号的范围是0到255。

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]一个小整数。

有符号的范围是-32768到32767,无符号的范围是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]一个中等大小整数。

有符号的范围是-8388608到8388607,无符号的范围是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]一个正常大小整数。

有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]这是INT的一个同义词。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]一个大整数。

有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。

MySQL(二)数据库数据类型详解

MySQL(二)数据库数据类型详解

MySQL(⼆)数据库数据类型详解 序⾔ 今天去健⾝了,感觉把⾝体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这⾥讲清楚了,以后在看到什么数据类型,咱度应该认识,下⾯就跟着我的节奏去把这个拿下吧。

---WZY⼀、数据类型 MySQL的数据类型有⼤概可以分为5种,分别是整数类型、浮点数类型和定点数类型、⽇期和时间类型、字符串类型、⼆进制类型。

现在可以来看看你对这5种类型的熟悉程度,哪个看起来懵逼了,那就说明⾃⼰哪个不熟悉,不理解。

注意:整数类型和浮点数类型可以统称为数值数据类型,这不难理解。

数值数据类型 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 浮点数类型:FLOAT、DOUBLE 定点⼩数:DECIMAL ⽇期/时间类型 YEAR、TIME、DATE、DATETIME、TIMESTAMP 字符串类型 CHAR、VARCHAR、TEXT、ENUM、SET等 ⼆进制类型 BIT、BINARY、VARBINARY、BLOB 1、整数类型 不管你学什么语⾔,在基础⽅⾯,都应该知道 1个字节= 8位⼆进制数。

每个类型的取值范围也就能够知道,⽐如TINYINT占⽤1个字节,也就是8位,2的8次⽅减1等于255,也就是说如果代表没符号的整数,该取值范围为0~255,如果是有符号的,最⾼位为符号号位,也就是2的7次⽅减1,也就是127,取值范围为-128~127,为什么需要减1,这个问题就需要考虑临界值的问题了。

⽽考虑临界值问题⼜有需要讨论原码补码反码的知识,这些度不是我们讨论的重点,所以在这就⾃⾏百度。

给出⼀张范围表,给⼤家做参考。

不同整数类型的取值范围 根据⾃⼰所需去选取不同的类型名称, 例如: CREATE TABLE aaa( id INT(10) PRIMARY KEY, age INT(6) ); 这个例⼦中INT(10)、INT(6) 括号中的数字表⽰的是该数据类型指定的显⽰宽度,指定能够显⽰的数值中数字的个数。

MYSQL数据类型——字符串类型

MYSQL数据类型——字符串类型

MYSQL数据类型——字符串类型⼀、字符串类型在SQL中,将字符串类型分成了6类:char,varchar,text,blob,enum和set。

1.1 定长字符串定义:char,磁盘(⼆维表)在定义结构的时候,就以及确定了最终数据的存储长度。

Char(L): L代表length,可以存储的长度,单位为字符,最⼤长度值可以为255.Char(4):在UTF8环境下,需要4*3=12个字节。

1.2 变长字符串定义:varchar,在分配空间的时候,按照最⼤的空间分配,但是实际上最终⽤了多少,是根据具体的数据来确定。

Varchar(L): L表⽰字符长度,理论长度是65536个字符,但是会多出1到2个字节来确定存储的实际长度Varchar(10): 的确存了10个汉字,UTF8环境,10*3+1=31存储了3个汉字,UTF8环境,3*3+1=10(bytes)定长与变长的存储实际空间(UTF8)存储实际空间Char(4)Varchar(4)Char占⽤字节Varchar占⽤字节ABCD ABCD ABCD4*3=124*3+1=13A A A4*3=121*3+1=4ABCDE××数据超过长度数据超过长度如何选择定长或者是变长字符串呢?定长的磁盘空间⽐较浪费,但是效率⾼:如果数据基本上确定长度都⼀样,就是使⽤定长,如:⾝份证,电话号码,⼿机号码等变长的磁盘空间⽐较节省,但是效率低:如果数据不能确定长度(不同数据有变化),如姓名、地址等。

1.3 ⽂本字符串如果数据量⾮常⼤,通常说超过255个字符就会使⽤⽂本字符串⽂本字符串根据存储的格式进⾏分类:text和blobText: 存储⽂字(⼆进制数据实际上都是存储路径)Blob: 存储⼆进制数据(通常不⽤)1.4 枚举字符串枚举定义:enum,事先将所有可能出现的结果都设计好,实际上存储的数据都必须是规定好的数据中的⼀个。

枚举的使⽤⽅式定义:enum(可能出现的元素列表); //如 enum(‘男’,‘⼥’,‘不男不⼥’,‘妖’,‘保密’);使⽤:存储数据,只能存储上⾯定义好的数据(a) 创建枚举表1CREATE TABLE my_enum(gender enum('男','⼥','保密')) charset utf8;(b)加⼊数据作⽤之⼀:规范数据格式;数据只能是规定的数据的其中⼀个1insert into my_enum values('男'),('保密'); --有效数据2insert into my_enum values('male'); --错误数据(没有male元素)(b)作⽤之⼆:节省存储空间(枚举通常有⼀个别名:单选框):枚举实际存储的是数值⽽不是字符串本⾝。

Mysql数据类型(字段)介绍

Mysql数据类型(字段)介绍

MySql数据库的列类型(字段类型)MySQL数据库的表是一个二维表,由一个或多个数据列构成。

每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。

MySQL中的列类型有三种:数值类、字符串类和日期/时间类。

从大类来看列类型和数值类型一样,都是只有三种。

但每种列类型都还可细分。

下面对各种列类型进行详细介绍。

数值类的数据列类型数值型的列类型包括整型和浮点型两大类。

TINYINT:1字节非常小的正整数,带符号:-128~127,不带符号:0~255SMALLINT:2字节小整数,带符号:-32768~32767,不带符号:0~65535MEDIUMINT:3字节中等大小的整数,带符号:-8388608~8388607,不带符号:0~16777215INT:4字节标准整数,带符号:-2147483648~2147483647,不带符号:0~4294967295BIGINT:8字节大整数,带符号:-9223372036854775808~9233372036854775807,不带符号:0~18446744073709551615FLOAT:4字节单精度浮点数,最小非零值:+-1.175494351E-38,最大非零值:+-3.402823466E+38 DOUBLE:8字节双精度浮点数,最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308DECIMAL:M+2字节以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。

整型数据列类型MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。

它们之间的区别是取值范围不同,存储空间也各不相同。

在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。

更新mysql数据库的blob类型字段内容

更新mysql数据库的blob类型字段内容

更新mysql数据库的blob类型字段内容1.⾸先对于blob类型做⼀个说明:对于mysql或者mariadb有4个可选的blob类型:tinyblob:最⼤存储数据的长度为255字节blob:最⼤存储的数据长度为65535字节,也就是65Kbmediumblob:最⼤存储的数据长度为16777215字节,也就是16Mblongblob:最⼤存储的数据长度为4,294,967,295(232 - 1)字节,也就是4Gb2. blob类型的⽤途通常这种类型的字段⽤于存储⼆进制⽂件,例如图⽚、视频、⾳频、⽂档等3. 向数据库的blob字段中插⼊数据,并查询# -*- coding:utf-8 -*-import mariadb# 连接数据库conn = mariadb.connect(user="mysql", # 数据库账号password="passwd", #数据库密码host="192.168.1.101", # 数据库主机名或IP地址database = "employee", #指定数据库(可选)port=3306, #端⼝autocommit = True # DB更新操作是否⾃动commit(可选参数))# 打开图⽚⽂件with open('C:\\Users\\xiaoming\\Desktop\\100001.jpg', 'rb') as file:fp = file.read()# 定义sql的插⼊语句sql_insert = '''INSERT INTO staff (uid, name, photo) values(?,?,?)'''values = [('100001','⼩明',fp)]# 打开数据库游标cur = conn.cursor()# 执⾏sql语句,进⾏插⼊数据cur.executemany(sql_insert,values) #执⾏SQL语句# 定义数据库查询语句sql_select = '''select photo from staff where uid=\'100001\';'''# 执⾏sql语句cur.execute(sql_select)# 读取查询数据photo_data = cur.fetchall()print(type(photo_data))#关闭数据库连接conn.close()插⼊数据后,还可以使⽤数据库客户端⼯具进⾏查看,⽐如DBeaver4. 更新数据库中的blob类型的字段内容对于update操作,是⽐较特殊的,如果直接通过类似 UPDATE staff SET photo=b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x.... WHERE uid='100001';的更新语句,会报语法错误。

数据库技术中的数据字段类型选择(六)

数据库技术中的数据字段类型选择(六)

数据库技术中的数据字段类型选择在数据库设计和开发中,选择正确的数据字段类型是至关重要的。

数据字段类型不仅直接影响数据的存储方式和效率,还关系到数据的准确性和一致性。

在本文中,我们将探讨数据库技术中的数据字段类型选择,并给出一些建议。

一、字符型字段类型选择字符型字段类型是数据库中最常见的字段类型之一。

在选择字符型字段类型时,需要考虑存储的最大长度和字符集。

一般常见的字符型字段类型有CHAR、VARCHAR和TEXT等。

1. CHAR类型:CHAR类型是一种固定长度的字符类型,长度上限一般为255个字符。

由于其固定长度的特性,使用CHAR类型可以提高查询效率。

但是,在存储数据时,如果字符长度小于字段定义的长度,系统会自动填充空格,因此这会带来一些空间浪费。

2. VARCHAR类型:VARCHAR类型是一种可变长度的字符类型,长度上限一般为65535个字符。

与CHAR类型相比,VARCHAR类型可以更节省空间,因为它只存储实际需要的字符。

但是,VARCHAR类型在查询时会降低一些效率。

3. TEXT类型:TEXT类型是一种可变长度的大文本类型,它的长度上限一般为65535个字符。

与VARCHAR类型相比,TEXT类型可以存储更大的文本数据。

然而,由于其大文本的特点,查询效率相对较低。

在选择字符型字段类型时,需要根据具体应用场景来选择。

如果字段的长度是固定的,建议使用CHAR类型;如果字段的长度不确定,但是数据量不大,建议使用VARCHAR类型;如果字段的长度不确定,并且数据量较大,建议使用TEXT类型。

二、数值型字段类型选择数值型字段类型用于存储各种数值类型的数据,如整数、小数等。

在选择数值型字段类型时,需要考虑数据的精度和范围。

常见的数值型字段类型有INT、FLOAT和DECIMAL等。

1. INT类型:INT类型是一种整数类型,它可以存储不超过的整数。

在存储整数时,INT类型占用的存储空间较小,查询效率较高。

四、MySQL数据类型和运算符

四、MySQL数据类型和运算符 数据库表由多列字段构成,每⼀个字段指定了不同的数据类型。

指定字段的数据类型之后,也就决定了向字段插⼊的数据内容。

不同的数据类型也决定了MySQL在存储它们的时候使⽤的⽅式,以及在使⽤它们的时候选择什么运算符号进⾏运算。

⼀、MySQL数据类型介绍 MySQL⽀持多种数据类型,主要有数值类型、⽇期/时间类型和字符串类型。

(1)数值数据类型:包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点⼩数数据类型FLOAT和DOUBLE,定点⼩数类型DECIMAL。

(2)⽇期/时间类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。

(3)字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。

字符串类型⼜分为⽂本字符串和⼆进制字符串。

1.1 整数类型 数值型数据类型主要⽤来存储数字,MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越⼤,其所需的存储空间也会越⼤。

MySQL主要提供的整数类型有:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT。

整数类型的属性字段可以添加AUTO_INCREMENT⾃增约束条件。

下表列出了MySQL中的数值类型:MySQL中的整数型数据类型数据名称说明存储需求默认宽度值TINYINT很⼩的整数1个字节4SMALLINT⼩的整数2个字节6MEDIUMINT中等⼤⼩的整数3个字节9INT(INTEGER)普通⼤⼩的整数4个字节11BIGINT⼤整数8个字节20 根据占⽤字节数可以求出每⼀种数据类型的取值范围,例如TINYINT需要1个字节(8bits)来存储,那么TINYINT⽆符号数的最⼤值为28-1,即255;TINYINT有符号数的最⼤值为27-1,即127。

mysql获取表字段信息(字段名,字段长度,字段类型,精度,小数点位)

mysql获取表字段信息(字段名,字段长度,字段类型,精度,⼩数点位)mysql查询表(列)字段信息SELECTCOLUMN_NAME F_FIELD,data_type F_DATATYPE,CHARACTER_MAXIMUM_LENGTH F_DATALENGTH,NUMERIC_PRECISION 精度,NUMERIC_SCALE ⼩数位数,IF( IS_NULLABLE ='YES', '1', '0' ) F_ALLOWNULL,COLUMN_COMMENT F_FIELDNAME,IF( COLUMN_KEY ='PRI', '1', '0' ) F_PRIMARYKEY,column_default F_DEFAULTS,CONCAT( upper( COLUMN_NAME ), '(', COLUMN_COMMENT, ')' ) AS'F_DESCRIPTION'FROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_NAME ='表名'AND TABLE_SCHEMA ='库名'下⾯列举出所有字段信息TABLE_CATALOG表限定符TABLE_SCHEMA表格所属的库TABLE_NAME表名COLUMN_NAME字段名ORDINAL_POSITION顺序COLUMN_DEFAULT默认值IS_NULLABLE是否为nullIS_NULLABLE是否为nullDATA_TYPE数据类型CHARACTER_MAXIMUM_LENGTH数据长度(字段的最⼤字符数)CHARACTER_OCTET_LENGTH存储长度(字段的最⼤字节数)NUMERIC_PRECISION数字精度NUMERIC_SCALE⼩数位数DATETIME_PRECISION datetime类型和SQL-92interval类型数据库的⼦类型代码。

mysql 字符串长度 规则

mysql 字符串长度规则MySQL 字符串长度规则在 MySQL 数据库中,字符串长度规则是指对于不同的字符类型,其长度限制和存储方式。

1. VARCHAR 类型:- VARCHAR 类型表示可变长度的字符数据。

- 最大长度为 65,535 字节。

- 实际占用的存储空间为实际数据长度加上额外的空间开销(1-2 字节)。

- 适合存储长度可变的文本内容。

2. CHAR 类型:- CHAR 类型表示固定长度的字符数据。

- 最大长度为 255 字节。

- 实际占用的存储空间是固定的,如果字符串长度不足指定长度,会使用空格进行填充。

- 适合存储长度固定的文本内容。

3. TEXT 类型:- TEXT 类型用于存储较长的文本数据。

- 最大长度为 65,535 字节。

- 不同于 VARCHAR 和 CHAR,TEXT 类型的存储空间是独立的,不受表的行大小限制。

- 适合存储大段文本、文章等长度不确定的内容。

需要注意的是,在使用 VARCHAR 和 CHAR 类型时,应根据实际需求合理设置字段的最大长度,以节省存储空间和提高性能。

同时,不要过度使用 TEXT 类型,因为它会对查询和索引性能产生一定的影响。

除了上述基本的字符串长度规则外,还可以通过设置字符集和校对规则来控制字符串的存储方式和排序规则。

例如,可以通过设置字符集为 utf8mb4,使用utf8mb4_general_ci 校对规则来支持存储和排序各种语言的字符。

总结:MySQL 中的字符串长度规则包括 VARCHAR、CHAR 和 TEXT 类型,每种类型有不同的长度限制和存储方式。

合理设置字符串字段的最大长度以及字符集和校对规则对于数据库的性能和存储空间都是重要的。

MySQL的SET字段类型

MySQL的SET字段类型MySQL的SET字段类型~(2011-04-23 13:21:31)标签:分类:SET是⼀个字符串对象,可以有零或多个值,其值来⾃表创建时规定的允许的⼀列值。

指定包括多个SET成员的SET列值时各成员之间⽤逗号(‘,’)间隔开。

这样SET成员值本⾝不能包含逗号。

例如,指定为SET('one', 'two') NOT NULL的列可以有下⾯的任何值:'''one''two''one,two'SET最多可以有64个不同的成员。

当创建表时,SET成员值的尾部空格将⾃动被删除。

当检索时,保存在SET列的值使⽤列定义中所使⽤的⼤⼩写来显⽰。

请注意可以为SET列分配字符集和校对规则。

对于⼆进制或⼤⼩写敏感的校对规则,当为列分配值时应考虑⼤⼩写。

MySQL⽤数字保存SET值,所保存值的低阶位对应第1个SET成员。

如果在数值上下⽂中检索⼀个SET值,检索的值的位设置对应组成列值的SET成员。

例如,你可以这样从⼀个SET列检索数值值:mysql> SELECT set_col+0 FROM tbl_name;如果将⼀个数字保存到SET列中,数字中⼆进制表⽰中的位确定了列值中的SET成员。

对于指定为SET('a','b','c','d')的列,成员有下⾯的⼗进制和⼆进制值:SET成员⼗进制值⼆进制值'a'10001'b'20010'c'40100'd'81000如果你为该列分配⼀个值9,其⼆进制形式为1001,因此第1个和第4个SET值成员'a'和'd'被选择,结果值为 'a,d'。

对于包含多个SET元素的值,当插⼊值时元素所列的顺序并不重要。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档