MySQL的字段类型_mysql数据库字段类型

MySQL的字段类型_mysql数据库字段类型前言:要了解一个数据库,我们必须了解其支持的数据类型。MySQL支持大量的字段类型,其中常用的也有很多。前面文章我们也讲过int及varchar类型的用法,但一直没有全面讲过字段类型,本篇文章我们将把字段类型一网打尽,讲一讲常用字段类型的用法。常用的字段类型大致可以分为数值类型、字符串类型、日期时间类型三大类,下面我们按照分类依次来介绍下。1.数值类型数值类型大类又可以分为整型、浮点型、…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言:

要了解一个数据库,我们必须了解其支持的数据类型。MySQL 支持大量的字段类型,其中常用的也有很多。前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇文章我们将把字段类型一网打尽,讲一讲常用字段类型的用法。

常用的字段类型大致可以分为数值类型、字符串类型、日期时间类型三大类,下面我们按照分类依次来介绍下。

1.数值类型

数值类型大类又可以分为整型、浮点型、定点型三小类。

整型主要用于存储整数值,主要有以下几个字段类型:

4b767afff568d3c38a79e1d655ea1ec4.png

整型经常被用到,比如 tinyint、int、bigint 。默认是有符号的,若只需存储无符号值,可增加 unsigned 属性。

int(M)中的 M 代表最大显示宽度,并不是说 int(1) 就不能存储数值10了,不管设定了显示宽度是多少个字符,int 都是占用4个字节,即int(5)和int(10)可存储的范围一样。

存储字节越小,占用空间越小。所以本着最小化存储的原则,我们要尽量选择合适的整型,例如:存储一些状态值或人的年龄可以用 tinyint ;主键列,无负数,建议使用 int unsigned 或者 bigint unsigned,预估字段数字取值会超过 42 亿,使用 bigint 类型。

浮点型主要有 float,double 两个,浮点型在数据库中存放的是近似值,例如float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位,整数部分最大是3位。 float 和 double 平时用的不太多。

39b85bd197ba68152a7108afa1fda898.png

定点型字段类型有 DECIMAL 一个,主要用于存储有精度要求的小数。

1df3304dff908976a5114a260614627c.png

DECIMAL 从 MySQL 5.1 引入,列的声明语法是 DECIMAL(M,D) 。 NUMERIC 与 DECIMAL 同义,如果字段类型定义为 NUMERIC ,则将自动转成 DECIMAL 。

对于声明语法 DECIMAL(M,D) ,自变量的值范围如下:M是最大位数(精度),范围是1到65。可不指定,默认值是10。

D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。

例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中的值的范围是从-999.99到999.99。

2.字符串类型

字符串类型也经常用到,常用的几个类型如下表:

701e842bd6cd19c6e6bcc1fef0e11961.png

其中 char 和 varchar 是最常用到的。char 类型是定长的,MySQL 总是根据定义的字符串长度分配足够的空间。当保存 char 值时,在它们的右边填充空格以达到指定的长度,当检索到 char 值时,尾部的空格被删除掉。varchar 类型用于存储可变长字符串,存储时,如果字符没有达到定义的位数,也不会在后面补空格。

char(M) 与 varchar(M) 中的的 M 表示保存的最大字符数,单个字母、数字、中文等都是占用一个字符。char 适合存储很短的字符串,或者所有值都接近同一个长度。例如,char 非常适合存储密码的 MD5 值,因为这是一个定长的值。对于字符串很长或者所要存储的字符串长短不一的情况,varchar 更加合适。

我们在定义字段最大长度时应该按需分配,提前做好预估,能使用 varchar 类型就尽量不使用 text 类型。除非有存储长文本数据需求时,再考虑使用 text 类型。

BLOB 类型主要用于存储二进制大对象,例如可以存储图片,音视频等文件。日常很少用到,有存储二进制字符串时可以考虑使用。

3.日期时间类型

MySQL支持的日期和时间类型有 YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP,几种类型比较如下:

8169672a588da85aad9692a3e4aade8c.png

涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可。

关于 DATETIME 与 TIMESTAMP 两种类型如何选用,可以按照存储需求来,比如要求存储范围更广,则推荐使用 DATETIME ,如果只是存储当前时间戳,则可以使用 TIMESTAMP 类型。不过值得注意的是,TIMESTAMP 字段数据会随着系统时区而改变但 DATETIME 字段数据不会。总体来说 DATETIME 使用范围更广。

总结:

本篇文章主要介绍了 MySQL 中常用的字段类型,平时用到的字段类型基本都在这里了,以一张思维导图总结如下:

1025d55a4c66e52cc2fee8bb357806ab.png

519c9b74b951b4d53a6030e81be1b169.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196805.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac怎么上传文件到服务器_shell上传文件到服务器

    mac怎么上传文件到服务器_shell上传文件到服务器前言我们使用mac时,想让本地文件上传至服务器,该怎么办呢windows系统,我们可以使用xftp或者rz命令,那么mac呢?mac系统,我们可以使用sftp、scp或者rz命令,本文介绍sft

    2022年7月28日
    28
  • 二级反渗透1T/H二级反渗透纯水机 纯净水反渗透设备 反渗透设备

    反渗透技术原理反渗透技术是美国六十年代后期为解决宇航员在太空的饮水问题而研制的高新技术,也是目前的膜分离技术。简单地说,反渗透装置是利用半透膜在压力差的作用下使含盐水脱盐纯化的设备,它能有效地去除水中的无机盐、细菌、病毒、色素、热源、重金属离子及农药、化肥、清洁剂、胶体物质等污染物。反渗透膜孔径非常小,一般在2-10埃左右,而水中的各种离子杂质的直径约为几十埃,病毒、细菌的直径为几百至几十万埃,因此这些物质都是无法透过反渗透膜的,被截止在膜的浓水端,随浓水排出,透过反渗透膜的即是无菌,无毒害且富氧的纯净

    2022年4月17日
    47
  • MATLAB画图使用不同的颜色

    MATLAB画图使用不同的颜色1.自动使用不同的颜色plot(x1,y2,x2,y2,x3,y3,…);此方法比较简单,能满足一般需要。但默认只能在7种颜色之间循环,具体的颜色可通过以下命令查看get(gca,’ColorOrder’)具体实例:x1=linspace(1,10,100);y1=sin(x1);y2=cos(x1);y3=1./(x1);plot…

    2022年5月22日
    351
  • 怎么让联想计算机升级,联想电脑怎么升级win11?联想电脑升级win11的几种方法…

    怎么让联想计算机升级,联想电脑怎么升级win11?联想电脑升级win11的几种方法…最近刚发布的windows11的消息,但是很多朋友使用联想电脑的朋友不知道怎么升级win11。戴尔电脑升级win11的方法有很多,可以通过win10系统加入WINDOWS预览体验计划,这样就可以将win10升级到win11系统了,也可以采用自己下载win11镜像用u盘的方式升级到win11系统,下面小编就教大家几种将联想电脑升级win11的方法详细步骤。联想电脑升级win11方法一:官方升级法,…

    2022年5月20日
    116
  • Java实现文件下载

    Java实现文件下载Java实现文件下载

    2022年7月8日
    24
  • html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码

    html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码一、前期准备1.1案例分析适用场景:单例布局1.2方法论V视图HTML+CSS+调试Cjs实现控制流程D数据优化扩展二、代码结构h2captionh3caption样式(CSS略)脚本功能开发>>内容输出Template改造输出幻灯片&控制按钮图片位置调整>>切换控制切换幻灯片.main_i_active切换控制按钮.ctrl…

    2022年7月13日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号