第二课 常见数据类型

  • 数值型
    • 整型
    • 小数
      • 定点数
      • 浮点数
  • 字符型
    • 较短的文本
    • 较长的文本
  • 日期型

1 整型

整型类型字节范围
TINYINT1有符号:-128~127
无符号:0~255
SMALLINT2有符号:-32768~32767
无符号:0~65535
MEDIUMINT3有符号:-8388608~8388607
无符号:0~1677215
INTINTEGER4有符号:-2147483648~2147483647
无符号:0~4294967295
BIGINT8有符号:-9223372036854775808~9223372036854775807
无符号:0~18446744073709551615
  • 特点:
    • 如果不设置无符号还是有符号,默认是有符号(如果想设置无符号,需要添加UNSIGNED关键字)
    • 如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值
    • 如果不设置长度,会设置成默认长度,长度代表了显示的最大长度,如果长度不够,会用0填充,但是必须搭配ZEROFILL使用,且追加ZEROFILL关键字后,该字段变成了无符号字段,且无法设定成有符号
CREATE TABLE testDate (
	t1 TINYINT,
	t2 SMALLINT UNSIGNED,
	t3 MEDIUMINT,
	t4 INT (7) ZEROFILL,
	t5 BIGINT
);

2 小数

  • 浮点数类型
浮点数类型字节
FLOAT(M,D)4
DOUBLE(M,D)8
  • 定点数类型
定点数类型字节
DEC(M,D)DECIMAL(M,D)M + 2
  • 特点
    • M指的是整数部位+小数部位的总位数,D指的是小数部位,超出后按指定长度四舍五入,不足时0补齐
    • M和D可以省略
      • 如果是DECIMAL类型,M默认为10,D默认为0
      • 如果是FLOATDOUBLE,则会根据插入的数值的精度来决定精度
    • 定典型的精度较高,如果要求插入数值的精度较高,如货币运算等则考虑使用

3 字符型

字符串类型最多字符数描述及存储需求
CHAR(M)M固定长度的字符
存储空间固定
性能高
M为0~255之间的整数
可以省略默认为1
VARCHAR(M)M可变长度的字符
按实际字符长度分配存储空间
性能低
M为0~65535之间的整数
不可省略

4 日期型

日期和时间类型字节最小值最大值
DATE41000-01-019999-12-31
DATETIME81000-01-01 00:00:009999-12-31 23:59:59
TIMESTAMP4197001010800012038年某个时刻
TIME3-838:59:59838:59:59
YEAR119012155
  • TIMESTAMP和实际时区相关,更能反映实际的日期,而DATETIME则只能反映出插入时的当地时间
  • TIMESTAMP的属性受MySQL版本和SQLMode的影响很大

5 枚举(ENUM)和集合(SET)

  • ENUM枚举类型
    • 要求插入的值必须属于列表中指定的值之一,且不区分大小写
成员数字节数
1~2551
255~655352
  • SET集合类型
    • 可以保存0~64个成员,该类型一次可以选取多个成员
成员数字节数
1~81
9~162
17~243
25~324
33~648
CREATE TABLE test (
	t1 ENUM ('A', 'B'),
	t2
SET ('1', '2', '3', '4')
);

INSERT INTO test
VALUE
	('a', '1'),
	('a', '2,3'),
	('a', '2,3,4');

6 其他类型

  • TEXT保存长文本
  • BLOB保存较大的二进制
  • BINARYVARBINARY包含较短的二进制字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值