数据类型:定义列中可以存储什么数据以及该数据实际怎样存储的基本规则。

数据类型用于以下目的:

1、允许限制可存储在列中的数据。如:数值数据类型列只能接受数值。

2、允许在内部更有效地存储数据。如:用比文本串更简洁的格式存储数值和日期时间值。

3、允许变换排序顺序。如:数据都作为串处理,则1位于10前,10位于2前(串以字典顺序排序,从左边开始比较,一次一个字符);作为数值数据类型,数值才能正确排序。

一、串数据类型

最常用的数据类型,存储串,如名字、地址、电话号码等。

两种基本的串类型:定长串和变长串。

定长串:接受长度固定的字符串,其长度是在创建表时指定的。定长列不允许多于指定的字符数目,它们分配的存储空间与指定的一样多。如:CHAR。

变长串:存储可变长度的文本。有些变长数据类型具有最大的定长,有些则是完全变长的,不管是哪种,只有指定的数据会得到保存(额外的数据不保存),如:TEXT。

PS:MySQL处理定长列远比处理变长列快得多。且MySQL不允许对变长列(或一个列的可变部分)进行索引。

数据类型说明:

CHAR:1~255个字符的定长串。长度必须在创建时指定,否则MySQL假定为CHAR(1)。

ENUM:接受最多64K个串组成的一个预定义集合的某个串。

LONGTEXT:与TEXT相同,但最大长度为4GB。

MEDIUMTEXT:与TEXT相同,但最大长度为16 K。

SET:接受最多64个串组成的一个预定义集合的零个或多个串。

TEXT:最大长度为64 K的变长文本。

TINYTEXT:与TEXT相同,但最大长度为255字节。

VARCHAR:长度可变,最多不超过255字节。如创建时指定为VARCHAR(n),则可存储0到n个字符的变长串(其中n≤255)。

PS:

1、引号:使用何种形式的串数据类型,串值都必须括在引号内(通常使用单引号)。

2、须遵守的基本规则:如果数值是计算(求和、平均等)中使用的数值,则存储在数值数据类型列中。如果数值作为字符串使用,则保存在串数据类型列中。如:在数值字段中存储邮政编码01234,保存的是数值1234,丢失了一位数字。

二、数值数据类型

存储数值。MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。

支持的取值范围越大,所需存储空间越多。此外,有的数值数据类型支持使用十进制小数点(和小数),而有的则只支持整数。表D-2列出了常用的MySQL数值数据类型。

PS:

1、所有数值数据类型(除BIT和BOOLEAN外)都可以有符号或无符号。有符号数值列可以存储正或负的数值,无符号数值列只能存储正数。

2、默认情况为有符号,若不需要存储负值,可以使用UNSIGNED,这样做将允许你存储两倍大小的值。

3、与串不同,数值不应该在引号内。

4、MySQL中没有专门存储货币的数据类型,一般情况下使用DECIMAL(8, 2)。

数据类型说明:

BIT:位字段,1~64位。在MySQL 5之前,BIT在功能上等价于TINYINT。

BIGINT:整数值,支持-9223372036854775808~9223372036854775807。如果是UNSIGNED,为0~18446744073709551615的数。

BOOLEAN(或BOOL):布尔标志,为0或者为1,主要用于开/关(on/off)标志。

DECIMAL(或DEC):精度可变的浮点值。

DOUBLE:双精度浮点值

FLOAT:单精度浮点值

INT(或INTEGER):整数值,支持-2147483648~2147483647,UNSIGNED同上。

MEDIUMINT:整数值,支持-8388608~8388607,UNSIGNED同上。

REAL:4字节的浮点值。

SMALLINT:整数值,支持-32768~32767,UNSIGNED同上。

TINYINT:整数值,支持-128~127,UNSIGNED同上。

三、日期和时间数据类型

数据类型说明:

DATE:表示1000-01-01~9999-12-31的日期,格式为YYYY-MM-DD。

DATETIME:DATE和TIME的组合。

TIMESTAMP:功能和DATETIME相同,但范围较小。

TIME:格式为HH:MM:SS。

YEAR:2位数字表示,范围是70~69(1970~2069);4位数字表示,范围是1901~2155

四、二进制数据类型

可存储任何数据(甚至包括二进制信息),如图像、多媒体、字处理文档等。

数据类型说明:

BLOB:Blob最大长度为64KB。

MEDIUMBLOB:Blob最大长度为16 MB。

LONGBLOB:Blob最大长度为4GB。

TINYBLOB:Blob最大长度为255字节。

以上就是MySQL数据类型全解析的详细内容,更多关于MySQL数据类型的资料请关注乐虎体育其它相关文章!

MySQL数据类型全解析的更多相关文章

  1. 阿里面试:MySQL如何设计索引更高效?

    前言数据库系列更新到现在我想大家对所有的概念都已有个大概认识了,这周我在看评论的时候我发现有个网友的提问我觉得很有意......

  2. MongoDB备份(mongoexport)与恢复(mongoimport)

    1.备份恢复工具介绍:mongoexport/mongoimportmongodump/mongorestore(本......

  3. 深入了解MySQL主从复制的原理

    欢迎微信关注「SH的全栈笔记」0. 主从复制首先主从复制是什么?简单来说是让一台MySQL服务器去复制另一台MySQ......

  4. MySQL数据类型全解析

    数据类型:定义列中可以存储什么数据以及该数据实际怎样存储的基本规则。数据类型用于以下目的:1、允许限制可存储在列中的......

  5. MYSQL 字符集设置(终端的字符集)

    每次利用终端 创建数据库或者创建表的时候,字符集都是latin1(不指定字符集的时候)如下:查看当前数据库的字符集c......

  6. MySql8 WITH RECURSIVE递归查询父子集的方法

    背景开发过程中遇到类似评论的功能是,需要时用查询所有评论的子集。不同数据库中实现方式也不同,本文使用Mysql数据库......

  7. 白日梦的Elasticsearch系列笔记(一)基础篇

    目录一、导读1.1、认识ES1.2、安装、启动ES、Kibana、IK分词器二、核心概念2.1、Near Realt......

  8. 详解MySQL与Spring的自动提交(autocommit)

    1 MySQL的autocommit设置MySQL默认是开启自动提交的,即每一条DML(增删改)语句都会被作为一个单......

随机推荐

  1. python 窃取摄像头照片的实现示例

    python窃取摄像头照片源码+获取授权码方法+py打包成exe教你用python做一个属于自己的窃取摄像头照片的软......

  2. 用Python自动清理电脑内重复文件,只要10行代码(自动脚本)

    给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除主要涉及的知识点有:os模块综合应用g......

  3. 超有用的linux笔记

    名词解释根目录说明tree -L 1.├── bin -> usr/bin # 英语binary的缩写,表示”......

  4. css3实现背景渐变

    #grad {background: -webkit-linear-gradient(left,rgba(255,0......

  5. c#定时执行程序代码

    在一般的项目中我们很少用到c#实现每隔规定时间自动执行程序代码,但是如果你经历的项目多,或者应用程序做的比较多的话,......

  6. telnet 命令使用方法大全

    什么是Telnet?对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵......

  7. java DelayQueue的原理浅析

    在对DelayQueue延迟功能的使用上,很多人不能后完全理解延迟的一些功能使用,这里我们深入来挖掘一下DelayQ......

  8. 用python-webdriver实现自动填表的示例代码

    在日常工作中常常需要重复填写某些表单,如果人工完成,费时费力,而且网络延迟令人十分崩溃。如果能够用程序实现自动填表,......

  9. C# WinForm状态栏实时显示当前时间(窗体状态栏StatusStrip示例)

    本文主要介绍了C# WinForm状态栏实时显示当前时间(窗体状态栏StatusStrip示例),分享给大家,具体如......

  10. Java中的权限修饰符(protected)示例详解

    前言大部分来自:https://blog.csdn.net/justloveyou_/article/details......