mysql数据类型

MYSQL数据类型支持五种类型又或者是7种具体类型:整数数值类型,小数数值类型,字符串类型,日期类型,enum类型,set集合类型,二进制类型。
在这里插入图片描述

1.整数数值类型

整数数值类型支持五种:tinyint,smallint,mediumint,int和bigint
这些整数类型的取值范围依次递增,且默认情况下,既可以表示正整数,又可以表示负整数,如果只希望表示0和正整数,可以使用无符号关键字"unsigned"进行修饰。
在这里插入图片描述
而关于五种整数类型的取值范围如下:
在这里插入图片描述

2.小数数值类型

MYSQL支持三种小数类型,精确小数类型decimal和单精度浮点数类型float以及双精度浮点数类型double。
在这里插入图片描述
decimal(length, precision)用于表示精度确定(小数点后数字的位数确定)的小数类型,length决定了该小数的最大位数,precision用于设置精度(小数点后的数字的位数)。例如decimal(5,2)表述小数的取值范围是-999.99~999.99,而decimal(5,0)表示-99999 ~ 99999的整数。
单精度浮点数float和双精度浮点数double的取值范围不同,存储空间也不同,取值范围如下。
注意,float与double的取值范围只是理论值,如果不指定精度,由于精度和操作系统以及硬件的配置有一定关系,不同的操作系统与硬件可能会使这一取值范围有所不同,因此,使用浮点数时不利于数据库的移植。
在这里插入图片描述

3.字符串类型

MYSQL支持6种字符串类型,char,varchar,tinytext,text,mediumtext和longtext。
在这里插入图片描述

(1)char
char(n)是定长字符串类型,表示占用n个字符的存储空间,n的最大值是255。例如,对于中文简体字符集gbk的字符串而言,对于一个utf8字符集的字符串而言,char(255)表示可以存储255个汉字,而每个汉字占用3个字节的存储空间。
(2)varchar
varchar(n)为变长字符串类型,这就意味着此类字符串占用的存储空间就是字符串自身占用的存储空间,与n无关,但是至多存储n个字符。
除了varchar(n), tinytext,text,mediumtext和longtext等数据类型也都是变长字符串类型。变长字符串类型的共同特点是最多容纳的字符数与字符集的设置有直接关系。例如,对于西文字符集latin1的字符串而言,varchar(n)中的n最大取值为65535;对于中文简体字符集gbk的字符串而言,varchar中的n最大取值为32767,其他的类似,如下图
在这里插入图片描述

4.日期类型

MYSQL主要支持5种日期类型:date, time, year, datetime和timestamp。
在这里插入图片描述
其中date表示日期,默认格式为’YYYY-MM-DD’;time表示时间,默认格式为’HH:ii:ss’;year表示年份;datetime和timestamp是日期和时间的混合类型,默认格式为’YYYY-MM-DD HH:ii:ss’, 外观上,MYSQL日期类型的表示方法与字符串的表示方法相同;本质上,MYSQL日期类型的数据是一个数值类型,可以参与简单的加,减运算。
在这里插入图片描述

5.复合类型

MYSQL支持两种复合类型:enum枚举类型和set集合类型。
enum类型的字段只允许从一个集合取得某一个值,有点类似于单选按钮的功能。例如,一个人的性别从集合{‘男’, ‘女’}中取值,只能取其中一个值。
set类型的字段允许从一个集合中取得多个值,有点儿类似于复选框的功能。例如,一个人的兴趣爱好可以从集合{‘听音乐’, ‘看电影’, ‘购物’, ‘旅游’, ‘游泳’, ‘游戏’}中取值,可以取多个值

6.二进制类型

MYSQL主要支持7种二进制类型:binary,varbinary,bit,tinyblob,blob,mediumblob和longblob。每种二进制类型占用的存储空间如下:
在这里插入图片描述
二进制类型的字段主要用存储’0’和’1’组成的字符串,从某种意义上讲,二进制类型的数据是一种特殊格式的字符串。二进制类型和字符串类型的区别在于,字符串类型的数据按字符为单位进行存储,因此存在多种字符集,多种字符序;除了bit数据类型按位为单位进行存储,其他二进制类型的数据按字节为单位进行存储,仅存在二进制字符集binary。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值