MySQL 数据类型

简介

MySQL 提供了多种数据类型,主要包括数值型,字符串类型,日期和时间类型。学习使用官方帮助文档才是王道,那么怎么在帮助文档中查找数据类型相关内容呢?正确的姿势:

? contents;
? data types;
? bigint;

数值类型

MySQL 支持的数值类型有:严格数值类型(INTEGER, SMALLINT,DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT,REAL 和 DOUBLE PRECISION),并在此基础上做了扩展。扩展后增加了 TINYINT、MEDIUMINT 和 BIGINT 这三种长度不同的整形,并增加了 BIT 类型,用来存放位数据。
对于小数的表示,MySQL 分为两种方式:浮点数和定点数。浮点数包括 float(单精度)和 double(双精度),而定点数则只有 decimal 一种表示。定点数在 MySQL 内部以字符串形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。浮点数和定点数都可以用类型名称后加“(M,D)”的方式来进行表示,"(M,D)" 表示该值一共显示 M 位数字(整数位+小数位),其中 D 位位于小数点后面,M 和 D 又称为精度和标度。MySQL 保存值时进行四舍五入,因此如果在 float(7,4) 列内插入 999.00009,近似结果是 999.0001。float 和 double 在不指定精度时,默认会按照实际的精度(由实际的硬件和操作系统决定)来显示,而 decimal 在不指定精度时,默认的整数位为 10,默认的小数位为 0。
对于 BIT(位)类型,用于存放位字段值,BIT(M) 可以用来存放多位二进制数,M 范围从 1~64,如果不写则默认为 1 位。对于位字段,直接使用 select 命令将不会看到结果,可以使用 bin()(显示为二进制格式)或者 hex()(显示为十六进制格式)函数进行读取。例如:select bin(id), hex(id) from t2

日期和时间类型

时间日期类型有:time, date, year, datetime, timestamp

字符串类型

字符串类型有:char,varchar,binary,varbinary,enum,set
例子:

  1. 创建枚举字段(枚举字段值范围必须在创建时指定):create table ttt(gender enum('M', 'F')); 。注意:对于插入不在 ENUM 指定范围内的值时,并不会返回警告,而是插入 ENUM 指定范围内的第一个值;另外,插入的值是不区分大小写的(例如:'M' 和 'm')。
  2. 创建集合字段:create table ttt2(col set('a', 'b', 'c', 'd'));,插入数据:insert ttt2 values('a, b'), ('a, b, d'), ('a, b, a');
posted @ 2017-07-09 16:57  clearbug  阅读(217)  评论(0编辑  收藏  举报