一、数值类型
- 整数
- bit 类型字段
- 小数 (1)浮点数 (float 和double型)
(2) 定点数 (decimal一种)
浮点数和定点数都可以用类型名称后加上(M,D)的方式来进行表示,(M,D)表示该值一共显示M位数字(整数位+小数位),其中D位位于小数点后面,M和D分别称为精度和标度。
注意: 浮点数后面跟(M,D)不是标准用法,如果要用于数据库的迁移,组好不要这么使用。
decimal在不指定精度时,默认的整数位为10,默认的小数位为0.
浮点数如果不写精度和标度,则会按照实际精度值显示,如果有,就会四舍五入进行插入,不会报错;
定点数如果不写精度和标度,则默认按照(10,0)来进行操作,并且如果数据超越了精度和标度值,系统则会报错。
输入:
输出:
对于bit 类型字段:利用bin()或者hex()函数
bit(M)可以存放多维二进制,M范围从1-64,如果不写则默认为1位。对于位字段,直接使用select命令将不会看到结果,可以用bin() (显示二进制格式)或者hex()(显示十六进制格式)函数进行读取。
直接select结果:(一堆笑脸)
用函数之后:
数据插入bit 字段时,首先转换为二进制,如果维数允许,将成功插入;如果维数小于实际定义的维数,则插入失败。
二、日期时间类型
通常情况下:
(1)年月日, 用DATE来表示(注意:not data ,总是喜欢写错)
(2)年月日时分秒 ,用DATETIME来表示
(3)时分秒,用TIME来表示
(注意:如果只表示年份,可以用YEAR来表示,它比DATE占用更少的空间)
用now()函数插入当前日期:
显示结果如下:
下面区分一下timestamp 和datetime
(1) timestamp 类型字段只能有一列的默认值为current_timestamp,如果强制修改会报错。
(2)timestamp和失去有段,当插入日期时,会先转换为本地时区然后存放。
查看本地时区,SYSTEM表示的是T8时区(东八区)
现在我改成了T9时区,结果如下:(明显发现T9比T8快了一个小时)
三、字符串类型
参考书目:全部参考《深入浅出MySQL》(第二版)--唐汉明