mysql的字符串类型

在mysq中的字符串类型有 VARCHAR 、 CHAR、 ENUM 、SET、 BLOB、 TXT



VARCHAR和CHAR

1、CHAR为固定长度的字符串,VARCHAR是长度可变的字符串,
例如 有一个char(5) 和 varchar(5)来存放字符串‘ab’,那么用char存的就是字符串 ‘ab’后加上3个空格,固定用五个字节存,从varchar(5)存的就是‘ab’所占字节+ 1字节,很明显varchar更节省内存。




2、如果存入的字符串后面有空格,varchar会保留空格,char则会删除空格
如 ‘ab  ’,char会把后面的空格删除,只留下‘ab’。varchar则会保留字符串后面的空格。
正是由于varchar存所以varchar更常用

 SQL Code 
1
2
3
4
5
CREATE  TABLE vvar(Cha  CHAR( 5),VarCha  VARCHAR( 5));
INSERT  into vvar  VALUES( 'ab   ', 'ab   ');
SELECT  CONCAT( '(',Cha, ')'AS  'char'  ,
     CONCAT( '(',VarCha, ')'AS  'varchar'
         FROM vvar;

3、如果插入的字符串长度超出CHAR和VARCHAR定义时的长度,那么超出的部分就会被截取
 SQL Code 
1
2
CREATE TABLE  vvar (Cha CHAR( 5),VarCha VARCHAR( 5));
INSERT  into  vvar   VALUES( 'abcdef', 'abcdef');




TEXT
TEXT类型保存非二进制(字符流形式)的字符串,如文章内容、评论等。当保存或查询TEXT列的值时,不删除尾部空格。TEXT类型分为4种:
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT



各种TEXT类型的区别在于允许的长度存储空间不同。




ENUM类型

     ENUM类型又称为枚举类型

格式:
字段名 ENUM('值1','值2',...,'值n')


ENUM值在内部用整数表示,每个枚举值都有一个索引值:列表值所允许的成员值从1开始编号,MySQL存储的就是这个索引编号,而不是列表中的值。
 SQL Code 
1
2
CREATE  TABLE eumm(enm ENUM( 'first', 'second', 'third'));
SELECT enm,enm+ 0  FROM eumm;





应用例子:
 SQL Code 
1
2
CREATE  TABLE tablell(soc  INT, level enum( 'excellent', 'good', 'bad'));
INSERT  INTO tablell  VALUES( 70, 'good'),( 90, 1),( 75, 2),( 50, 3);




 SQL Code 
1
INSERT  INTO tablell  VALUES( 70, 'best');

因为“best” ,并没有在枚举中定义



 SET类型




SET 跟 ENUM 类型有点相像
SET的每个值都是在内 部用一个整数表示,但是SET值可以自由组合,且每个组合在内部也是用一个整数值代表。


 SQL Code 
1
2
3
CREATE  TABLE ppp (s  SET( 'a', 'b', 'c'));
INSERT  INTO ppp  VALUES( 'a'),( 'b'),( 'c'),( 'a,b'),( 'a,c'),( 'b,c'),( 'a,b,c');
SELECT s,s+ 0  FROM ppp;


 SQL Code 
1
2
INSERT  INTO ppp  VALUES( 1);
SELECT s,s+ 0  FROM ppp;


BLOB
blob 类型用来存的是字节型 的二进制数据,跟TEXT(字符型二进制)相反。blob存的是一般是图片,音频的字节流文件,但事实上这些数据一般都不用数据库来存,所以不举例了。


  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值