当前位置: 首页 > news >正文

【MySQL--->数据类型】

文章目录

    • @[TOC](文章目录)
  • 一、数据类型分类
  • 二、整型类型
  • 三、bit(位)类型
  • 四、float类型
  • 五、decimal类型
  • 六、char和varchar类型
    • 1.char类型
    • 2.varchar
    • 3.char与varchar的区别
  • 七、日期与时间类型
  • 八、enum和set

一、数据类型分类

在这里插入图片描述
在这里插入图片描述

二、整型类型

在这里插入图片描述

数值类型有数据存储上限,而且每个类型都有无符号和有符号两种,默认有符号,在类型后面加上unsigned就是无符号,以tinyint为例,总共占一个字节,无符号最大存储上限是127,下限-128,有符号最大上限是255,下限是0.
mysql数值类型不会发生数据截断的情况,如果发生越界的情况只会报错,不会数据截断存储.这样能保证数据库中数据的合法性.不同数值类型所占的字节大小不同,视情况选择适当的类型,不能太大也不能太小.

三、bit(位)类型

bit类型就是按比特位存储数据的,类型后面跟(n)可以设置比特位的个数,比特位最大上限是64位,如果类型设置为bit(1),数值只能插入0或者1.,数值的显示是以ascll码值的方式显示的,也是按照ascll码值的方式 存储的.比如存储0或者1是显示不出来的,但是如果是字符的话就可以显示,比如’a’或者97都是显示’a’.
在这里插入图片描述

四、float类型

类型指定格式float(m,d)m代表数据总长度,d代表精度.占4个字节,float unsigned为无符号类型.
float类型后面的小数值如果超出精度会被四舍五入,但是前提是四舍五入以后数据总长度必须不能超过m.
例如float(4.2),无符号上限99.99,下限-99.99,有符号上限99.99.下限是0;
在这里插入图片描述
如果整数部分存储的值超过99,会有精度损失
在这里插入图片描述

五、decimal类型

decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数
decimal类型与float的精度不同float表示的精度大约是7位。decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略,默认是10。

六、char和varchar类型

1.char类型

char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255
char(2) 表示可以存放两个字符,可以是字母或汉字,但是不能超过2个, 最多只能是255

2.varchar

varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节,

除了有效数据,还需要腾出最大3个最小1个字节用作字符串长度记录.utf8编码格式汉字占3个字节,gbk编码格式汉字占2个字符,也就是说utf8编码格式下varchar最多可以存储(65535-(1-3))/3个汉字,gbk编码最多可以存储(65535-(1-3))/2个汉字

如果一行只有一个varchar类型,那么上限确实是utf8编码格式下varchar最多可以存储(65535-(1-3))/3个汉字,gbk编码最多可以存储(65535-(1-3))/2个汉字,也就是说这不但是类型的上限也是一个表的一行的上限.

3.char与varchar的区别

char是固定长度的,如果char(4),那么不管存储的数据有没有4字节,都需要4字节的空间,varchar(4)如果存储的实际数据是1字节,那么还需要1字节存储字符串长度,所以实际占空间2字节.

应用场景,如果所需的数据是多变的,那么应该使用varchar类型,如果担心长度不够用,可以将L定义的长一些.如果是固定长度的,那么应该使用char,应为char不需要多余字节维护长度.

七、日期与时间类型

date :日期 ‘yyyy-mm-dd’ ,占用3字节
datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 ,占用8字节
timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用4字节
如果更新数据,更新数据,timestamp类型时间戳会自动更新;在这里插入图片描述

八、enum和set

语法:
enum:枚举,“单选”类型;
enum(‘选项1’,‘选项2’,‘选项3’,…);
该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举值时,也可以添加对应的数字编号。
set:集合,“多选”类型;
set(‘选项值1’,‘选项值2’,‘选项值3’, …);
该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,…最多64个
在这里插入图片描述


http://www.lryc.cn/news/124061.html

相关文章:

  • Ceph部署
  • 打工日记-Vue3+Ts二次封装el-table
  • funbox3靶场渗透笔记
  • springcloud3 hystrix实现服务降级,熔断,限流以及案例配置
  • ComponentOne Studio ASP.NET MVC Crack
  • OPENCV C++(十一)
  • ES使用心得
  • Stable Diffusion - 幻想 (Fantasy) 风格与糖果世界 (Candy Land) 人物提示词配置
  • 部署K8S集群
  • 在时间和频率域中准确地测量太阳黑子活动及使用信号处理工具箱(TM)生成广泛的波形,如正弦波、方波等研究(Matlab代码实现)
  • 一百五十四、Kettle——Linux上安装Kettle9.3(踩坑,亲测有效,附截图)
  • PackageNotFoundError: No package metadata was found for bitsandbytes解决方案
  • uni-app和springboot完成前端后端对称加密解密流程
  • 【Unity造轮子】制作一个简单的2d抓勾效果(类似蜘蛛侠的技能)
  • Unity 人物连招(三段连击)
  • 关于WSL以及docker连接adb的坑
  • python安装第三方包时报错:...\lib\site-packages\pip\_vendor\urllib3\response.py...
  • 腾讯云从业者认证考试考点——云存储产品
  • 猿辅导Motiff与IXDC达成战略合作,将在UI设计领域推动AI革新更多可能性
  • 条件操作符(三目操作符)
  • (五)Unity开发Vision Pro——FAQ
  • GitOps 与 DevOps:了解关键差异,为企业做出最佳选择
  • Java实现Word文档转PDF,PDF转Word,PDF转Excel,PDF转换工具
  • Docker部署ES服务,全量同步的时候内存爆炸,ES自动关闭,CPU100%
  • Python——添加照片边框
  • 《高性能MySQL》——查询性能优化(笔记)
  • 【Linux操作系统】编译过程中遇到的问题-为什么加-c?执行文件提示无法执行二进制文件?main函数参数argc和*argv[]的作用和理解?
  • 【数据结构与算法——TypeScript】图结构(Graph)
  • C语言字符串拷贝函数详解及示例代码
  • IntelliJ IDEA热部署:JRebel插件的安装与使用