第五站:MySQL常用典型数据类型

数值类型

tinyint类型

java 复制代码
tinyint:默认有符号整数,范围为-128~127
tingint unsigned:无符号整数,0~255;

注意:如果我们向MySQL中插入的值超过数据类型的定义时,插入不成功。反之如果插入成功了则数据一定是合法的。所以,mysql中,数据类型一般而言也是一种约束。这保证了数据库中的数据是可预期(数据在一定范围内),完整的(没有发生截断)。

bit类型

java 复制代码
bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1

注意:插入的值不能超出二进制M位所能表示出来的十进制数大小

java 复制代码
若插入的值位bit类型,简单使用select * from 表名,是不能查出bit类型那一列的元素的,需要改成这样:
以十六进制输出:select hex(属性列类型为bit的列名) from 表名;
#HEX:以十六进制输出
以十进制输出:select 属性列类型位bit的列名+0 from 表名;

注意:插入字母是按照对应的ascll码表上的数值插入的。

小数类型

float类型

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

注意: MySQL在保存值时会进行四舍五入

如上图所示,当我们插入大的值时,缺缺失一些位上的值。

如上图:出现了四舍五入,我的MySQL中float的精度为6位数,从前往后算,后面多余的位数就进行四舍五入。

decimal类型

java 复制代码
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数

decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略, 默认是10

注意: decimal和float很像,但是有区别: float和decimal表示的精度不一样 , 如果希望小数的精度高,推荐使用decimal。

char类型

java 复制代码
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255

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

char:长度固定,varchar:有上限,但是是用多少给你多少

varchar类型

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

注意:一个中文字符占3个字节

小结:

varchar 总字节上限为 65535,其中会占用 1~3 字节存储数据长度,实际可用数据字节为 65532。编码决定单字符占用字节,进而限制 varchar (n) 最大 n:

utf8:1 字符占 3 字节,最大 n = 65532 ÷ 3 = 21844

gbk:1 字符占 2 字节,最大 n = 65532 ÷ 2 = 32766

定长 char:直接开辟对应固定长度存储空间,预先分配固定空间,磁盘空间浪费,但查询效率更高

变长 varchar:不超过设定上限前提下,实际占用多少就开辟多少空间,用多少占多少,节省磁盘空间,但查询效率更低

enum和set

java 复制代码
enum:枚举,"单选"类型;
set:集合,"多选"类型;

集合类型:;在插入值时,可以是对应值,也可以是数值,这个数字最终转为二进制形式,从第一位开始对应于我所列举的集合中元素,若对应位为1,则插入该数;查询时同理。数字0代表着空串,占着位置。

集合查询使用find_ in_ set函数:

使用find_in_set函数一次只能查一个元素在一个集合中,若要查多个,可使用sql语言中的and做链接。

java 复制代码
find_in_set(sub,str_list) :如果sub 在str_list 中,则返回下标;
如果不在,返回0;str_list 用逗号分隔的字符串。
相关推荐
数智化管理手记3 小时前
财务大数据怎么管住资金风险?财务大数据和财务数智化到底怎么结合?
大数据·网络·数据库·人工智能·数据挖掘
晓子文集3 小时前
Tushare接口文档:指数成分和权重(index_weight)
大数据·数据库·python·金融·量化投资
吴声子夜歌3 小时前
MongoDB 4.2——入门指南
数据库·mongodb
吴声子夜歌3 小时前
MongoDB 4.x——高可靠
数据库·mongodb
light blue bird4 小时前
组轴式执行引擎 ✅ 多线程调度组装组件
数据库·信息可视化·oracle·桌面端winform·多节点端·gdi图表绘制开发
码农学院4 小时前
Node.js MongoDB构建户外用品GEO优化内容管理平台
数据库·mongodb·node.js
吴声子夜歌4 小时前
MongoDB 4.x——治理经验
数据库·mongodb
黄华SJ520it5 小时前
门店预约系统开发:提升服务行业数字化转型
前端·数据库·系统开发
万事可爱^5 小时前
Claude 新发布的 Opus 5,系统提示语删了 80%,半价还能逼近 Fable 5
android·服务器·数据库·人工智能·claude
早点睡啊Y5 小时前
深入学LangChain官方文档:Observability 与 Studio——先看清 Agent 到底做了什么
java·数据库·langchain