MYSQL笔记_文本字符串类型

1,CHAR/VARCHAR——定长字符串/变长字符串


        a,需要定义字符串长度CHAR(M),默认为1        0<=M<=255        
        说明  

            CREATE TABLE test_char1(
            c1 CHAR,
            c2 CHAR(5)
            );
            DESC test_char1;
            INSERT INTO test_char1(c1)
            VALUES ('a');
            INSERT INTO test_char1(c2)
            VALUES ('hello');    
            SELECT* FROM test_char1;   

        b,如果实际长度比M小,会在右侧填充空格,以达到长度M
        说明    

            SELECT CONCAT(c1,'***')
            FROM test_char1 ;

        c,M即为CHAR类型字段所占的储存空间的字节数    

        d,CHAR是定长字符串
        

        e,VARCHAR必须指定M    0<=M<=65535    
        说明 

        CREATE TABLE test_varchar2(
        NAME VARCHAR(5)
        );
        INSERT INTO test_varchar2
        VALUES ('阿巴阿巴');    
        SELECT* FROM test_varchar2;

        f,字节字符
        4.0版本以下VARCHAR(20)指的是20字节,存放UTF8汉字时,只能存6个
        4.0版本以上VARCHAR(20)指的是20字符
        

        g,CHAR/VARCHAR区别

        CHAR 固定长度 浪费储存空间 效率高 速度快
        VARCHAR长度可变 节省储存空间 效率低 

        h,使用情景
        1,短信息,如门牌号,用char
        2,固定长度用char
        3,column频繁改变用char 


2,TEXT类型——长文本数据


        由于实际存储的长度不确定,MYAQL不允许使用TEXT做主键
        TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT

        说明

        CREATE TABLE test_text(
        tx TEXT
        );
        INSERT INTO test_text
        VALUES('abaaba');
        SELECT * FROM test_text;

        0<=M<=65535


3,ENUM类型——枚举

        
        说明

        CREATE TABLE test_enum(
        season ENUM('春','夏','秋','冬','UNKNOWN')
        );
        INSERT INTO test_enum
        VALUES('春'),('秋'),('unknown');
        SELECT * FROM test_enum;

        a,不可以放在一个括号里

        INSERT INTO test_enum
        VALUES('春','秋');

        b,没有限制非空的情况下,可以增加NULL

        INSERT INTO test_enum
        VALUES('NULL');                

        c,添加的字符必须在ENUM里

        d,忽略大小写

        INSERT INTO test_enum
        VALUES('unknown');

        e,0<=M<=255 


4,SET类型

               
                说明

        CREATE TABLE test_set(
        a SET('A','B','C')
        );
        INSERT INTO test_set 
        VALUES ('A,B'),('A');
        SELECT * FROM test_set;

                a,上限64
                b,输入重复的类型时会自动删除重复部分

        INSERT INTO test_set
        VALUES ('A,A');

                c,插入不存在的值,MYSQL报错

        INSERT INTO test_set
        VALUES ('D');

                d,插入数量大于等于2时,放在一个括号里

        INSERT INTO test_set
        VALUES ('A,B');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值