《MySQL》数据类型

news/2024/11/16 1:56:41/

文章目录

  • 一,数值类型
    • int类型
    • bit类型
    • 小数类型
      • float 和 decimal
  • 二,字符串类型
    • char和varchar
    • 日期和时间类型
    • enum和set

一,数值类型

MySQL数据库里面的数据类型
在这里插入图片描述

int类型

int类型是一个大类

类型大小
tinyint1字节 (-27 ~ 27-1)
smallint2字节 (-215 ~ 215-1)
mediumint3字节 (-223 ~ 223-1)
int4字节 (-231 ~ 231-1)
bigint8字节 (-263 ~ 263-1)

默认创建都是有符号的类型

为什么一个int就会有这么多类型?

  1. 类型多,可以应对各种不同的应用场景
  2. 节省资源,数据库里的内存资源十分宝贵

越界情况

  • MySQL里面的数据内容若是越界,则会直接报错,不会像语言一样进行隐式转换、整型截断什么的
    在这里插入图片描述
    如图,直接报错,这是为了保证数据库里插入的数据一定是正确的

bit类型

默认创建bit类型的大小为1比特位
在这里插入图片描述

注意事项:

  1. bit类型里面的数据以ASCII码对应的字符存储
  2. bit类型可指定的最大长度为64位,过大或者越界都是直接报错

在这里插入图片描述

小数类型

float 和 decimal

# {}表示里面内容是可选项,不填则有默认
float{(m,d)} {unsigned}  # m表示总长度(包括小数位数),d表示小数位数,unsigned表示无符号类型
decimal{(m,d)} {unsigned}  # m表示总长度(包括小数位数),d表示小数位数,unsigned表示无符号类型

注意事项:

  1. 范围:有长度看长度位数。:float(4,2) 的范围是 -99.99 ~ 99.99;float(4,2) unsigned 的范围是0~99.99
  2. 精度:四舍五入。:以float(4,2)为例,插入的数据为 98.995,则会成为99.00;若98.994,则会成为98.99;但插入的数据为99.999,则会报错,因为超出范围

decimal和float用法类似,不多赘述。

区别:

  1. float 占4个字节,decimal 占8个字节
  2. decimal 比 float精度更高
  • float 浮点数一定存在精度是损失
    在这里插入图片描述

二,字符串类型

char和varchar

char(n) 定长字符串类型,n表示单位字符数量,最大值为255

  1. 定长:mysql会给char类型直接分配固定大小的内存。char(2),就表示会开辟2个单位字符的大小来存储字符。
  2. 单位字符:比如:“ab”,“中国”,这类的单位字符就为2,但实际存储大小会由于编码格式不同而不同,以UTF-8编码,"ab"占2个字节,"中国"占6个字节。

varchar(n) 变长字符串类型,n表示字符长度,最大值为65535字节

  • 这里的 n 表示字符长度,因为是变长,所以是动态申请内存来存储数据。值得注意的是,varchar存储数据时,会分配1~3个字节来记录数据的大小,所以实际可用的最大空间应该是65532字节
    在这里插入图片描述

使用场景:

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

日期和时间类型

名称大小格式特点
date3字节‘yyyy-mm-dd’固定时间,需要手动更改
datetime8字节‘yyyy-mmm-dd hh:mm:ss’固定时间,需要手动更改
timestamp4字节‘yyyy-mmm-dd hh:mm:ss’时间戳,每次插入或更新数据,时间也会自动更新

在这里插入图片描述

enum和set

enum 枚举

# 语法
enum('选项1','选项2','选项3',...)

以上插入数据时,选项单选一个

set 集合

# 语法
set('选项1','选项2','选项3',...)

以上插入数据时,选项最多可以选满,是多选选项

在这里插入图片描述

  • enum的数字下标
    插入或者查询数据时,可以填写内容,也可以填写数字,如上例子:1表示‘男’,2表示‘女’。(数字从1开始
  • set的数字位图
    同上,但是不同的是,这个数字是按位图操作(即二进制1的位置),如:1表示语文,2表示数学,3表示语文和数学,以此类推。

建议:不用用数字,因为不便于阅读

函数 find_in_set
查找一个元素,成功返回下标

# 语法
find_in_set(sub, str_list)

在这里插入图片描述


http://www.ppmy.cn/news/788670.html

相关文章

WIN10局域网共享方法

1.控制面板\网络和 Internet\网络和共享中心\高级共享设置 打开启动网络发现,启动文件共享和打印机共享 2.winr运行gpedit.msc,打开本地组策略编辑器 找到“计算机配置-管理模板-网络-Lanman工作站” 启动不安全的来宾登录设置为已启用。

win10局域网共享文件夹

1.设置文件夹为共享,并添加everyone权限 2.设置安全选项 点击编辑->添加->高级->立即查找,找到everyone后点击确定 3.在共享选项,密码保护栏中点击网络和共享中心,然后关闭密码保护共享,这样别的机子连进来…

win10下同一局域网电脑互传文件

首先确保两台计算机处于同一个局域网下。 接着在作为Server的电脑上设置共享文件夹,如下图所示: 点击共享,接着共享的对象设置为Everyone,如下图: 接着设置就完成了。在cmd里面输入ipconfig可以看到本机的ip。我这里…

win10局域网中只能发现部分计算机,Windows10系统局域网中共享计算机找不到怎么办...

局域网共享可以方便局域网中的计算机自动调用共享文件用打印机等资源,但有用户出现访问不了查看不到其他共享计算机的情况,在Win10极速纯净版系统中,有用户发现升级Win10的无法查看其他计算机和共享,而未升级之前是能用的&#xf…

win10开启局域网远程桌面连接

要求:两台电脑,同时连接在同一局域网(比如,大学校园网,实验室机房局域网)。假设是电脑A开启允许局域网远程桌面,然后电脑B连接控制电脑A。这两台电脑需要按照下面的步骤来做(以大学校…

计算机局域网访问密码设置,win10系统设置局域网访问需要密码的详细办法

有关win10系统设置局域网访问需要密码的操作方法想必大家有所耳闻。但是能够对win10系统设置局域网访问需要密码进行实际操作的人却不多。其实解决win10系统设置局域网访问需要密码的问题也不是难事,小编这里提示两点:(1)单击“开始”按钮,键…

win10系统架设魔兽服务器,win10系统局域网魔兽争霸无法联机的步骤

有关win10系统局域网魔兽争霸无法联机的操作方法想必大家有所耳闻。但是能够对win10系统局域网魔兽争霸无法联机进行实际操作的人却不多。其实解决win10系统局域网魔兽争霸无法联机的问题也不是难事,小编这里提示两点:1、打开控制面板,选择“…

win10怎么查看内网计算机,​w10查看局域网内其他电脑如何查看

我们在选择将win10电脑组建成局域网时,这样在一个路由器或者交换机下,多台电脑能够方便用户传输文件,减少不必要的时间,然而在组建完局域网之后,可能有些用户还不知道自己局域网中到底有多少台电脑,那么win10怎么看局域…