MySQL数据类型与数据类型范围入门教程

MySQL使用了很多不同的数据类型,分解成三大类:数字,日期和时间,和字符串类型。

数字数据类型:

MySQL使用所有标准的ANSI SQL数值数据类型,所以如果与MySQL不同的数据库系统这些定义会看起来也熟悉。下面的列表显示了常见的数值数据类型和它们的说明。

INT - 一个正常大小可以有符号或无符号的整数。如果带符号的,允许的范围是-2147483648到2147483647。如果没有符号,允许的范围是从0到4294967295。可以指定一个宽度达11位数字。

TINYINT -一个非常小可以有符号或无符号的整数。如果带符号的,允许的范围是从-128到127。如果没有符号,允许的范围是从0到255。可以指定一个4位数字的宽度。

SMALLINT - 一个小可以有符号或无符号的整数。如果带符号的,允许的范围是从-32768到32767。如果没有符号,允许的范围是从0到65535。可以指定一个宽度为5位数字。

MEDIUMINT - 一个中等大小的,可以有符号或无符号的整数。如果带符号的,允许的范围是-8388608到8388607。如果没有符号,允许的范围是从0到16777215。可以指定一个宽度达9位数。

BIGINT - 一个大的,可以有符号或无符号的整数。如果带符号的,允许的范围是-9223372036854775808到9223372036854775807。如果没有符号,允许的范围是从0到18446744073709551615。可以指定一个宽度达11位数字。

FLOAT(M,D) - 一个浮点数字,不能是无符号的。可以定义的显示长度(M)和小数(D)的数量。这不是必需的,将默认为10,2,其中2为小数位数和10是总人数的数字(包括小数)。小数精度可以到24位的持股量。

DOUBLE(M,D) -双精度浮点数字,不能是无符号的。可以定义的显示长度(M)和小数(D)的数量。这不是必需的,将默认为16.4,其中4个是小数位数。十进位至53位的双精度可以去。 REAL是双的代名词。

DECIMAL(M,D) - 一个解包浮点数字,不能是无符号的。每个十进制在解压缩小数,对应一个字节。定义的显示长度(M)和小数点后的位数(D)是必需的。 NUMERIC是DECIMAL的代名词。

日期和时间类型:

MySQL的日期和时间数据类型有:

DATE - 日期格式YYYY-MM-DD,1000-1-1和9999-12-31之间。例如1973年12月30日将存储为1973-12-30日。

DATETIME - 日期和时间的组合YYYY-MM-DD HH:MM:SS格式,在1000-1-1 00:00:00和9999-12-31 23:59:59。例如,1973年12月30号15:30:00将存储为1973-12-30 15:30:00.。

TIMESTAMP-1970年1月1日午夜,在2037年的某个时候之间的时间戳。这看起来像之前的DATETIME格式,不带连字符之间的数字,1973年12月30日下午3:30将被存储为19731230153000(YYYYMMDDHHMMSS)。

TIME - 存储HH:MM:SS格式的时间。

YEAR(M) - 储存年在2位或4位数字格式。如果长度指定为2(例如年(2)),年份可在1970到2069(70到69)。如果长度指定为4,年份可在1901到2155。默认长度为4。

字符串类型:

虽然数字和日期类型有些相似,将存储的大部分数据将在字符串格式。下面列出了在MySQL中常用的字符串数据类型。

CHAR(M) - 一个固定长度的字符串的长度介于1到255个字符(例如CHAR(5)),向右填充到指定的长度与空间存储。定义的长度不是必需的,但默认值是1。

VARCHAR(M) - 可变长度的字符串的长度介于1到255个字符,例如VARCHAR(25)。当创建一个VARCHAR字段必须定义一个长度。

BLOB 或 TEXT - 字段的最大长度为65535个字符。 BLOB是二进制大对象“,是用来存储大量的二进制数据,如图像或其他类型的文件。字段定义为文本也持有大量的数据,两者之间的区别是存储的数据进行排序和比较是区分大小写的BLOB,并在文本字段不区分大小写。不指定BLOB或TEXT的长度。

TINYBLOB 或 TINYTEXT -一个BLOB或TEXT列,最大长度为255个字符。不能指定TINYBLOB或TINYTEXT长度。

MEDIUMBLOB 或 MEDIUMTEXT -一个BLOB或TEXT列,最大长度为16777215个字符。不能指定MEDIUMBLOB或MEDIUMTEXT的长度。

LONGBLOB 或 LONGTEXT -一个BLOB或TEXT列,最大长度为4294967295个字符。不能指定LONGBLOB或LONGTEXT的长度。

ENUM - 枚举,这是一种奇特的术语列表。当定义一个枚举,要创建一个列表项目的值必须被选中(或它可以是NULL)。例如,如果希望字段包含“A”或“B”或“C”,则ENUM定义为ENUM('A','B','C'),只有那些值(NULL)所能填充该字段。 

上面可能写得看不清楚,下面补充一文章

1.整型(xxxint)

MySQL数据类型 含义
tinyint(m) 1个字节表示(-128~127)
smallint(m) 2个字节表示(-32768~32767)
mediumint(m) 3个字节表示(-8388608~8388607)
int(m) 4个字节表示(-2147483648~2147483647)
bigint(m) 8个字节表示(+-9.22*10的18次方)

2.浮点型(float和double)

MySQL数据类型 含义
float(m,d) 单精度浮点型,8位精度(4字节),m是十进制数字的总个数,d是小数点后面的数字个数
double(m,d) 双精度浮点型,16位精度(8字节)

参数m只影响显示效果,不影响精度,d却不同,会影响到精度。比如设一个字段定义

3.定点数(decimal)
decimal(m,d) 定点类型浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。参数m是定点类型数字的最大个数(精度),范围为0~65,d小数点右侧数字的个数,范围为0~30,但不得超过m。对定点数的计算能精确到65位数字。

4.字符串(char,varchar,xxxtext)

MySQL数据类型 含义
char(n) 固定长度的字符串,最多255个字符
varchar(n)  固定长度的字符串,最多65535个字符
tinytext  可变长度字符串,最多255个字符
text  可变长度字符串,最多65535个字符
mediumtext  可变长度字符串,最多2的24次方-1个字符
longtext  可变长度字符串,最多2的32次方-1个字符 

5.二进制数据(xxxBlob)
XXXBLOB和xxxtext是对应的,不过存储方式不同,xxxTEXT是以文本方式存储的,如果存储英文的话区分大小写,而xxxBlob是以二进制方式存储的,不区分大小写。xxxBlob存储的数据只能整体读出。xxxTEXT可以指定字符集,xxxblob不用指定字符集。

6.日期时间类型(date,time,datetime,timestamp)

MySQL数据类型 含义
date 日期'2008-12-2'
time 时间'12:25:36'
datetime 日期时间'2008-12-2 22:06:44'  
timestamp 不固定

timestamp比较特殊,如果定义一个字段的类型为timestamp,这个字段的时间会在其他字段修改的时候自动刷新。所以这个数据类型的字段可以存放这条记录最后被修改的时间,而不是真正来的存放时间。

7.数据类型的属性

MySQL关键字 含义 
NULL 数据列可包含NULL值
NOT NULL 数据列不允许包含NULL值  
DEFAULT xxx 默认值,如果插入记录的时候没有指定值,将取这个默认值
PRIMARY KEY  主键 
AUTO_INCREMENT  递增,如果插入记录的时候没有指定值,则在上一条记录的值上加1,仅适用于整数类型 
UNSIGNED 无符号 
CHARACTER SET name  指定一个字符集 
时间: 2024-09-25 06:10:25

MySQL数据类型与数据类型范围入门教程的相关文章

21分钟 MySQL 入门教程_Mysql

21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root

10分钟 MySQL 入门教程

一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root 用户密码 可视化管理工具 MySQL

21分钟 MySQL 入门教程

目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root 用户密码 可视化管理工具 MyS

抽象数据类型(ADT)入门(一)

抽象数据类型(ADT)入门(一) 1.抽象数据类型(Abstract Data Types,ADT)和ADT的实现 抽象数据类型:一个数据元素集合以及在这些数据上的操作. ADT的一个实现包括存储数据元素的存储结构以及实现基本操作的算法. 在这个数据抽象的思想中,数据类型的定义和它的实现是分开的,这在软件设计中是一个重要的概念.这使得只研究和使用它的结构而不用考虑它的实现细节成为可能.实际上,这通常使用在int.double.char和bool等预定义数据类型上的方法,使用这些数据类型的程序员在

gridview 绑定mysql 的datetime数据类型字段出现问题

问题描述 gridview 绑定mysql 的datetime数据类型字段出现问题 我在用gridview 绑定mysql数据时 有一字段数据类型为datetime的内容不能显示出来 其余字段的内容都能显示 这是什么情况 如图所示 解决方案 你好,datetime数据可以转型.用.ToString("yyyy-MM-dd hh:mm:ss").

关于mysql中int数据类型储存最大数值与长度的关系

问题描述 关于mysql中int数据类型储存最大数值与长度的关系 关于mysql中int数据类型储存最大数值与长度的关系关于mysql中int数据类型储存最大数值与长度的关系关于mysql中int数据类型储存最大数值与长度的关系关于mysql中int数据类型储存最大数值与长度的关系 解决方案 int最大长度是11. 最大值是 2147483647 (2^31 – 1) 最小值是 -2,147,483,648(-2^31 ) 如果在建表时不指定字段int类型的长度时,系统则默认生成长度为11的字段

mysql支持的数据类型及其测试

原文:mysql支持的数据类型及其测试 1.基础知识 1.1如何来查看mysql的帮助手册 ?int Help float; 1.2创建表的规则 CREATE TABLE [IF NOT EXISTS] tbl_name( 字段名 字段类型 [完整性的约束条件]); 1.3如何向表中插入数据 INSERT [INTO] tab_name [(字段名称--)] VALUES (值--) 1.4Mysql数据类型 1.数值型 整数类型 TINYINT:范围0~255;-128~127占用1字节 SM

mysql 入门教程篇

mysql 入门教程篇 mysql数据库查询 SELECT * FROM table SELECT * FROM table1, table2, ... SELECT field1, field2, ... FROM table1, table2, ... SELECT ... FROM ... WHERE condition SELECT ... FROM ... WHERE condition GROUPBY field SELECT ... FROM ... WHERE condition

MySQL中的数据类型

MySQL中的数据类型 详情请访问官网:http://dev.mysql.com/doc/refman/5.7/en/data-types.html   官方文档:http://dev.mysql.com/doc/refman/5.7/en/opengis-geometry-model.html   1.1  MySQL有哪些数据类型? MySQL中定义数据字段的类型对数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型.   1.数值类型 表

PHP入门教程之操作符与控制结构流程详解_php技巧

本文实例讲述了PHP入门教程之操作符与控制结构流程.分享给大家供大家参考,具体如下: Demo1.php <?php $username = "chaoyv"; echo "His name is $username !"; $username2 = "吴者然"; echo "His name is $username2 ! "; echo "<br/>"; echo "His