mysql基础——mysql的几种常见数据类型介绍

mysql常见数据类型

  • 数值类型
  • 字符串类型
  • 日期和时间类型
  • 复合类型
  • 空间类型(主要用于实现地理特征的生成,存储和分析)
一、数值类型
1. 整型 —> 分为有符号(signed)的和无符号(unsigned)的。
类型占字节数最大宽度无符号的数值范围有符号的数值范围
int4int(11)0 到 2^32 – 1-2^31 到 2^31 – 1
tinyint1tinyint(4)0 到 2^8 – 1- 2^7 到 2^7 – 1
smallint2smallint(6)0 到 2^16 – 1- 2^15 到 2^15 – 1
mediumint3mediumint(9)0 到 2^24 – 1- 2^23 到 2^23 – 1
bigint8bigint(20)0到 2^64 – 1- 2^63 到 2^63 – 1
2. 浮点型 ----->只能为有符号的
类型占字节数备注
float(m,d)4单精度,m 为总个数, d 小数点后边位数 ,默认是float(10,2)
double(m,d)8双精度,m 为总个数,d为小数点后边位数,默认是double(16,4)
decimal(m,d)m字节(mysql3.23之前版本),m+2字节(mysql 3.23以后版本 )储存为字符串的浮点数 m大小为1-256,d的大小为0-30,默认是decimal(18,9)

使用注意事项:

  1. 性别:一般不存男或者女,而是使用无符号整型tinyint 来表示 :要么 0 要么1 要么2 。

  2. 年龄 :一般使用无符号整型 smallint 就ok。

  3. 在存储数据时,能用数字表示的就不要用字符串,主要是为了节约存储空间 。

  4. float和double 属于非标准数据类型,在数据库中保存的是近似值,而 decimal 则以字符串的形式保存数值。对于精度比较高的东西,比如在银行中 ,对金额要求比较高 ,经常用的是 decimal 类型。

二、字符串类型
类型字节大小范围备注
varchar0-255字节可变长度字符串(必须指定长度)
char0-255字节固定长度字符串
tinytext0-255字节短文本字符串(不能指定长度)
text0-65535字节长文本数据
longtext0-4294967295字节极大文本数据
tinyblob0-255字节二进制字符串(存储图片,视频等)(不能指定长度)
blob0-65535字节二进制形式的长文本
longblob0-4294967295字节二进制形式的极大文本数据

使用注意事项:

  1. char 假定分配了30长度,如果实际字符超出了30长度 超出部分的字符截短;如果不足30长度,右边用半角空格补齐;
  2. varchar 假定分配了30长度,如果实际字符超出了30长度 超出部分的字符截短;如果不足30长度,不用空格补齐。
  3. blob 和 text的区别 :blob区分大小写 ,text 不区分大小写。
  4. varchar(m) —>这里的参数m是指字符串的字符个数,而不是指字符存储的字节长度。字符和字节的转换:utf8下,1字符=3字节;gbk下,1字符=2字节。
三、日期和时间类型
类型所占字节数存储格式支持的范围
date3YYYY-MM-DD‘1000-01-01’ 到 ‘9999-12-31’
time3HH:MM:SS‘-838:59:59’ 到 ‘838:59:59’
datetime8YYYY-MM-DD HH:MM:SS‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
timestamp4自动存储记录修改的时间,设置值时只允许设置数字类型的值时间戳,从1970-01-01 00:00:00到当前的时间差值。
year1YYYY1901 到 2155

tips:开发过程中 好多产品用时间戳 代替 日期和时间 这样的好处也是为了节约空间。

四、复合类型
类型说明举例
set集合类型set(‘num1’,‘num2’,‘num3’)
enum枚举类型enum(‘num1’,‘num2’,‘num3’)

说明:

enum类型,它的值范围需要在创建表时通过枚举方式显式指定,只允许从一个集合中一次取出一个成员,或者是一次插入一个成员。

set类型,也是一个字符串对象,里面包含了64个成员,根据成员的不同,存储也不同。允许从一个集合一次取出多个成员,也可以一次插入多个成员。

!!!以上所述的mysql数据类型,用到最频繁的就是数值类型,字符串类型以及日期时间类型了,所以在能力有限的前提下掌握好这三种数据类型即可,剩下的等到有余力再慢慢琢磨。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值