美文网首页Java note程序员
Mysql 进阶()数据类型)

Mysql 进阶()数据类型)

作者: chcvn | 来源:发表于2017-11-20 22:43 被阅读22次

    ----数据类型(列类型)
    整数型和小数型
    @作者 原地址:www.1314sl.com

    --整数型
    五类:
    tinyint --迷你型 最多为256种 (常用)
    smallint --小整型 最多65536种 2个字节
    mediumint --中整型 使用3个字节数存储
    int       --标准整形,使用4个字节存储 (常用)
    bigint    --大整型   使用8个字节
    
    -------- 小数型   会四舍五入
            
        浮动型:小数点浮动,精度有限,会丢失精度
        定定型:小数点固定,精度固定,不会丢失精度
        
    
    -------- 浮点型    
        float   4  
        double  8
    
    
    ------ 定点型   不会四舍五入
        查看警告:show warnings;
        
    
    -------- 时间日期类型
        datetime:时间日期
        date : 日期
        time :时间(段)
        timestamp : 时间戳
        
    
    -------------字符串类型----UTF8 一个字符占3个字节--------------
    在SQL 中,将字符串类型分了6类:
        char , varchar,text,blob,enum,set
        
        --定长字符串
            char 在定义结构的时候就已经定义了最终数据的存储长度
            
            char(L)L代表length、可以存储的长度、单位为字符,最大长度值为255.
            
        --变长字符串
        varchar 在分配空间的时候,按最大的空间分配,但是实际上最终用了多少,是是根据具体的数据来确定
        
        Varchar(L) 理论长度是65536个字符
        
        --文本字符串
        如果数据量非常大,通常说超过255个字符就会使用文本字符串
            存储数据的格式进行分类:text和blob
                text 存储文字
                blob 存储二进制数据(通常不用)
    
    
                
    ------  枚举字符串---------------
        枚举:enum 事先将所有可能出现的结果设计好
        
        使用方式:
            定义:enum(可能出现的元素列表);
        
        --证明字段存储的数据是数值:将2数据取出来+0就可以判断出原来的数据存的到底是字符串还是数值,
    
        
        
    ------------集合字符串
        集合跟枚举类似:实际存储的是数值,而不是字符串(集合是多选的)、
        
        在集合里面,所有的字符串都对应二进制
        
        查询    select 列名+0,列名 from 表名
        
        对应的位,位取反
        
        
    
        
    ----------------Mysql记录长度------------
    
    Mysql中规定:任何一条记录最长不能超过65535个字节(varchar永远达不到理论值)
    
        uft8 下 varchar实际顶配:21884字节
        GBK  下 varchar实际顶配:32766字节
        
        
        
        
        
        
    --------------空属性
        两个值:NULL(默认的)和 NOT NULL(不为空)
        
        虽然是默认的。数据库基本都是字段为空。
        空数据没有意义
        
        create table myclass(
            name varchar(20) not null,
            room varchar(20) null
        )charset utf8;
        
        
    -------------------列描述
            comment  描述   没有时间含义:是专门用来描述字段,会根据表创建语句保存;
                
                
                create table myclass(
                    name varchar(20) not null comment '姓名',
                    money decimal(10,2) null comment '钱'
                )charset utf8;
        
        
    ---------------默认值
        某一种数据会经常性的出现某个具体的值
            
            show create table 表名 查看列描述
            
            default 默认值 
            
            create table myclass(
                    name varchar(20) not null comment '姓名' default '男',
                    money decimal(10,2) null comment '钱' default 0
                )charset utf8;
    
    

    @作者 原地址:www.1314sl.com

    oneNate笔记oneNate笔记
    @作者 原地址:www.1314sl.com

    相关文章

      网友评论

        本文标题:Mysql 进阶()数据类型)

        本文链接:https://www.haomeiwen.com/subject/nhgbvxtx.html