服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL数据类型全解析

MySQL数据类型全解析

2021-03-31 17:27--D Mysql

这篇文章主要介绍了MySQL数据类型的相关资料,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下

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

数据类型用于以下目的:

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数据类型的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/mind18/p/14270087.html

延伸 · 阅读

精彩推荐
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2962019-06-23
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6402020-03-13
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5432020-06-03
  • Mysql浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25