• 第26节--数据类型介绍


    数据类型介绍

    一、整型

    数据类型 字节 存储范围
    Tinyint 1

    有符号值:-128~127()

    无符号值:0~255

    Smallint 2

    有符号值:-32768~32767

    无符号值:0~65535

    Mediumint 3

    有符号值:-8388608~8388607

    无符号值:0~1677215

    int,integer 4

    有符号值:-2147483648~2147483647

    无符号值:0~4294967295

    Bigint 8

    有符号值:-9223372036854775808~9223372036854775807

    无符号值:0~9223372036854775807*2+1

    例:int(7)中7表示显示结果的宽度,入不够该宽度,若搭配zerofill,左边将用0填充

    二、小数

     

    浮点型

    类型 字节
    float(M,D) 4
    double(M,D) 8

     

    定点数类型

    DEC(M,D)   M+2字节,最大取值范围与double相同,给定的decimal的有效取值范围由M和D决定。

    特点:①M和D;M 代表整数部位+小数部位的总长度,D代表小数部位的总长度,如果超过范围,则插入 临界值

               ②M和D都可以省略,如果demical,则默认为10,D默认为0;如果是float和double,则会根据插入的数值精度来决定精度

               ③定点型的精确度较高,如果要插入数值的精确度较高,如货币运算等,则考虑使用

    #原则:所选的类型越简单越好,能保存数值的类型越小越好(节省空间)

    三、字符型

    1. 较短的文本:char,varchar

    2. 较长的文本:text,blob(较大的二进制)

    数据类型 最多字符数 描述及存储需求 代表长度 效率
    char(M) M, 可以省略,默认为1 M为0~255之间的整数 char代表固定长度的字符 char比较耗费空间,效率比较高
    varchar(M) M, 不可以省略 M为0~65535之间的整数 varchar代表可变长度的字符 varcahr比较节省,效率比较低

     

     

     

    M代表字符数(一个字母是一个字符,一个汉字是一个字符)

    3. binary和varbinary类型(了解)

    用于保存较短的二进制

    说明:类似于char和varchar,不同的是他们包含二进制字符串而不包含非二进制字符串。

    4. Enum类型(了解)用于保存枚举

    又称枚举类型,要求插入的值必须属于列表中指定的值之一

    如果列表成员为1~255,则需要一个字节存储

    如果列表成员为255~65535,则需要2个字节存储,最多需要65535个成员

    例:create table tab_char(
                           C1   Enum('a','b','c')

    );

    插入表中的值,必须属于‘a’ ,b,c中任意一个才有效。

    5.set类型(了解)用于保存集合

    和Enum类似,里面可以保存0~64个成员;和Enum最大的区别是:set 类型一次可以选取多个成员,而Enum只能选一个,根据成员个数的不同,存储所占的字节也不同

    成员数 字节数
    1-8 1
    9-16 2
    17-24 3
    25-32 4
    33-64 8

    例:create table tab_set(

    S1 set('a','b','c','d')

    );

    insert into tab_set values('a');

    insert into tab_set values('a, b');

    insert into tab_set values('a,b,c');

    显示结果

    S1
    a
    a,b
    a,b,c

     

     

     

     

     

     

    四、日期型

    日期和时间类型 字节 最小值 最大值
    date 4 1000-01-01 9999-12-31
    datetime 8 1000-01-01 00:00:00 9999-12-31 23:59:59
    timestamp 4 19700101080001 2038年的某个时刻
    time 3 -838::59:59 838::59:59
    year 1 1901 2155

     

     

     

     

     

     

     

     

     

     

     

     

    1. timestamp支持的时间范围较小,取值范围:19700101080001~2038年的某个时间

     datetime的取值范围:1000-1-1~9999-12-31

    2. timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入时的当地时区

    3. timestamp 的属性受mysql版本和sqlmode的影响很大

    create table tab_time(

                 t1 datetime,

                 t2 timestamp

    );

    总结:

    date 只保存日期

    time 只保存时间

    year 只保存年

    datetime 保存日期+时间

    timestamp 保存日期+时间

     

     

    特点:

    数据类型 字节 范围 时区等的影响
    datetime 8 1000-9999 不受
    timestamp 4 1970-2038

     

     

     

     

     

     

    Jasminelee
  • 相关阅读:
    _getch()函数的一些使用方法
    键盘敲击(keyboard hit)
    计时 GetTickCount() 函数的作用和用法
    1
    关于COLORREF的定义及用法
    C++字符串大小写转换的库函数
    数楼梯(斐波那契数列+高精度)
    回文数(内含高精度加法,字符串是否为回文的判断)
    最短路径Dijkstra算法
    经典八大排序
  • 原文地址:https://www.cnblogs.com/Jasmine6-Lee/p/12721294.html
Copyright © 2020-2023  润新知