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

Mysql系列--3、数据类型

目录

一、数据类型是什么

二、数值类型

        2.1整数

        2.2bit

        2.3浮点数

        2.3.1float

        2.3.2double

        2.3.3decimal

三、文本、二进制类型

        3.1char

        3.2varchar

        3.3区别

四、日期和时间类型

五、枚举与集合


一、数据类型是什么

        在Mysql中数据类型本身就相当于一种约束,拦截不合法的数据,保证库中的数据均按用户要求存储。

二、数值类型

        2.1整数

(1)在mysql中不合法数据会被拦截;

(2)在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。可以通过UNSIGNED来说明某个字段是无符号的
注意:尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不
下,与其如此,还不如设计时,将int类型提升为bigint类型

 

        2.2bit

bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。//bit字段在显示时,是按照ASCII码对应的值显示。

        2.3浮点数

                2.3.1float
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节

若小数位数超过显示长度,mysql会四舍五入,但若四舍五入时超过限制时会拦截数据存储

        2.3.2double

        与float相似,只是范围扩大

        2.3.3decimal
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数decimal(5,2) 表示的范围是 -999.99 ~ 999.99
decimal(5,2) unsigned 表示的范围 0 ~ 999.99
decimal和float很像,但是有区别:
float和decimal表示的精度不一样

三、文本、二进制类型

        3.1char

char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255字符与字节的转换和编码格式有关,如utf8下一字符为三字节,gbk下一字符2字节字符可以为字母或汉字

        3.2varchar

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

//--验证了utf8确实是不能超过21844
mysql> create table tt11(name varchar(21845))charset=utf8; ERROR 1118 (42000): Row size too large. The maximum row size for the used
table type, not counting BLOBs, is 65535. You have to change some columns to
TEXT or BLOBsmysql> create table tt11(name varchar(21844)) charset=utf8;Query OK, 0 rows affected (0.01 sec)

        3.3区别

char是要多少直接给多少,varchar根据填入的数据给相应的空间

四、日期和时间类型

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

五、枚举与集合

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

注:enum用数字做下标对应选项时从1开始,且为整数对应

        set用数字做下标对应选项时从1开始,但为位图上一个比特位对应,如3其实对应选项1和选项2

        

集合查询使用find_ in_ set函数:
find_in_set(sub,str_list) :如果 sub str_list 中,则返回下标;如果不在,返回0
str_list 用逗号分隔的字符串
http://www.dtcms.com/a/288166.html

相关文章:

  • RTDETR融合DECS-Net中的FFM模块
  • Verilog *2* SPI-立创逻辑派G1测试-1
  • 多表查询-8-练习总结
  • 【LeetCode 热题 100】437. 路径总和 III——(解法一)递归递归!
  • 【Linux】mmap的介绍和使用
  • [硬件电路-36]:模拟电路的基本组成要素以及模拟信号处理
  • Python条件控制艺术:侦探破解犯罪谜题逻辑
  • 浏览器渲染原理——计算属性和布局过程常考内容
  • 如何实现一个定时任务
  • LibreTv在线观影项目部署开箱即用
  • 如何解决Flink CDC同步时间类型字段8小时时间差的问题,以MySQL为例
  • 相似度度量方法
  • 车载刷写框架 --- 关于私有节点刷写失败未报引起的反思
  • 暑期算法训练.4
  • 用虚拟机体验纯血鸿蒙所有机型!
  • 【成品设计】基于STM32的水资源监控系列项目
  • 几个好用的MCP分享
  • 使用 PlanetScope 卫星图像绘制水质参数:以莫干湖为例
  • 创建第二大脑--第五章 组织:以行动为导向
  • 使用Python进行文件拷贝的方法
  • NLP中情感分析如何结合知识图谱在跨文化领域提升观念分析和价值判断的准确性?
  • Dockerfile格式
  • windows wsl ubuntu 如何安装 open-jdk8
  • [硬件电路-39]:激光光路的光信号处理、模拟电路的电信号处理、数字电路的电信号处理、软件的信号处理,有哪些共通的操作、运算、变换?
  • BabyAGI 是一个用于自构建自主代理的实验框架
  • Java脚本API参数传递机制详解
  • 让Logo/文字“自己画自己”!✨
  • 一套完整的反向海淘代购系统是一项复杂的系统工程,需要整合电商、物流、支付、清关、仓储、用户服务等多个环节
  • Codeforces Round 1037(Div.3)
  • C++ 比较器(Comparator)超详细笔记