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. 什么是Socket:

    先了解一些前提: 网络由下往上分为 物理层 .数据链路层 . 网络层 . 传输层 . 会话层 . 表现层 和 应用层.通过初步了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对 ...

  2. LeetCode 19. Remove Nth Node From End of List(删除链表中倒数第N个节点)

    题意:删除链表中倒数第N个节点. 法一:递归.每次统计当前链表长度,如果等于N,则return head -> next,即删除倒数第N个节点:否则的话,问题转化为子问题“对head->n ...

  3. 3D_solarSys

    计算机图形学_3DsolarSys 一.软件功能        1.实现3D太阳系,有太阳.土星.土星环.地球.月球.天王星.海王星.火星.其中土星.地球.天王星.海王星.火星绕着太阳转,土星环绕着土 ...

  4. iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)

    转:http://my.oschina.net/joanfen/blog/151145 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下 ...

  5. Linux centosVMware LAMP php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm进程管理

    一.php-fpm的pool vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加 include = etc/php-fpm.d/*.conf mkd ...

  6. Linux centosVMware apache 限定某个目录禁止解析php、限制user_agent、php相关配置

    一.限定某个目录禁止解析php 核心配置文件内容 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 先创建.编辑一个php 配置 vim /u ...

  7. 解决 U2000 R017 安装报错: 检查SQL server数据库环境变量信息 ( 异常 ) [ 详细信息 ] PATH环境变量中缺少数据库路径的信息

    U2000 R017 安装报错: 检查SQL server数据库环境变量信息 ( 异常 ) [ 详细信息 ] PATH环境变量中缺少数据库路径的信息 管理员模式打开注册表位置: HKEY_LOCAL_ ...

  8. 设计模式课程 设计模式精讲 12-2 适配器模式coding

    1 重要 1.1 类适配器和对象适配器最大的区别 2 代码演练 2.1 代码演练1(类适配器模式) 2.2 代码演练2(对象适配模式) 2.3 代码演练3(具体应用场景) 1 重要 1.1 类适配器和 ...

  9. Flutter | 状态管理特别篇——Provide

    前言 今天偶然发现在谷歌爸爸的仓库下出现了一个叫做flutter-provide的状态管理框架,2月8日才第一次提交,非常新鲜.在简单上手之后感觉就是一个字--爽!所以今天就跟大家分享一下这个新的状态 ...

  10. pytorch神经网络解决回归问题(非常易懂)

    对于pytorch的深度学习框架,在建立人工神经网络时整体的步骤主要有以下四步: 1.载入原始数据 2.构建具体神经网络 3.进行数据的训练 4.数据测试和验证 pytorch神经网络的数据载入,以M ...