• mysql基本数据类型(mysql学习笔记三)


    Mysql数据类型

    小数:

    浮点:小数位可以变化

    Float单精度默认精度6位左右

    Double 双精度默认精度16位左右

    支持,控制数值范围

    Type(M,D)

    M表示所有数值位数(不包括小数点和符号)

    D 表示允许的小数位数。

    不符合的都错误

    支持科学计数法

    定点数:

    Decimal(M,D)

    M总位数

    D小数位数

    M默认10 D默认0

    四舍五入

    支持zerofillunsigned(显示范围不变,和int不同)

    日期时间:

    时间戳

    存储时,整型,表示时仍然是日期时间(插入和读取时按照datetime格式)

    时间范围 1970 1.1 0:0:0到其后的2^31-1亿秒(整型范围决定)即到2038-01-19 03:14:07

    检索时字段+0

    即为整型格式展示

    create table dt_1(

    a datetime,

    b timestamp

    );

    insert into dt_1 values('2013-04-16 2:13:11','2013-04-16 2:13:11');

     

     

    select a,b+0 from dt_1;

     

    2013-04-16 02:13:11 | 20130416021311 |

    select a+0,b+0 from dt_1;

    20130416021311.000000 | 20130416021311 |

    插入时格式只和实际有关,与分割符无关

    歧义:(不建议使用)

    insert into dt_1 values('20-04-16','2013-04-16 2:13:11')

    2020-04-16 00:00:00 | 2013-04-16 02:13:11

     

    insert into dt_1 values('2-4-6','2013-04-16 2:13:11')

    0002-04-06 00:00:00 | 2013-04-16 02:13:11

    支持2位年份

    70-69      1970-2069

    70-99      19xx

    0-69 20xx

    不建议使用

    支持0

    2013-04-0表示 4月整月

    Time类型

    1. 1.                一天中的时间
    2. 2.                时间间隔
    3. 3.                可以使用天来表示

    格式:D HH:MM:SS

    D

    字符串类型

    一.   Charvarchar

    Char(M) 固定长度,M严格限定长度

    Varchar(M)可变,M允许的最大长度(范围)

    M是字符数而非字节数,但是总的长度的使用是按照字节计算的。

    Utf8 21845*3=65535

    Gbk 32767*2=65534

    Latin一个字节一个字符

    字段的最大长度,除了类型本身限制之外,记录的总长度也有限制

    create table s2_2_2(

    a varchar(21845)

    ) character set utf8;       

    创建不成功,减少一个字符可以。

    create table s4(

    a varchar(65535)

    ) character set latin1;

    即使加 not null也是创建失败

    65534同样情况

    65533必须加 not null才可以创建成功!

    真实的varchar长度

    总长度 65535

    Varchar特点:当类型数据超过255个字符时,采用2个字节表示长度。

    65535-2=65533

    整条记录,需要一个额外的字节来保存那些字段的值是null的。

    除非所有的字段都不是null,这个字节才能省略。一个记录,不论又多少个字段存在null,都是使用统一的一个字节来表示,而不是每一个字段一个字节。

    65533时not null才能成功。

    create table s6(

    a varchar(65532)

    ) character set latin1;

    能创建

    create table s7(

    a varchar(65532) ,

    b tinyint

    ) character set latin1;

    创建不了

    create table s6(

    a varchar(65532) not null,

    b tinyint

    ) character set latin1;

    创建不了

    create table s6(

    a varchar(65532) not null,

    b tinyint not null

    ) character set latin1;

    可以创建

    65532+2+1(tinyint)

    Drop table tb1,tb2….. tbn;

    create table t4(

    a text not null,

    b varchar(65523) not null

    ) character set latin1;

    刚好成功

    Text类型不能指定长度和默认值可以not null(插入时不写该字段插入空字符串,能成功插入),不加not null,插入时不写该字段会默认插入null

    Enum保存的是整型处理

    集合set

     

     

                            (‘footbal’,’basketball’,’swim’)

    1,10,100

    1+100=101=5

    10+100=110=6

     

    1,10,100,1000

    1+1000=1001=9

    1+10+100+1000=1111=15

    1+10=11=3

    二进制

     

  • 相关阅读:
    linux的crash之hardlock排查记录
    linux 巨页使用测试
    linux 巨页使用测试以及勘误1
    python判断两个list包含关系
    JavaScript--数据结构之栈
    JavaScript--数据结构与算法之列表
    js数组详解:
    基于jQuery的插件开发
    函数的理解:
    JS面向对象:
  • 原文地址:https://www.cnblogs.com/HKUI/p/3567711.html
Copyright © 2020-2023  润新知