1. MySQL三大列类型

MySQL三大列类型

数值型

- 整型
	- Tinyint
		- 占据空间:1个字节(8个位);范围:-128 ~127或者 0 ~ 255

关于范围详解
- Smallint
- Mediuint
- Int
- bigint
- 小数型 (浮点型和定点型)
- Float(M,D) decimal(M,D)
- M指“精度”,代表总位数
- D指“标度”,代表小数位
- 浮点数占的空间范围是 : 10^ 38 , 10^-38
- 如果M<=24,占4个字节,否则占8个字节
- 用来表示数据中的小数,除了float……浮点
- 还有另外一种定点类型decimal,指把整数部分和小数部分分开存储,比float精确

字符串型

  • Char(M)
  • Varchar(M)
  • Text 文本类型
  • blob

日期时间类型

  • Date 日期
  • Time 时间
  • Datetime 时间时间类型
  • Year 年类型

一、整型

1、分析:
2个字节,16位 0 – 2^16 = 65535
-2 ^ 15 ----> +2 ^ 15 - 1 , -32768 -->32767
一般而言,设某类型N字节
N字节 , 8N位
0 —> 2^8-1
-2^(8N-1) —> +2 ^(8N-1)-1

int系列的声明时的参数:
(M),unsigned,zerofill

2、举例学习tinyint的参数并验证字节与范围的关系
在这里插入图片描述
在这里插入图片描述


  • 为其插入数据,age到底是属于范围(-127,128)还是(0,255)

    经过以上测试,age的范围是(-128,127),即tinyint不加特殊说明,默认范围是(-128,127)
    #加上unsigned表示无符号,可以影响存储范围(例:增加一个学分列)
    在这里插入图片描述
    如图所示,增加了一个unsigned
    测试其范围:
    在这里插入图片描述
    因此在增加unsigned表示其为无符号类型。

3、分析M函数和zerofill的关系
在这里插入图片描述
对比一下例子,引出zerofill(零填充):
在这里插入图片描述
综合以上,M函数和zerofill配合使用。
例如,增加一个学号字段,学号不能为负数,学号位数一般相同,即使不同,也会通过补充0进行补位:000013和012345
在这里插入图片描述
由图可知,M代表补0的宽度,和zerofill配合使用才有意义
在这里插入图片描述
观察snum的类型可知,zerofill则必是unsigned类型

4.小数型

浮点数在计算机中表示是比整数型(int)较复杂的:IEEE
123.45
6.45
小数点左右各可以存储多少位数?
在这里插入图片描述
添加奖金列:
添加一奖金列:
测试范围:
测试范围
证明bonus是unsigned类型,不能为负数

三、对比float和decimal:
创建表格
对比值
#通过以上对比可以看出float有时会损失精度,如果像账户等敏感字段,建议使用decimal

二、字符串型

char和varchar分别称为定长字符串和变长字符串
1.对比char和varchar:

char(N)的优点:反应速度快,但是如果不够指定长度(N),实际上都占用N个长度,
且通过在尾部补充空格的方式进行补齐。(N代表一个N个字符长度)
varchar不需要用空格补齐,但是列内容前有1–2个字节存储字符串列的内容长度。
即保存时用一个字节或者两个字节长的前缀+数据,如果varchar列声明的长度大于255,长度前缀是2
在这里插入图片描述
在这里插入图片描述
对比建表
在这里插入图片描述
注意:char(M)和varchar(M)中的M 限制是字符数,不是字节数
utf8中,汉字占2–4个字节不等,常用字占3个字节,英文字母占1一个字节,若M=6,则存储空间为18个字节
在这里插入图片描述
2. TEXT:文本类型,可以存储比较大的文本字段,搜素速度较慢
因此,如果不是特别大的内容,建议使用char或者varchar代替
text不用加默认值
在这里插入图片描述
3.blob 是二进制类型,可以存储图像,音频等二进制信息
意义:二进制 0—255都可能出现
Blob在于防止因为字符集的问题,导致信息丢失
比如一张图片有0xFF字节,这个在ASCII字符集中非法,在入库时会被过滤引起信息被损坏。
在这里插入图片描述在这里插入图片描述
三、日期/时间型

1.日期型(date)

1.1存储范围
存储范围
1.2 存储年-月-日
在这里插入图片描述

  • 存储默认的字符集是gbk,若出现一下错误,可通过语句set names gbk进行处理
  • 在这里插入图片描述

2.时间类型

2.1 时间类型例子
每日签到,记录签到时间
插入时间类型
在这里插入图片描述
在这里插入图片描述

3.日期时间类型

3.1 格式:YYYY-MM-DD HH: II:SS
在这里插入图片描述
3.2 举例
在这里插入图片描述
另:timestamp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4. Year类型

范围是1901-----2155
在这里插入图片描述
以上显示超出范围,year只占一个字节,最多存储255种变化(在某个基础上增加255),如果存储存在错误,说明可以存出一个错误年份’0000’
在这里插入图片描述
year类型还可以简写成两位
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值