• MySQL的数据类型


    数据类型:

    1. 整数

      类型 大小 范围(有符号) 范围(无符号) 用途
      TINYINT 1 字节 (-128,127) (0,255) 小整数值
      SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
      MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
      INT或INTEGER 4 字节
      BIGINT 8 字节

      注意事项:

      1. 默认情况,整数是有符号的,(可通过unsigned去设置为无符号整型)

      2. 存入的数据值 超过数据类型表示的最大范围时,会自动取最大值。

        • 查看局部环境变量,即当前连接的环境变量。@@,例如:select @@sql_mode;

        • 查看全局环境变量,即所有连接的环境变量。@ ,例如:select @sql_mode;

        • 解决办法:设置严格模式(可写入配置文件)。

           set sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
          

        指定长度:int(长度)

    2. 浮点

      类型 大小 范围(有符号) 范围(无符号) 用途
      FLOAT 4 字节 可以精确到大约5位 单精度
      浮点数值
      DOUBLE 8 字节 比float更精确 双精度
      浮点数值
      DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2。M最大为65,D最大为30 小数值
    3. 字符串

      类型 大小 特点 优点 用途
      CHAR 0-255字节 定长 效率高,消耗空间 定长字符串
      VARCHAR 0-65535 字节 可变长度 效率低,节省空间 变长字符串
      BLOB 0-65 535字节 二进制形式的长文本数据
      TEXT 0-65 535字节 长文本数据
      LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
      LONGTEXT 0-4 294 967 295字节 极大文本数据

      mysql一般不存储大型的多媒体数据,一般都存储媒体数据的地址指向其他服务器的地址。

      PS:char(10) 表示存储10个字符;int(10) 表示显示的数据长度。如下示例:

      # 创建t9表
      mysql> create table t9 (age int(3));
      Query OK, 0 rows affected (0.46 sec)
      
      mysql> insert into t9 values(1);
      Query OK, 1 row affected (0.04 sec)
      
      mysql> insert into t9 values(1111);
      Query OK, 1 row affected (0.29 sec)
      
      # 能插入大于3位的整数
      mysql> select * from t9;
      +------+
      | age  |
      +------+
      |    1 |
      | 1111 |
      +------+
      2 rows in set (0.00 sec)
      
      # 更改age字段的属性
      mysql> alter table t9 modify age int zerofill;
      Query OK, 2 rows affected (0.79 sec)
      Records: 2  Duplicates: 0  Warnings: 0
      
      mysql> select * from t9;
      +------------+
      | age        |
      +------------+
      | 0000000001 |
      | 0000001111 |
      +------------+
      2 rows in set (0.00 sec)
      
      # 更改age字段的属性
      mysql> alter table t9 modify age int(4) zerofill;
      Query OK, 0 rows affected (0.30 sec)
      Records: 0  Duplicates: 0  Warnings: 0
      
      mysql> select * from t9;
      +------+
      | age  |
      +------+
      | 0001 |
      | 1111 |
      +------+
      2 rows in set (0.00 sec)
      
      # 由此可见,int(4)表示显示4位长度数据时,不足的部分是被填充了,再我们使用zerofill约束之后,观点得到了验证
      
    4. 日期和时间和时间戳

      类型 大小 范围 格式 用途
      YEAR 1 1901/2155 YYYY 年份
      DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 年月日
      TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
      DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
      TIMESTAMP 4 混合日期和时间值,时间戳

      TIMESTAMP类型,同列的字段被更改之后,类型为TIMESTAMP的字段时间会被更新

    5. 枚举和集合

      集合

      类型 大小 最大成员数量 范围(无符号) 用途
      set 1/2/3/4/8,取决与集合成员的数量 64

      特点:

      ​ 可一选多

      枚举

      类型 大小 最大成员数量 范围(无符号) 用途
      enum 1or2,取决枚举成员的数量 65535

      特点:

      ​ 只能一选一

  • 相关阅读:
    VMware安装虚拟机(Ubuntu)
    鼠标拖拽事件
    css层叠样式表
    html--form表单常用操作
    python学习之HTML-table标签
    python之web前端day01
    字符串各种操作,关于字符串的内置函数
    正则中匹配次数的问题
    re模块
    Github网站打不开的问题
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/11170153.html
Copyright © 2020-2023  润新知