【深入浅出MySQL-03 数据类型】

数值类型

如下是mysql支持的数据类型

对于整型数据,MySQL还支持在类型后面的小括号内显示指定宽度,如果数值宽度小于指定宽度时前面会进行填充,默认宽度为11

整数属性:

1、unsigned 如果需要在字段里面保存非负数或者需要较大的上限值时,可以使用此选项

2、auto_increment 这个属性只能用于整数类型。一个表中最多只能有一个列设为auto_increment,此外还需要将列定义为not null,将该列定义为primary key或者unique键

对于小数的表示,MySQL分为两种方式:浮点数和定点数。浮点数包括float,double,而定点数则包括decimal,定点数在MySQL内部以字符串形式存放,比浮点数更精确。

浮点数和定点数都可以用类型名称后加"(M,D)"的方式进行表示,表示该值一共显示M位数字,其中D位位于小数点后面,M和D分别称为精度和标度。


浮点数如果不写精度和标度,则会按照实际精度显示,如果有精度和标度,则会自动将四舍五入后的结果插入;定点数如果不写精度和标度,则按照默认值decimal(10,0)来进行操作

位类型用于存放位字段值,默认存放1位,对于位类型,直接使用select命令将不会看到结果,可以使用bin()或者hex()进行读取。

日期时间类型

对于timestamp,系统会默认用当前时间戳进行插入。

但如果表中有第二个字段类型为timestamp,则默认值为0;MySQL规定timestamp类型字段只能有一列的默认值为current_timestamp,如果强制修改,系统会报错误。

此外,timestamp还和时区相关,当插入日期或者取出日期时,会先转换为本地时区

timestamp和datetime主要有一下的一些区别:

year类型主要用来表示年份

日期插入格式,以Datetime为例进行说明:

1、YYYY-MM-DD HH:MM:SS 或者YY-MM-DD HH:MM:SS格式的字符串,该格式并不严格,任何标点符都可以做日期部分或时间部分之间的间隔符,比如 '1998.12.21 11+32+23'

2、YYYYMMDDHHMMSS或者YYMMDDHHMMSS格式的字符串,字符串必须是合法有意义的

3、YYYYMMDDHHMMSS或者YYMMDDHHMMSS格式的数字,同样必须是合法且有意义的。

4、函数返回的结果。

字符串类型

char和varchar用于保存较短的字符串,char是长度固定的字符串,varchar则是可变字符串,char会删除字符串末尾的空格,而varchar则会保留空格。

binary和varbinary类似于char和varchar,不同的是它们包含二进制字符串而不包含非二进制字符串,当保存binary值时,在值的最后通过填充'0x00'已达到指定的字段定义长度

enum类型也就是枚举类型,需要在建表时通过枚举方式显式指定,enum类型是忽略大小写的。

set类型和enum类型非常相似,也是一个字符串对象,主要的区别在于set类型可以一次选取多个成员

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大...
    garvin阅读 593评论 0 1
  • 良好的逻辑设计和物理设计是高性能的基石, 应该根据系统将要执行的查询语句来设计schema, 这往往需要权衡各种因...
    好好学习Sun阅读 498评论 0 2
  • 本文基于MySQL5.6版本进行描述从大的方面来讲,MySQL的数据类型分为4种 数值类型 日期和时间 字符串类型...
    黑哥儿666阅读 778评论 0 0
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,067评论 0 19
  • MySQL数据库对象与应用 2.1-MySQL数据类型 库建立好之后基本不动,和我们接触最频繁的是表. 建表就是声...
    极客圈阅读 2,181评论 0 8