前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MYSQL数据库-数据类型

MYSQL数据库-数据类型

作者头像
用户9645905
发布2022-11-15 18:30:31
发布2022-11-15 18:30:31
3K00
代码可运行
举报
文章被收录于专栏:Linux学习~Linux学习~
运行总次数:0
代码可运行

MYSQL数据库-数据类型

零、前言

本章主要讲解学习MYSQL数据库的数据类型

一、数据类型分类

  • 数据类型示图:

二、数据库的字段属性

所谓字段属性就是用来修饰数据类型的

  • 主要的字段属性:
  1. UnSigned:无符号的,声明了该列不能为负数
  2. ZEROFILL:0填充的,不足位数的用0来填充 , 如int(3),5则为005
  3. Auto_InCrement:通常理解为自增,自动在上一条记录的基础上默认+1,用来设计唯一的主键,必须是整数类型,可定义起始值和步长
  4. NULL 和 NOT NULL:默认为NULL , 即没有插入该列的数值,如果设置为NOT NULL , 则该列必须有值
  5. DEFAULT:用于设置默认值,例如性别字段,默认为"男", 若无指定该列的值则为"男"

三、数值类型

  • 示图:
  • 表格:

数据类型

描述

大小

tinyint

十分小的数据

1个字节

smallint

较小的数据

2个字节

mediumint

中等大小的数据

3个字节

int

标准的整数

4个字节

bigint

较大的数据

8个字节

float

浮点数

4个字节

double

浮点数

8个字节

decimal

字符串形式的浮点数,一般用于金融计算

1、tinyint类型

  • 数值越界测试:
  • 说明:
  1. 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的
  2. 可以通过UNSIGNED来说明某个字段是无符号的
  3. 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下

2、bit类型

  • 基本语法:
代码语言:javascript
代码运行次数:0
运行
复制
bit[(M)] : 位字段类型
M表示每个值的比特位数,范围从1到64
如果M被忽略,默认为1
  • 示例:
  • 注意:
  1. bit字段在显示时,是按照ASCII码对应的值显示
  2. 如果值只存放0或1,这时可以定义bit(1),这样可以节省空间

3、float类型

  • 语法:
代码语言:javascript
代码运行次数:0
运行
复制
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节
  • 示例:小数float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入
  • 示例:如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数,范围是 0 ~ 99.99

4、decimal类型

  • 语法:
代码语言:javascript
代码运行次数:0
运行
复制
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数

decimal(5,2) 表示的范围是 -999.99 ~ 999.99 ;decimal(5,2) unsigned 表示的范围 0 ~ 999.99 decimal和float很像,但是有区别:float和decimal表示的精度不一样

  • 示例:
  • 说明:
  1. float表示的精度大约是7位
  2. decimal整数最大位数m为65,支持小数最大位数d是30
  3. decimal如果d被省略,默认为0;如果m被省略,默认是10
  4. 建议如果希望小数的精度高,推荐使用decimal

四、字符串类型

  • 表格:

数据类型

描述

大小

char

字符串固定大小

0~255

varchar

可变字符串

0~65535

tinytext

微型文本

2^8-1

text

文本串

2^16-1

数据类型

描述

格式

date

日期格式

YYYY-MM-DD

time

时间格式

HH:mm:ss

datetime

最常用的时间格式

YYYY-MM-DD HH:mm:ss

timestamp

时间戳,1970.1.1到现在的毫秒数

year

年份表示

1、char类型

  • 语法:
代码语言:javascript
代码运行次数:0
运行
复制
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255(不是储存内容的字节大小)
  • 示例:
  • 说明:

char(2) 表示可以存放两个字符,可以是字母或汉字,但是不能超过2个, 最多只能是255

2、varchar类型

  • 语法:
代码语言:javascript
代码运行次数:0
运行
复制
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节
  • 示例:
  • 说明:

  1. 关于varchar(len),len到底是多大,这个len值和表的编码密切相关
  2. varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532
  3. 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节]
  4. 如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)

3、char和varchar比较

  • 示图:
  • 如何选择char和varchar:
  1. 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5;如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去
  2. 定长的磁盘空间比较浪费,但是效率高;变长的磁盘空间比较节省,但是效率低
  3. 定长的意义是,直接开辟好对应的空间;变长的意义是,在不超过自定义范围的情况下,用多少开辟多少

4、日期和时间类型

  • 常用的日期有如下三个:

date :日期 ‘yyyy-mm-dd’ ,占用三字节 datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 ,占用八字节 timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用四字节

  • 示例:

5、enum和set类型

  • 语法:
代码语言:javascript
代码运行次数:0
运行
复制
enum:枚举,“单选”类型;
enum('选项1','选项2','选项3',...);

该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值 而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举值时,也可以添加对应的数字编号

代码语言:javascript
代码运行次数:0
运行
复制
set:集合,“多选”类型;
set('选项值1','选项值2','选项值3', ...);

该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值 出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,… 最多64个(每个比特位上的内容为1代表该选项被选上,所有被选上的整体表示一个数值) 注:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读

  • 示例:有一个调查表votes,需要调查人的喜好, 比如(登山,游泳,篮球,武术)中去选择(可以多选),(男,女)[单选]
  • 集合查询使用find_ in_ set函数:

find_in_set(sub,str_list) :如果 sub 在 str_list 中,则返回下标;如果不在,返回0; str_list 用逗号分隔的字符串

  • 查询爱好登山的人:
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MYSQL数据库-数据类型
  • 零、前言
  • 一、数据类型分类
  • 二、数据库的字段属性
  • 三、数值类型
    • 1、tinyint类型
    • 2、bit类型
    • 3、float类型
    • 4、decimal类型
  • 四、字符串类型
    • 1、char类型
    • 2、varchar类型
    • 3、char和varchar比较
    • 4、日期和时间类型
    • 5、enum和set类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档