【数据库初阶】MySQL数据类型

图片名称
🎉博主首页: 有趣的中国人

🎉专栏首页: 数据库初阶

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构

在这里插入图片描述

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 MySQL数据类型 帮助您轻松入门,快速掌握核心概念。


如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!

文章目录

    • @[toc]
  • 1. 数值类型
    • 🎧1.1 数值类型纵览🎧
    • 🎧1.2 smallint 类型🎧
    • 🎧1.3 类比 C/C++ 截断操作🎧
    • 🎧1.4 修改表数据类型🎧
    • 🎧1.5 无符号类型🎧
  • 2. bit 类型
    • 🎧2.1 bit 类型介绍🎧
    • 🎧2.2 bit 类型详解🎧
  • 3. 小数类型
    • 🎧3.1 float类型🎧
    • 🎧3.2 decimal 类型🎧
  • 4. 字符串类型
    • 🎧4.1 char类型🎧
    • 🎧4.2 varchar类型🎧
    • 🎧4.3 char 和 varchar 比较🎧
  • 5. 日期类型
  • 6. enum 和 set
    • 🎧6.1 enum类型🎧
    • 🎧6.2 set 类型🎧
    • 🎧6.3 查找🎧

上一篇文章中,博主介绍了 :

  • MySQL表的相关操作

建议将上一篇文章看完之后再来看这篇文章,链接如下:

【数据库初阶】Linux中表的基础操作

那么接下来正文开始:



1. 数值类型

🎧1.1 数值类型纵览🎧

  • MySQL中数据类型为数值类型的如下:
数据类型字节数带符号最小值带符号最大值无符号最小值无符号最大值
TINYINT1-128 (-2^7)127 (2^7 - 1)0255 (2^8 - 1)
SMALLINT2-32,768 (-2^15)32,767 (2^15 - 1)065,535 (2^16 - 1)
MEDIUMINT3-8,388,608 (-2^23)8,388,607 (2^23 - 1)016,777,215 (2^24 - 1)
INT4-2,147,483,648 (-2^31)2,147,483,647 (2^31 - 1)04,294,967,295 (2^32 - 1)
BIGINT8-9,223,372,036,854,775,808 (-2^63)9,223,372,036,854,775,807 (2^63 - 1)018,446,744,073,709,551,615 (2^64 - 1)
  • 接下来,博主将以SMALLINT类型为例进行讲解:

🎧1.2 smallint 类型🎧

  1. 首先创建数据库 test1,之后进入此数据库:
    • 输入如下代码:
    • create database if not exists test1;
    • use test1;
  2. 创建表 t1,在其中插入一个类型为smallintid
    • create table if not exists t1(id smallint);
  3. 插入一条数据:
  • insert into t1 (id) values (100);

在这里插入图片描述

  1. 插入一个越界数 32768 或者 -32769
  • mysql> insert into t1 (id) values (32768);
  • mysql> insert into t1 (id) values (-32769);
  • 很明显会报错。

在这里插入图片描述

🎧1.3 类比 C/C++ 截断操作🎧

  • 如果我们在 C/C++ 中输入下面代码,会发生什么呢:
char ch = 12345;
std::cout << ch << std::endl;
  • 首先,因为char类型是 1 B y t e 1Byte 1Byte,范围是 -128 ~ 127
  • 所以很明显, 12345 12345 12345 超出范围了;
  • 但是一般情况下编译器不会直接报错,而是会在编译阶段发生截断操作
  • 这就意味着编译器只会读取 12345 12345 12345 转化成 二进制的低八位
    • 12345 12345 12345的二进制: 0011 0011 0011 0000 0000 0000 0011 0011 0011 1001 1001 1001
    • 截断: 0011 0011 0011 1001 1001 1001 (BIN) -> 57 57 57 (DEC)
  • 所以结果就是 57 57 57 对应的 ASCII 码值。
  • 所以在MySQL中在我们输入的时候就给了限制,这其实是对 程序员的一种约束

🎧1.4 修改表数据类型🎧

  • 如果我们将定义时比较大范围的类型改成比较小的类型会发生什么呢?例如将smallint 改变成 tinyint

在这里插入图片描述

  • 这里会直接报错,所以系统会 约束 程序员不要将大范围的类型转换成小范围的类型。

🎧1.5 无符号类型🎧

  • MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的;
  • 可以通过UNSIGNED来说明某个字段是无符号的;
  • 输入下面代码给刚才的 t1 表添加一列:
    • mysql> alter table t1 add column age tinyint unsigned;
    • 注意这里 unsigned 要放在 tinyint 后面。

在这里插入图片描述

  • 由于无符号的tinyint的范围是 0 ~ 255 ,尝试插入 256,输入以下代码:
    • insert into t1 (id, age) values (1,256);

在这里插入图片描述

  • 很明显,这也被约束了。

2. bit 类型

🎧2.1 bit 类型介绍🎧

  • bit(M) : 位字段类型。M表示每个值的位数,范围从1 ~64。如果M被忽略,默认为1
  • 创建表 t2,字段为 id intgender bit,代码如下:
mysql> create table if not exists t2(-> 		id int,-> 		gender bit-> );
  • 注意细节,默认bit就是1位
    在这里插入图片描述

🎧2.2 bit 类型详解🎧

  • 在表中插入两行:(10, 0)(20, 1)

    • 输入代码:
    • mysql> insert into t2 (id, gender) values (10, 0);
    • mysql> insert into t2 (id, gender) values (20, 1);
  • 进行查询:

    • 输入语句:mysql> select * from t2;

在这里插入图片描述

  • 说明:博主这个MySQL8.0版本之后,如果是在此版本之前,bit类型会显示ASCII码对应的值,但是我这个版本就显示十六进制了。

完整操作代码:

mysql> insert into t2 (id, gender) values (10, 0);
Query OK, 1 row affected (0.00 sec)mysql> insert into t2 (id, gender) values (20, 1);
Query OK, 1 row affected (0.01 sec)mysql> select * from t2;
+------+----------------+
| id   | gender         |
+------+----------------+
|   10 | 0x00           |
|   20 | 0x01           |
+------+----------------+
2 rows in set (0.00 sec)

3. 小数类型

🎧3.1 float类型🎧

  • 语法:float[(m, d)] [unsigned]

    • M 指定显示长度;
    • d 指定小数位数,占用空间4个字节。
  • 如果是 float(4,2),那么它的范围就是 -99.99 ~ 99.99,例如:

    • 插入99.99 是可以的:insert into t3 values(100, 99.99);
    • 插入 100.00 是不行的:insert into t3 values(100, 100.00);
    • 但是插入 99.994 也是可以的,但是会被优化掉(四舍五入):insert into t3 values(100, 99.994);
    • 类似的,插入-99.994是可以的,但是插入-99.995就不行了:
      • insert into t3 values(100, -99.994);
      • insert into t3 values(100, -99.995);

在这里插入图片描述

  • 完整代码:
mysql> create table t3(-> id int,-> salary float(4,2)-> );
Query OK, 0 rows affected, 1 warning (0.10 sec)mysql> insert into t3 values(100, 99.99);
Query OK, 1 row affected (0.01 sec)mysql> insert into t3 values(100, 100);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> insert into t3 values(100, 100.00);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> insert into t3 values(100, 99.994);
Query OK, 1 row affected (0.01 sec)mysql> insert into t3 values(100, -99.994);
Query OK, 1 row affected (0.00 sec)mysql> insert into t3 values(100, -99.995);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1
mysql> select * from t3;
+------+--------+
| id   | salary |
+------+--------+
|  100 |  99.99 |
|  100 |  99.99 |
|  100 | -99.99 |
+------+--------+
3 rows in set (0.00 sec)
  • 默认情况下,浮点数都是带符号的,如果不要带符号的浮点数,例如:float(4,2) unsigned 范围就是 0 ~ 99.99,这里就不尝试了。

🎧3.2 decimal 类型🎧

  • 语法:decimal(m, d) [unsigned] :

    • 定点数m指定长度;
    • d表示小数点的位数。
  • decimal(5,2) 表示的范围是 -999.99 ~ 999.99

  • decimal(5,2) unsigned 表示的范围 0 ~ 999.99

decimalfloat很像,但是有区别!

  • 他们表示的精度不一样!
  • 例如,创建下面的表:
mysql> create table t4(-> 		id int,-> 		salary1 float(10,8),-> 		salary2 decimal(10,8)-> );
  • 插入元素 23.12345612
    • mysql> insert into t4 values(100, 23.12345612, 23.12345612);
  • 查看结果:select * from t4;

在这里插入图片描述

  • 可以发现decimal的精度更准确,因此如果我们希望某个数据表示高精度,选择decimal
  • float表示的精度大约是7
    • decimal整数最大位数m65
    • 支持小数最大位数d30。如果d被省略,默认为0,如果m被省略,默认是10

完整代码:

mysql> create table t4(-> id int,-> salary1 float(10,8),-> salary2 decimal(10,8)-> );
Query OK, 0 rows affected, 1 warning (0.05 sec)mysql>  insert into t4 values(100, 23.12345612, 23.12345612);
Query OK, 1 row affected (0.01 sec)mysql> select * from t4;
+------+-------------+-------------+
| id   | salary1     | salary2     |
+------+-------------+-------------+
|  100 | 23.12345695 | 23.12345612 |
+------+-------------+-------------+
1 row in set (0.00 sec)

4. 字符串类型

🎧4.1 char类型🎧

  • 语法:char(L)

    • 固定长度字符串,L是可以存储的长度;
    • 单位为 字符
      • 注意这里是字符,不是字节,字符就是你实际存了多少个。
    • 最大长度值可以为255
  • 示例:

mysql> create table t5(-> 		id int,-> 		name char(3)-> );
  • 插入元素,下面都正确:

    • insert into t5 values(1,'张三三');
    • insert into t5 values(2,'abc');
    • insert into t5 values(3,'李四');
  • 因为存放的是字符,不管是字母还是汉字都是正确的,但是char不能超过255个字符。

🎧4.2 varchar类型🎧

  • 语法:varchar(L)
    • 可变长度字符串,
    • L表示字符长度,最大长度65535字节
      • 注意这里单位就是字节了!

关于L最大值的讲解:

  • utf8mb4中,每个字符可以是1~4个字节长度,具体可以看下图:

在这里插入图片描述

  • 那么L的最大值应该是什么呢?还需要了解下面一点:
  • 对于 VARCHAR,存储内容需要额外加上 1~2 字节的长度前缀,用于表示数据的实际字节长度:
    • 如果字段定义的最大长度 ≤ 255,使用 1 字节表示长度;
    • 如果字段定义的最大长度 > 255,使用 2 字节表示长度。
  • 因此,MySQL考虑的是最坏的情况:
    • 取出两个字节的长度,假设每个字符都是四个字节,就可以得到下面的结果:
    • ( 65535 − 2 ) / 4 = 16383 (65535 - 2) / 4 = 16383 (655352)/4=16383

在这里插入图片描述

  • 示例:
mysql> insert into t7 values(100, '我爱你,中国');
Query OK, 1 row affected (0.00 sec)mysql> select * from t7;
+------+--------------------+
| id   | name               |
+------+--------------------+
|  100 | 我爱你,中国         |
+------+--------------------+
1 row in set (0.00 sec)

🎧4.3 char 和 varchar 比较🎧

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

5. 日期类型

常用的日期有如下三个:

  • date :日期 'yyyy-mm-dd' ,占用三字节;

  • datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从 10009999 ,占用八字节;

  • timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用四字节。

  • 示例:

//创建表
mysql> create table birthday (t1 date, t2 datetime, t3 timestamp);
Query OK, 0 rows affected (0.01 sec)
//插入数据:
mysql> insert into birthday(t1,t2) values('1997-7-1','2008-8-8 12:1:1'); --插入两种时间
Query OK, 1 row affected (0.00 sec)
mysql> select * from birthday;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 1997-07-01 | 2008-08-08 12:01:01 | 2017-11-12 18:28:55 | --添加数据时,时间戳自动补上当前时间
+------------+---------------------+---------------------+
//更新数据:
mysql> update birthday set t1='2000-1-1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from birthday;
+------------+---------------------+---------------------+
| t1         | t2                  | t3                  |
+------------+---------------------+---------------------+
| 2000-01-01 | 2008-08-08 12:01:01 | 2017-11-12 18:32:09 | -- 更新数据,时间戳会更新成当前时间
+------------+---------------------+---------------------+

6. enum 和 set

🎧6.1 enum类型🎧

  • enum是枚举类型,学过C的都很熟悉;
  • 语法:
  • enum('选项1','选项2','选项3',...);

示例:

  1. 创建表
  2. 插入数据
    • 这里插入数据可以选一个插入;
    • 当然也可以用下标来插入 ,开始的下标是1
mysql> create table t8 (-> 		gender enum('男','女')-> );
mysql> insert into t8 values('男');
Query OK, 1 row affected (0.01 sec)mysql> insert into t8 values('女');
Query OK, 1 row affected (0.01 sec)// 或者下标:mysql> insert into t8 values(1);
Query OK, 1 row affected (0.01 sec)mysql> insert into t8 values(2);
Query OK, 1 row affected (0.01 sec)

🎧6.2 set 类型🎧

  • 语法:set('选项值1','选项值2','选项值3', ...);
  • 这是一个集合类型,可以从中选择多个!
  • 创建一个表,其中包含爱好的set类型

在这里插入图片描述

  • 向其中插入元素:

在这里插入图片描述

  • set中就不可以用下标了,这里是 位图的形式
    • 例如一共有五个爱好,如果想象成5个二进制位,如果对应的位置是你的爱好,此为就是1
    • 例如这五个全都是我的爱好,那么 00001 00001 00001 1111 1111 1111 就是 31 31 31

在这里插入图片描述

  • 如果只喜欢爬山和游泳,那么就是 0000 0000 0000 0011 0011 0011,转化成十进制就是 3 3 3

在这里插入图片描述

  • 那如果是0会发生什么呢?
    • 这里是空不是没有数据!

在这里插入图片描述

🎧6.3 查找🎧

  • 现在先看一下表:
mysql> select * from t9;
+--------+---------------------------------------+
| name   | hobby                                 |
+--------+---------------------------------------+
| Alice  | 爬山                                  |
| Alan   | 足球,代码                             |
| Mikael | 爬山,游泳,乒乓球,足球,代码            |
| Peter  | 爬山,游泳                             |
| kk     |                                       |
+--------+---------------------------------------+
5 rows in set (0.00 sec)
  • 假如我要查找所有喜欢爬山的人怎么找呢?用到 find_in_set() 函数
  • 这个函数表示查找一个元素是否在集合中,返回0为假,非0为真

在这里插入图片描述

mysql> select find_in_set('a','a,b');
+------------------------+
| find_in_set('a','a,b') |
+------------------------+
|                      1 |
+------------------------+
1 row in set (0.00 sec)
  • 所以就有了下面的用法:
    • where 有点类似于 if 语句
mysql> select * from t9 where find_in_set('爬山',hobby);
+--------+---------------------------------------+
| name   | hobby                                 |
+--------+---------------------------------------+
| Alice  | 爬山                                  |
| Mikael | 爬山,游泳,乒乓球,足球,代码            |
| Peter  | 爬山,游泳                             |
+--------+---------------------------------------+
3 rows in set (0.00 sec)
  • 当然,如果想要查找喜欢爬山和游泳的人,可以用and连接两个find_in_set()函数,例如:
mysql> select * from t9 where find_in_set('爬山',hobby) and find_in_set('游泳',hobby);
+--------+---------------------------------------+
| name   | hobby                                 |
+--------+---------------------------------------+
| Mikael | 爬山,游泳,乒乓球,足球,代码            |
| Peter  | 爬山,游泳                             |
+--------+---------------------------------------+
2 rows in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498704.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UVM】搭建一个验证平台

UVM环境组件 组件功能 sequence_item&#xff1a;包装数据 UVM中&#xff0c;所有的transaction都要从uvm_sequence_item派生sequence item是每一次driver与DUT互动的最小粒度内容sequence&#xff1a;产生数据 uvm_sequence是一个参数化的类&#xff0c;其参数是transactio…

小程序租赁系统开发的优势与应用探索

内容概要 在如今这个数码科技飞速发展的时代&#xff0c;小程序租赁系统开发仿佛是一张神奇的魔法卡&#xff0c;能让租赁体验变得顺畅如丝。想象一下&#xff0c;无论你需要租用什么&#xff0c;从单车到房屋&#xff0c;甚至是派对用品&#xff0c;只需动动手指&#xff0c;…

活动预告 | Microsoft Azure 在线技术公开课:使用 Azure OpenAI 服务构建生成式应用

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft Cloud 技术的了解。参加我们举办的“使用 Azure OpenAI 服务构建生成式应用”活动&#xff0c;了解如何使用包括 GPT 在内的强大的…

小程序信息收集(小迪网络安全笔记~

免责声明&#xff1a;本文章仅用于交流学习&#xff0c;因文章内容而产生的任何违法&未授权行为&#xff0c;与文章作者无关&#xff01;&#xff01;&#xff01; 附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;…

Jenkins管理多版本python环境

场景&#xff1a;项目有用到python3.8和3.9&#xff0c;python环境直接安装在jenkins容器内。 1、进入jenkins容器 docker exec -it jenkins /bin/bash 2、安装前置编译环境 # 提前安装&#xff0c;以便接下来的配置操作 apt-get -y install gcc automake autoconf libtool ma…

【PCIe 总线及设备入门学习专栏 4.2 -- PCI 总线的三种传输模式 】

文章目录 OverviewProgrammed I/O&#xff08;PIO&#xff09;Direct Memory Access (DMA)Peer-to-Peer 本文转自&#xff1a;https://blog.chinaaet.com/justlxy/p/5100053095 Overview 本文来简单地介绍一下PCI Spec规定的三种数据传输模型&#xff1a;Programmed I/O&…

抖音电商全年销售154亿单产业带商品,830个产业带销售额过亿

发布 | 大力财经 12月31日&#xff0c;抖音电商发布《直播间里的中国制造——2024抖音电商产业带发展报告》&#xff0c;全面盘点2024年全国产业带地区实体经济和中小商家在该平台的发展情况。 报告披露&#xff0c;过去一年&#xff0c;来自全国产业带地区的1.7亿款商品&…

前端页面展示本电脑的摄像头,并使用js获取摄像头列表

可以通过 JavaScript 使用 navigator.mediaDevices.enumerateDevices() 获取电脑上的摄像头列表。以下是一个示例代码&#xff0c;可以展示摄像头列表并选择进行预览。 HTML JavaScript 实现摄像头列表展示和预览 <!DOCTYPE html> <html lang"zh-CN">…

树莓派OpenWrt下怎么驱动带USB的摄像头

环境&#xff1a;使用VirtualBox虚拟机下安装的ubuntu22.04 LTS操作系统 安装编译需要的插件&#xff1a; sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ bzip2 ccache cmake cpio curl device-tree-compiler fas…

MIT Cheetah 四足机器人的动力学及算法 (I) —— 简化动力学模型

Title: MIT Cheetah 四足机器人的动力学及算法 Dynamics and Algorithm of the MIT Cheetah’’ Quadruped Robot [1] MIT Cheetah 四足机器人的动力学及算法 (I) —— 简化动力学模型 [2] MIT Cheetah 四足机器人的动力学及算法 (II) —— 刚体模型与前向运动学算法 [3] MIT C…

python版本的Selenium的下载及chrome环境搭建和简单使用

针对Python版本的Selenium下载及Chrome环境搭建和使用&#xff0c;以下将详细阐述具体步骤&#xff1a; 一、Python版本的Selenium下载 安装Python环境&#xff1a; 确保系统上已经安装了Python 3.8及以上版本。可以从[Python官方网站]下载并安装最新版本的Python&#xff0c;…

开源简史与概览

Think 1.论述“自由软件”与“开源软件”的区别与联系&#xff1f; 2.GitHub Trending 是一个能够快速找到有趣的新项目的地方&#xff1b;而 OpenLeaderboard 也是一个能够发现有趣而有影响力项目的地方。尝试从这两个网站中找到感兴趣的若干项目&#xff0c;挖掘并分析出上…

006-Jetpack Compose for Android之传感器数据

需求分析 想要看看手机的传感器数据&#xff0c;看看滤波一下能玩点什么无聊的。先搞个最简单的&#xff0c;手机本身的姿态。 需求&#xff1a;采集手机姿态数据&#xff0c;显示在界面上。 那么我们需要&#xff1a; 一个文本标签类似的控件&#xff0c;显示手机姿态数据…

单元测试入门和mockup

Java 新手入门&#xff1a;Java单元测试利器&#xff0c;Mock详解_java mock-CSDN博客 这个是典型的before when assert三段式&#xff0c;学一下单测思路 这个没有动态代理&#xff0c;所以是直接class(对比下面) Jmockit使用笔记_增加代码覆盖率_覆盖try catch_使用new Mock…

抢先体验:人大金仓数据库管理系统KingbaseES V9 最新版本 CentOS 7.9 部署体验

一、简介 KingbaseES 是中国人大金仓信息技术股份有限公司自主研发的一款通用关系型数据库管理系统&#xff08;RDBMS&#xff09;。 作为国产数据库的杰出代表&#xff0c;它专为中国市场设计&#xff0c;广泛应用于政府、金融、能源、电信等关键行业&#xff0c;以高安全性…

HT-HaiBOX边缘计算盒 智慧工厂方案,智慧医疗方案,智慧加油站方案,智慧安防方案,智慧城市方案;方案定制开发

背景介绍 在当今数字化时代&#xff0c;各个行业对于智能化视频监控设备的需求日益增长。无论是安防监控&#xff0c;还是智慧工厂、智慧城市等领域&#xff0c;都需要高效、智能的设备来保障安全和提高生产效率。然而&#xff0c;传统的视频监控设备存在诸多痛点&#xff1a;…

Unity中实现转盘抽奖效果(一)

实现思路&#xff1a; 旋转转盘的z轴&#xff0c;开始以角加速度加速到角速度最大值&#xff0c;结束的时候&#xff0c;以角加速度减速使角速度减少到0&#xff0c;然后转盘z轴旋转的角度就是加上每秒以角速度数值大小&#xff0c;为了使角度不能一直增大&#xff0c;对360度…

LockSupport的源码实现原理(一)

目录 底层源码分析 线程状态变化 许可证机制 中断处理 底层源码分析 public class LockSupport {// Unsafe实例private static final Unsafe U Unsafe.getUnsafe();// Thread对象中parkBlocker字段的偏移量private static final long PARKBLOCKER U.objectFieldOffset(Thre…

电子应用设计方案80:智能桌椅系统设计

智能桌椅系统设计 一、引言 智能桌椅系统旨在为用户提供更加舒适、便捷和个性化的使用体验&#xff0c;适应不同的工作和学习场景。 二、系统概述 1. 系统目标 - 实现桌椅高度、角度的自动调节&#xff0c;适应不同用户的身体尺寸和使用需求。 - 具备坐姿监测和提醒功能&…

【SpringBoot】深度解析 Spring Boot 拦截器:实现统一功能处理的关键路径

前言 &#x1f31f;&#x1f31f;本期讲解关于拦截器的详细介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不多说…