• 数据库数据类型


    07.14自我总结

    MYSQL数据库数据类型

    一.整数类型和浮点数典型

    1.有符号/没符号

    对于整数和负整数来说,默认情况下是有符号范围的

    默认有符号

    有符号和没符号其实就是有没有包括负数,有符号是包括负数的

    设置成无符号:

    alter table 表名 变量名 数据类型 unsigned;

    严格模式 非严格模式
    有符号 (-,+) 超出范围会报错 (-,+) 超出范围取极值
    无符号 (0,+) 超出范围会报错 (0,+) 超出范围取极值

    2.严选/非严选

    我们不推荐使用非严格模式下建立table,因为它会可能造成数据丢失的情况,所以我们必须在5.6版本中将mysql设置为严格模式。

    方法一:select@@sql_mode; @表示全局变量;@@表示会话级变量(局部)

    ​ 临时设置set @@sql_mode ='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ';

    方法二:直接修改配置文件;

    ​ [mysqld]

    ​ sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 并重启服务端mysql后生效.

    • 严选情况下,数据超过他的设置范围他会报错

    • 非严选情况下,数据超过他的设置范围不会报错,但是只存他设置大小的那一部分的数据,多余的会丢掉

    3.常见的类型

    1.整数型

    数据类型 字节数 符号范围 有符号范围
    TINYINT 1 0~255 -128~127
    SMALLINT 2 0~65535 -32768~32767
    MEDIUMINT 3 0~16777215 -8388608~8388607
    INT 4 0~4294967295 -2147483648~2147483647
    BIGINT 8 0~18446744073709551615 -9223372036854775808
    ~9223372036854775807

    2.浮点型

    数据类型 字节数 符号范围 有符号范围
    float 4 1.175494351E-38
    ~3.402823466E +38
    -3.402823466E+38~
    -1.175494351E-38
    double 8 2.2250738585072014E-308
    ~1.7976931348623157E+308
    -1.7976931348623157E+308
    ~-2.2250738585072014E- 308
    decimal[(M[,D])] 最大与
    double相同
    不固定 不固定 10.2 decimal(3,1);

    二.字符串类型

    1.char 与varchar

    char:定长字符串,字符长度0-255个字节之间,存储时占用固定字节空间

    相对于varchar来讲

    优点: 读取存储速度快于varchar

    varchar:可变长度字符串,字符长度在0-65532个字节,存储式占用空间实际字节长度+1,而+1是存的他的长度

    原因:因为char我们如果规定6,然后输入3个字符,他后面的内容会用宫格来填充,而varchar不会用空格填充,所有存的时候空间节省了,而读的时候需要发送字符的数量所有读取会变慢

    2.binary 与 varbinary

    BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要二进制字符串
    输入值的和char 与varchar差不多的填充效果

    3.text与blob

    blob:没有编码的二进制大字符串.(了解即可)

    text:具备编码的大字符串;

    都有四种

    • tinyblob,tinytext:
    • blob,text
    • mediumblob,mediumtext
    • longblob,longtext

    4.enum与set

    规定这个里面输入内容是什么,你可以输入他的内容,也可以输入他的索引

    enum与set区别,enum只能输一个,set能输入一个或多个,且用集合的形式输入

    **注意: mysql会自动将字符串后面的空格删掉 所以你的数据在存储前应该先把空格处理掉 **

    三.时间类型

    • year :格式YYYT

    • data:格式YYYY-MM-DD

    • time:格式HH:MM:SS

    • datatime:格式YYYY-MM-DD HH:MM:SS

    • timestamp :格式YYYY-MM-DD HH:MM:SS (不用输入默认为数据插入时候的插入时间)

    注意:

    • 0-69 翻译为 2000-2069; 70-99 翻译为1790-1999
    • year、date、time既可以用字符串也可以用数字输入值;current_time和now()输入系统当前日期
    • time不仅可以表示一天的时间,也可以表示两个时间的时间间隔
    • 'D HH:MM:SS'格式的字符串,D表示日(0-34),HH的实际值为D*24+HH
    • datetime、timestamp只能以字符串形式输入
    • 在使用timestamp时,输入current_timestamp输入系统当前日期和时间
    • 在使用timestamp时,输入null或不输入,系统会自动输入当前日期和时间

  • 相关阅读:
    佛教-著作:《般若泼若密心经》
    学科-几何:分形几何学
    战国-散文:《生于忧患,死于安乐》
    北宋-词:《临江仙·送王缄》
    音乐:《河西走廊之梦》
    影视-纪录片:《河西走廊》
    汉语-汉字:黾
    动物-昆虫:水螳螂
    动物-昆虫:水黾
    主程的晋升攻略(3):IP、DNS和CDN
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11185174.html
Copyright © 2020-2023  润新知