MySQL支持的数据类型
 
1.数值类型:
 
    a.整数类型 
 
TINYINT 1字节
有符号(-128~127);
无符号(0~255)
SMALLINT 2字节 
有符号(-32768~32767);
无符号(0~65535)
MEDIUMINT 3字节  
INT , INTEGER 4字节  
BIGINT 8字节  
                    
    b.浮点类型
 
FLOAT 4字节  
DOUBLE 8字节  
 
 c.定点数类型    
 
DEC(M,D) (M+2)字节  
DECIMAL(M,D) (M+2)字节  
 
d.位类型
 
BIT(M) 1~8字节 BIT(1)~BIT(64)
 
 
⚠️注意:
    1).AUTO_INCREMENT 属性只能定义在整数类型的column上,并且该字段要定义为NOT NULL 以及必须是PRIMARY KEY 或者是UNIQUE ;
    2).如果某一列定义ZEROFILL, 那么MySQL会自动添加UNSIGNED属性,即该列是无符号的。
    3).定位数中, M代表:一共显示M位数字;D是指小数位有D个数字;
       浮点数使用 (M,D)这种用法是非标准的,如果进行数据库的迁移,最好不要这么使用.
       FLOAT和DOUBLE的默认精度是由硬件和操作系统决定的;DECIMAL默认整数位为10,小数位为0;
       如果插入数据范围超过了限制范围(小数部分)
        如果是浮点型,会进行四舍五入
        如果是定位型,在SQLMode模式下无法插入记录;在非SQLMode模式,会弹出warning,数据按照四舍五入
       ;整数部分应该会报错 todo;
    4).BIT(M),M取值范围1~64,默认为1.用于保存二进制数据.例如BIT(1) 可以保存0和1,但是无法保存2,因为2在二进制中是10,占两位,报错;
        使用SELECT不能直接正常显示BIT类型数据,序号借助BIT() 或HEX()函数进行显示.
 
    
2.日期类型
 
DATE 4字节
DATETIME 8字节
TIMESTAMP 4字节
TIME 3字节
YEAR 1字节
 
注意:
    表中第一个TIMESTAMP类型的数据默认值为CURRENT_TIMESTAMP,后面如果还有该类型,默认值为0;
也就是说一个表中最多只能有一个默认值为CURRENT_TIMESTAMP的TIMESTAMP类型的字段.
    TIMESTAMP 会受时区影响,而DATETIME不会.
    SHOW VARIABLES LIKE 'time_zone' ;
    SET time_zone = '+9:00';
    TIMESTAMP最多能存到2038年的某一天,所以不适合存太久远的时间.如果溢出,系统会使用0000-00-00 00:00:00 进行填补.
 
 
3.字符串类型    
 
CHAR(M) M字节 M取值范围:0~255
VARCHAR(M)     M取值范围:0~65535
TINIBLOB    
BLOB    
MEDIUMBLOB    
LONGBLOB    
TINYTEXT    
TEXT    
MEDIUMTEXT    
LONGTEXT    
VARBINARY(M)    
BINARY(M) M字节  
NOTE :
    CHAR类型会去掉数据后面的空格;VARCHAR类型则会保留.
 
    BINARY和VARBINARY 与CHAR/VARCHAR 区别是前者包含二进制字符串,而后者不包含
        CREATE TABLE t (c BINARY(3)) ;
        INSERT INTO t SET c='a'; --注意插入语句与数值型的不同
        SELECT * , HEX(c) , c='a' , c='a\0' , c='a\0\0' FROM t ;
 
4.枚举类型ENUM
    对于第1~255个成员的枚举,需要1个字节存储;
    对于255~65335个成员需要2个字节来存储.
 
    枚举类型对数据是忽略大小写的.
    如果插入不在范围,则默认插入第一个值.
 
    ENUM类型只允许从值集合中选取单个值,不可以一次取多个值.
 
        CREATE TBALE t (gender ENUM('M','F'));
        INSERT INTO t VALUES('M'),('1'),('f'),(NULL);
    
 
5.SET类型
    存储方式:
 
1~8个成员 占1个字节
9~16个成员 占2个字节
17~24个成员 占3个字节
25~32个成员 占4个字节
33~64个成员 占8个字节
 
    SET类型与ENUM类型除了存储方式,最大的区别就是 SET可以一次性选取多个成员.
 
        CREATE TBALE t (col SET('a','b','c','d'));
        INSERT INTO t VALUES('a,d,a'),('a,b'),('c');
        --其中'a,d,a'会被去重,真正存储的是'a,d'
        
 

04 MySQL数据类型的更多相关文章

  1. MySQL 数据类型 详解

    MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...

  2. 浅谈MySQL数据类型

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 一.数值类型 MySQL支持所有标 ...

  3. mysql数据类型(三)

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准S ...

  4. Mysql 数据类型、约束类型

    mysql数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型.   数值类型 MySQL支持所有标准 ...

  5. MySQL数据类型以及基本使用详解

    MySQL数据类型以及基本使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL服务器的主要组件 我们知道MySQL的主要组件主要是由服务端(mysqld)和客户端 ...

  6. 数据库-mysql数据类型

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准S ...

  7. 2-14-2 MySQL数据类型

    MySQL数据类型: 对数据进行分类,针对不同分类进行不同的处理. 1. 使系统能够根据数据类型来操作数据. 2. 预防数据运算时出错. 3. 更有效的利用空间. 数据分类,可以使用最少的存储,来存放 ...

  8. 2.MySQL 数据类型

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准S ...

  9. 八、MySQL 数据类型

    MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型 MySQL支持所有标准S ...

随机推荐

  1. [USACO 08MAR]土地购买

    Description 题库链接 给你 \(n\) 块不同大小的土地.你可分批购买这些土地,每一批价格为这一批中最大的长乘最大的宽.问你买下所有土地的花费最小为多少. \(1\leq n\leq 50 ...

  2. AJAX请求返回JSON数据动态生成html

    1:DeliveryPersonVO对象 package com.funcanteen.business.entity.delivery.vo; import java.util.List; impo ...

  3. 解决在高分屏下开发winform界面变形

    Form.AutoScaleMode = AutoScaleMode.None; 需要在超大屏下显示的时候,再考虑 AutoScaleMode.Font; AutoScaleMode.Dpi;

  4. 题解 AT1219 【歴史の研究】

    莫队 简单分析:题面含有IOI(惊),可知此题是IOI(数字三角形)难度(逃). 思路:回滚莫队 当然很多人都是抱着学回滚莫队的目标来看这道题的,所以这里介绍一下回滚莫队. 1.按莫队的思路讲询问排序 ...

  5. JS中的原始类型和判断方法

    ECMAScript 中定义了 7 种原始类型: Boolean String Number Null Undefined Symbol(新定义) BigInt(新定义) 注意: 原始类型不包含 Ob ...

  6. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:表示一个危险的操作

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. phpQuery的使用

    前言 为什么使用phpQuery phpQuery是基于php5新添加的DOMDocument.而DOMDocument则是专门用来处理html/xml.它提供了强大的xpath选择器及其他很多htm ...

  8. AJAX的表单请求POST请求方式

    表单数据的提交 action : 数据提交的地址,默认是当前页面 method : 数据提交的方式,默认是get方式 post: 把数据名称和数据值用=连接,如果有多个的话,那么他会把多个数据组合用& ...

  9. 学成在线(第17天)用户认证 Zuul

    用户认证 用户认证流程分析 用户认证流程如下: 业务流程说明如下: 1.客户端请求认证服务进行认证.2.认证服务认证通过向浏览器cookie写入token(身份令牌)认证服务请求用户中心查询用户信息. ...

  10. 解决maven项目创建过慢的问题,一直resolving dependencies...

    ##方法一: 1.在创建项目时设置其Properties (我大多在创建项目时 就解决这个问题) 创建项目的时候,在Properties属性面板中添加一项:archetypeCatalog = int ...