mysql字符串类型

字符串类型

char和varchar
1、char(M)M为该字符串占的最大长度,长度为0~255字节之间任意值,占用固定字节。
2、varchar(M)长度为0~65535字节之间任意值。实际占字节数为实际字符长度的基础上加1,因为最后有个结束标志符占用一个字节。
3、char和varchar中字符串最后有空格的话,char不保留空格,varchar保留空格。
4、如果插入字符串长度超过限制会提示不能插入

text类型
TINYTEXT 允许长度0~255字节 存储空间值的长度+2个字节
TEXT  允许长度0~65535字节 存储空间为值的长度+2个字节
MEDIUMTEXT  允许长度0~167772150字节 存储空间为值的长度+3个字节
LONGTEXT  允许长度0~4294967295字节 存储空间为值的长度+4个字节

ENUM类型
格式:属性名 ENUM('值1','值2',...,'值n'); 值最多可以有65535个,这些值末尾的空格将会被系统直接删除,向表中插入的字符只能是ENUM中限定的字符串。
如果加了not null限制,那么不允许插入NULL值,如果不指定插入值默认插入值1。
如果不加not null限制,那么不指定插入值或者插入值为NULL,都显示插入的是NULL。

SET类型
格式:属性名 SET('值1','值2',...,'值n'); 这些值末尾的空格将会被系统直接删除,向表中插入的字符只能是ENUM中限定的字符串,可以其中的多个值的组合,取多个值时,不同值之间用逗号隔开,最多只能有64个值构成。
如插入:set类型取值表为('a','b','c','d'),插入值为('b')和('a,c,d')。显示b和a,c,d。

时间: 2024-11-10 15:59:56

mysql字符串类型的相关文章

mysql字符串类型数据

字符串类型是在数据库中存储字符串的数据类型,字符串类型包括char,varchar,text,enum和set. OK,我们来一个一个的看下上面提到的几种类型. char类型和varchar类型 char类型和varchar类型都是在创建表时指定了最大长度,其基本形式如下:字符串类型(M).其中,字符串类型参数指定了数据类型是char类型还是varchar类型,M参数指定了该字符串的最大长度为M.举个例子,char(4)就是指数据类型是char类型,其最大长度为4. char类型的长度是固定的,

学习笔记:MySQL字符串类型

字符串类型 a)         char和varchar 1.都需要指定字符的长度,char中的长度是字符的长度,而varchar的长度是字节的长度 2. char中指定的长度就是实际占用的长度,而varchar指定的长度只是一个范围,所以varchar还要拿1-2个字节存储该字符串到底有多少个字节,并且varchar中能够实际存储的字符跟编码有关(utf8编码20000多,gbk编码30000多) 3.varchar对存储空间的占用更灵活,但是char的效率更高 4.如果字符串的长度是固定已

mysql字符串类型、列属性及外键

字符串类型 Char 和varchar 在定义char 跟varchar时,都需要设置长度. 语法: char(M); 最大长度为255 varchar(M); 最大长度为65532 不同编码长度不同 GBK最大为:32767 utf8最大为:21845 M为长度! 两者区别: Char的M是固定的,即使输入的字符长度小于M值,该字符长度也会被定义为M值: 效率更快,使用一些固定字符长度的时候可以使用,例:电话号码.身份证号码等! Varchar的M是范围性值,只要不超过M,输入的值长度为多少即

mysql 字符串类型数字排序

排序字段+0,类似  Java 把 其他类型转换成字符串 比如 +“”: SELECT    b.tag_value AS NAME,    sum(b.uv) ASVALUE FROM    meta.dic_app_category a,    rpt_app_cat_people bWHERE    a.id = b.`name`AND a.id = 100AND b.tag_name = 'active_hour'GROUP BY    b.tag_valueORDER BY    (b

mysql中的字符串类型数据索引优化

摘自 "高性能mysql" 对于一些字符串类型较长的字段搜索时, 可以参考如下方法

MySQL数据类型--------字符串类型实战

1. 背景 * MySQL支持的字符串类型有CHAR.VARCHAR.二进制.var二进制.BLOB.文本等等. 2. 字符串类型所需的存储和值范围 类型 说明 N的含义 是否有字符集 最大长度 CHAR(N) 定义字符 字符 是 255 VARCHAR(N) 变长字符 字符 是 16384 BINARY(N) 定长二进制字节 字节 否 255 VARBINARY(N) 变长二进制字节 字节 否 16384 TINYBLOB 二进制大对象 字节 否 256 BLOB 二进制大对象 字节 否 16

Mysql在字符串类型的日期上加上10分钟并和现在的日期做比较

SELECT id FROM tran WHERE state = 'F' AND TIMESTAMPDIFF(SECOND,DATE_ADD(create_date,INTERVAL 10 DAY_MINUTE),"2014-06-18 10:30:29")>0 如果create_date加10分钟大于等于当前的时间("2014-06-18 10:30:29") 那么就会查到数据, 如果小于那么就查不到数据 Mysql在字符串类型的日期上加上10分钟并和现在

mysql,字符串类型id,获取最大值

说明,这个id是字符串类型,但是实际值是一个整数,获取最大值的方法是: select max(cast(id as SIGNED)) from table 另外,mysql生成伪列的方法: SELECT @rownum:[email protected]+1 AS rownum, t.* FROM (SELECT @rownum:=0) r, ai_label_detail_t t 原文地址:https://www.cnblogs.com/gunduzi/p/12076452.html

mysql按照字符串类型的数值按数值进行排序

很明显,我写的sql是希望按照这三个字段进行升序排列,查看之后发现scene_no是varchar类型,第一次遇到这个问题我很不解,就算是字符串类型为什么要分开排序呢?这样不就等于把“10”分成“1”.“0”进行排序的吗,wtk!?这么神奇吗?百度了一下字符串类型是如何进行排序的,看了一些答案自己尝试了一下果然OK! 因为mysql进行的排序规则是按照ASCII码进行排序的,并不会自动的识别出这些数据是数值,sql改为 order by 字段名称+0 desc/asc的形式进行排序 即可.这样m