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

[MySQL]MySQL数据类型

文章目录

  • 数据类型分类
  • 数值类型
    • tinyint类型
    • bit类型
    • float类型
    • decimal类型
  • 字符串类型
    • char类型
    • varchar类型
    • char和varchar对比
    • 日期和时间类型
    • enum和set类型

数据类型分类

MySQL中,支持各种各样的类型,比如表示数值的整型浮点型,文本、二进制类型、时间日期型和String类型。

在这里插入图片描述


数值类型

在这里插入图片描述

tinyint类型

tinyint类型用于存放数值比较小的整数,取值范围-128~127

数值越界测试:

mysql> create table t1 (-> data tinyint-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t1;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| data  | tinyint(4) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> insert into t1 (data) values (1);
Query OK, 1 row affected (0.00 sec)mysql> insert into t1 (data) values (128);
ERROR 1264 (22003): Out of range value for column 'data' at row 1
mysql> insert into t1 (data) values (-129);
ERROR 1264 (22003): Out of range value for column 'data' at row 1mysql> select * from t1;
+------+
| data |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

在C/C++中,如果赋值超出类型范围,会发生对应的数据类型截断,编译器不会报错,但是在MySQL中,数据必须具有很强的明确性,超出数据类型的范围,MySQL不允许插入数据。
所以在MySQL中,数据类型是一种约束。

说明:

  • 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。
  • 可以通过UNSIGNED来说明某个字段是无符号的。

案例:

mysql> create table t2 (-> data tinyint unsigned -> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t2;
+-------+---------------------+------+-----+---------+-------+
| Field | Type                | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| data  | tinyint(3) unsigned | YES  |     | NULL    |       |
+-------+---------------------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> insert into t2 (data) values (255);
Query OK, 1 row affected (0.00 sec)mysql> insert into t2 (data) values (-1);
ERROR 1264 (22003): Out of range value for column 'data' at row 1mysql> select * from t2;
+------+
| data |
+------+
|  255 |
+------+
1 row in set (0.00 sec)

bit类型

基本语法:

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

举例:

mysql> create table t3 (-> id int,-> data bit(8)-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t3;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| data  | bit(8)  | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> insert into t3 (id, data) values (10, 10);
Query OK, 1 row affected (0.00 sec)mysql> select * from t3;
+------+------+
| id   | data |
+------+------+
|   10 | 
+------+------+
1 row in set (0.00 sec)

通过上面的案例,我们发现bit字段在显示时不是直接显示数值大小的。

bit字段在显示时,是按照ASCII码对应的值显示的。

mysql> insert into t3 (id, data) values (65, 65);
Query OK, 1 row affected (0.00 sec)mysql> select * from t3;
+------+------+
| id   | data |
+------+------+
|   10 | 
|   65 | A    |
+------+------+
2 rows in set (0.00 sec)

bit可以表示只存放1或0的数值需求,这样可以节省空间。

mysql> create table t4 (-> data bit(1)-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t4;
+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| data  | bit(1) | YES  |     | NULL    |       |
+-------+--------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> insert into t4 (data) values (1);
Query OK, 1 row affected (0.00 sec)mysql> insert into t4 (data) values (0);
Query OK, 1 row affected (0.00 sec)mysql> insert into t4 (data) values (2);
ERROR 1406 (22001): Data too long for column 'data' at row 1

float类型

基本语法:

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

案例:
float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入。

mysql> create table t5 (-> data float(4, 2)-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t5;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| data  | float(4,2) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> insert into t5 (data) values (99.99);
Query OK, 1 row affected (0.01 sec)mysql> insert into t5 (data) values (-99.99);
Query OK, 1 row affected (0.01 sec)mysql> insert into t5 (data) values (-99.991);
Query OK, 1 row affected (0.01 sec)mysql> insert into t5 (data) values (-99.996);
ERROR 1264 (22003): Out of range value for column 'data' at row 1
mysql> select * from t5;
+--------+
| data   |
+--------+
|  99.99 |
| -99.99 |
| -99.99 |
+--------+
3 rows in set (0.00 sec)

案例:
如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数,范围是 0 ~ 99.99

mysql> create table t6 (-> data float(4,2) unsigned -> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.01 sec)mysql> desc t6;
+-------+---------------------+------+-----+---------+-------+
| Field | Type                | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| data  | float(4,2) unsigned | YES  |     | NULL    |       |
+-------+---------------------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> insert into t6 (data) values (0);
Query OK, 1 row affected (0.01 sec)mysql> insert into t6 (data) values (99.99);
Query OK, 1 row affected (0.00 sec)mysql> insert into t6 (data) values (-1);
ERROR 1264 (22003): Out of range value for column 'data' at row 1
mysql> insert into t6 (data) values (100);
ERROR 1264 (22003): Out of range value for column 'data' at row 1

decimal类型

基本语法:

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

案例:

mysql> create table t7 (-> data1 float(10,8),-> data2 decimal(10,8)-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t7;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| data1 | float(10,8)   | YES  |     | NULL    |       |
| data2 | decimal(10,8) | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> insert into t7 (data1, data2) values (23.12345612, 23.12345612);
Query OK, 1 row affected (0.00 sec)mysql> select * from t7;
+-------------+-------------+
| data1       | data2       |
+-------------+-------------+
| 23.12345695 | 23.12345612 |
+-------------+-------------+
1 row in set (0.00 sec)

通过上面的案例,我们可以发现decimal的精度更准确,因此当我们需要高精度储存浮点数时,优先使用decimal。

  • float表示的精度大约是7位。
  • decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略,默认是10。

字符串类型

char类型

基本语法:

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

案例:

mysql> create table t8 (-> data char(2)-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t8;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| data  | char(2) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)mysql> insert into t8 (data) values ('OK');
Query OK, 1 row affected (0.01 sec)mysql> insert into t8 (data) values ('好的');
Query OK, 1 row affected (0.00 sec)mysql> insert into t8 (data) values ('中国人');
ERROR 1406 (22001): Data too long for column 'data' at row 1mysql> select * from t8;
+--------+
| data   |
+--------+
| OK     |
| 好的   |
+--------+
2 rows in set (0.00 sec)

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

mysql> create table t8 (-> data char(256)-> )engine=innodb default charset-utf8;
ERROR 1074 (42000): Column length too big for column 'data' (max = 255); use BLOB or TEXT instead

varchar类型

基本语法:

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

案例:

mysql> create table t9 (-> data varchar(5)-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.03 sec)mysql> desc t9;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| data  | varchar(5) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> insert into t9 value ('hello');
Query OK, 1 row affected (0.00 sec)mysql> insert into t9 value ('你好,世界');
Query OK, 1 row affected (0.00 sec)mysql> select * from t9;
+-----------------+
| data            |
+-----------------+
| hello           |
| 你好,世界      |
+-----------------+
2 rows in set (0.00 sec)

关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:

  • varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532。
  • 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844(因为utf中,一个字符占用3个字节),如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)。
mysql> create table t10 (-> data varchar(21845)-> )engine=innodb default charset=utf8;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBsmysql> create table t10 ( data varchar(21844) )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t10;
+-------+----------------+------+-----+---------+-------+
| Field | Type           | Null | Key | Default | Extra |
+-------+----------------+------+-----+---------+-------+
| data  | varchar(21844) | YES  |     | NULL    |       |
+-------+----------------+------+-----+---------+-------+
1 row in set (0.00 sec)

char和varchar对比

在这里插入图片描述

如何选择定长或变长字符串?

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

日期和时间类型

常用的日期有如下三个:

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

案例:

mysql> create table t11 (-> d1 date,-> d2 datetime,-> d3 timestamp-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc t11;
+-------+-----------+------+-----+-------------------+-----------------------------+
| Field | Type      | Null | Key | Default           | Extra                       |
+-------+-----------+------+-----+-------------------+-----------------------------+
| d1    | date      | YES  |     | NULL              |                             |
| d2    | datetime  | YES  |     | NULL              |                             |
| d3    | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------+-----------+------+-----+-------------------+-----------------------------+
3 rows in set (0.00 sec)mysql> insert into t11 (d1, d2) values ('2023-1-29', '2023-1-29 10:00:00');
Query OK, 1 row affected (0.00 sec)mysql> insert into t11 (d1, d2) values ('2023-1-30', '2023-1-30 11:00:00');
Query OK, 1 row affected (0.00 sec)mysql> select * from t11;
+------------+---------------------+---------------------+
| d1         | d2                  | d3                  |
+------------+---------------------+---------------------+
| 2023-01-29 | 2023-01-29 10:00:00 | 2023-01-29 21:45:20 |
| 2023-01-30 | 2023-01-30 11:00:00 | 2023-01-29 21:45:29 |
+------------+---------------------+---------------------+
2 rows in set (0.00 sec)

在添加数据时,timestamp时间戳会自动添加当前时间,修改数据时同理也会修改当前时间。

mysql> select * from t11;
+------------+---------------------+---------------------+
| d1         | d2                  | d3                  |
+------------+---------------------+---------------------+
| 2023-01-29 | 2023-01-29 10:00:00 | 2023-01-29 21:45:20 |
| 2023-01-30 | 2023-01-30 11:00:00 | 2023-01-29 21:45:29 |
+------------+---------------------+---------------------+
2 rows in set (0.00 sec)mysql> update t11 set d1='2023-1-31';
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 0mysql> select * from t11;
+------------+---------------------+---------------------+
| d1         | d2                  | d3                  |
+------------+---------------------+---------------------+
| 2023-01-31 | 2023-01-29 10:00:00 | 2023-01-29 21:47:55 |
| 2023-01-31 | 2023-01-30 11:00:00 | 2023-01-29 21:47:55 |
+------------+---------------------+---------------------+
2 rows in set (0.00 sec)

enum和set类型

基本语法:

enum:枚举,“单选”类型;
enum('选项1','选项2','选项3',...);

该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举值时,也可以添加对应的数字编号。

set:集合,“多选”类型;
set('选项值1','选项值2','选项值3', ...);

该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,… 最多64个。

说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。

案例:
有一个调查表votes,需要调查人的喜好, (登山,游泳,篮球,武术)中选择(可以多选),性别(男,女)单选。

mysql> create table votes (-> name varchar(20),-> hobby set('登山','游泳','武术','篮球'),-> gender enum('男','女')-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.02 sec)mysql> desc votes;
+--------+------------------------------------------+------+-----+---------+-------+
| Field  | Type                                     | Null | Key | Default | Extra |
+--------+------------------------------------------+------+-----+---------+-------+
| name   | varchar(20)                              | YES  |     | NULL    |       |
| hobby  | set('登山','游泳','武术','篮球')         | YES  |     | NULL    |       |
| gender | enum('男','女')                          | YES  |     | NULL    |       |
+--------+------------------------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

插入数据:

mysql> insert into votes (name, hobby, gender) values ('Jame', '游泳,武术', '男');
Query OK, 1 row affected (0.00 sec)mysql> insert into votes (name, hobby, gender) values ('Lisa', '游泳,登山', '女');
Query OK, 1 row affected (0.00 sec)mysql> insert into votes (name, hobby, gender) values ('Jack', '游泳,篮球,武术', '男');
Query OK, 1 row affected (0.01 sec)mysql> insert into votes (name, hobby, gender) values ('Maria', '游泳', '女');
Query OK, 1 row affected (0.00 sec)mysql> select * from votes;
+-------+----------------------+--------+
| name  | hobby                | gender |
+-------+----------------------+--------+
| Jame  | 游泳,武术            ||
| Lisa  | 登山,游泳            ||
| Jack  | 游泳,武术,篮球       ||
| Maria | 游泳                 ||
+-------+----------------------+--------+
4 rows in set (0.00 sec)

有如上数据,想查找所有喜欢游泳的人:

mysql> select * from votes where hobby='游泳';
+-------+--------+--------+
| name  | hobby  | gender |
+-------+--------+--------+
| Maria | 游泳   ||
+-------+--------+--------+
1 row in set (0.00 sec)

我们会发现我们只能查找到兴趣爱好只有游泳的人,不能查询到兴趣爱好中含有游泳的人。

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

示例:

mysql> select find_in_set('a', 'a,b,c');
+---------------------------+
| find_in_set('a', 'a,b,c') |
+---------------------------+
|                         1 |
+---------------------------+
1 row in set (0.00 sec)mysql> select find_in_set('d', 'a,b,c');
+---------------------------+
| find_in_set('d', 'a,b,c') |
+---------------------------+
|                         0 |
+---------------------------+
1 row in set (0.00 sec)

在votes表中查询喜欢游泳的人:

mysql> select * from votes where find_in_set('游泳', hobby);
+-------+----------------------+--------+
| name  | hobby                | gender |
+-------+----------------------+--------+
| Jame  | 游泳,武术            ||
| Lisa  | 登山,游泳            ||
| Jack  | 游泳,武术,篮球       ||
| Maria | 游泳                 ||
+-------+----------------------+--------+
4 rows in set (0.00 sec)

相关文章:

[MySQL]MySQL数据类型

文章目录数据类型分类数值类型tinyint类型bit类型float类型decimal类型字符串类型char类型varchar类型char和varchar对比日期和时间类型enum和set类型数据类型分类 MySQL中,支持各种各样的类型,比如表示数值的整型浮点型,文本、二进制类型、…...

利用steam搬砖信息差赚钱,单账号200+,小白也能轻松上手!

现在很多人在做互联网而且也赚到钱了,但还是有很多人赚不到钱,这是为什么? 这里我不得不说一个词叫做赛道,也就是选择,选择大于努力,项目本身大于一切,90%的人都觉得直播带货赚钱,但…...

树与二叉树与森林的相关性质

文章目录树的度树的性质二叉树的性质二叉树与森林树的度 树的度指的是树内所有节点的度数的最大值。 节点的度:节点所拥有的子树的数量。简单来说,我们直接数分支即可,例如下图: 在这颗二叉树中,节点2的度为2&#…...

MySQL面试题

文章目录MySQL索引Mysql索引分类InnDB索引与MyISAM索引实现有什么区别一个表中如果没有创建索引,那么还会创建B树么?B树原理B树怎么来的B树 叶子节点和非叶子节点B树能存储多少数据?MySQL索引 Mysql索引分类 mysql 索引分为三类&#xff1a…...

【蓝桥OJ—C语言】高斯日记、马虎的算式、第39级台阶

文章目录高斯日记马虎的算式第39级台阶总结高斯日记 题目: 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。 后来人们知道&am…...

基于深度学习的三维重建网络PatchMatchNet(二):dtu数据集介绍及PatchMatchNet中加载数据部分代码解析

目录 1.dtu数据集介绍 2. PatchMatchNet中数据加载模块详解(dtu_yao_eval.py) 1.dtu数据集介绍 dtu数据集下载地址:dtu...

一文3000字从0到1实现基于requests框架接口自动化测试项目实战(建议收藏)

requests库是一个常用的用于http请求的模块,它使用python语言编写,在当下python系列的接口自动化中应用广泛,本文将带领大家深入学习这个库 Python环境的安装就不在这里赘述了,我们直接开干。 01、requests的安装 windows下执行…...

【RockerMQ】001-RockerMQ 概述

【RockerMQ】001-RockerMQ 概述 文章目录【RockerMQ】001-RockerMQ 概述一、MQ 概述1、MQ 简介2、MQ 用途限流削峰异步解耦数据收集3、常见 MQ 产品概述对比4、MQ 常见协议二、RocketMQ 概述1、简介2、发展历史一、MQ 概述 1、MQ 简介 MQ,Message Queue&#xff0…...

阿里是如何做Code Review的?

作为卓越工程文化的一部分,Code Review其实一直在进行中,只是各团队根据自身情况张驰有度,松紧可能也不一,这里简单梳理一下CR的方法和团队实践。 一、为什么要CR 提前发现缺陷 在CodeReview阶段发现的逻辑错误、业务理解偏差、性…...

内核调试:一次多线程调试与KASAN检测实例

内核调试:一次多线程调试与KASAN检测实例1. 环境说明2. 问题描述3. 问题排查与定位3.1 线程并发问题(减少线程数)3.2 轻量地跟踪对象的分配与释放3.3 检查空指针与潜在修改者3.4 KASAN检查4. 总结博主最近遇到一个非常顽固的多线程BUG&#x…...

Java - 数据结构,队列

一、什么是队列 普通队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstIn First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列&#xf…...

ccc-pytorch-感知机算法(3)

文章目录单一输出感知机多输出感知机MLP反向传播单一输出感知机 内容解释: w001w^1_{00}w001​:输入标号1连接标号0(第一层)x00x_0^0x00​:第0层的标号为0的值O11O_1^1O11​:第一层的标号为0的输出值t:真实…...

LeetCode 225.用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() …...

【面试】spring控制反转IOC

目录一.说明二.ioc的概念和作用三.优点四.实现机制五.IOC和DI的区别六.设计原则一.说明 1.ioc的概念2.ioc的作用3.ioc的优点4.ioc的实现机制 二.ioc的概念和作用 1.全称Inversion of Control2.控制:创建对象的控制权3.反转:以前对象是程序员主动去new…...

Spring 事务管理详解及使用

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

LeetCode 232.用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元…...

go面向对象思想封装继承多态

go貌似都没有听说过继承,当然这个继承不像c中通过class类的方式去继承,还是通过struct的方式,所以go严格来说不是面向对象编程的语言,c和java才是,不过还是可以基于自身的一些的特性实现面向对象的功能,面向…...

【网络原理9】HTTP响应篇

在前两篇文章当中,已经分别介绍了HTTP是什么,以及常见的请求头当中的属性。【网络原理7】认识HTTP_革凡成圣211的博客-CSDN博客HTTP抓包,Fiddler的使用https://blog.csdn.net/weixin_56738054/article/details/129148515?spm1001.2014.3001.…...

SpringCloud之Seata(二)

4.Seata如何应用于项目? 安装seata及修改配置 4.1 官网下载Seata安装包 4.2 修改seata/config.txt 4.2.1 修改存储方式 store.db.dbTypemysql store.db.driverClassNamecom.mysql.jdbc.Driver store.db.urljdbc:mysql://你的IP:3306/seata?useUnicodetrue sto…...

【Redis-入门阶段】基本数据结构

Redis支持多种数据结构,包括字符串、列表、哈希、集合和有序集合。这些数据结构在Redis中被称为键值对,其中键是一个字符串,值可以是一个字符串、列表、哈希、集合或有序集合。接下来,我们将详细介绍这些数据结构的使用方法。字符…...

BACnet协议详解————MS/TP物理层,数据链路层和网络层

文章目录写在前面1 物理层2 数据链路层MSTP的流程如下noteMS/TP帧格式3 网络层写在前面 这周加更一篇,来弥补一下之前落下的进度。简单的说两句,之前讲应用层的时候,只是跟官方的手册来同步一下,但是从个人理解来说,自…...

Tomcat

Tomcat 1 简介 1.1 什么是Web服务器 Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。 Web服务器是安…...

创客匠人直播:构建公域到私域的用户增长模型

进入知识付费直播带货时代,很多拥有知识技能经验的老师和培训机构吃到了流量红利。通过知识付费直播,老师们可以轻松实现引流、变现,还可以突破时间、地域的限制,为全国各地的学员带来优质的教学服务,因此越来越受到教…...

机试指南

文章目录零、绪论和IDE安装int取值范围常犯的编程小错误一、枚举和模拟 (暴力求解)(一) 枚举1.Reverse函数 求 反序数2.程序出错的原因1.编译错误 (compile):基本语法错误2.链接错误 (link):函数名写错了3.运行错误 (run):结果与预期不符&…...

Android CTA认证设定首选网络类型

需求 硬件只支持4G,过CTA认证时打网络电话,会出现3G网络的选择,会导致过不了,需要禁用3G网络选择功能。 Android 8.1.0 分析 可adb命令查看当前的网络类型 getprop | grep “network” 打印如下: [gsm.network.type]: [LTE,LTE] [ro.telephony.default_network]: [9] …...

Android 动态切换应用图标方案

经常听到大家讨论类似的需求,怀疑大厂是不是用了此方案,据我个人了解,多数头部 app 其实都是发版来更新节假日的 icon。当然本方案也是一种可选的方案,以前我也调研过,存在问题和作者所述差不多,此外原文链…...

SMART PLC斜坡函数功能块(梯形图代码)

斜坡函数Ramp的具体应用可以参看下面的文章链接: PID优化系列之给定值斜坡函数(PLC代码+Simulink仿真测试)_RXXW_Dor的博客-CSDN博客很多变频器里的工艺PID,都有"PID给定值变化时间"这个参数,这里的给定值变化时间我们可以利用斜坡函数实现,当然也可以利用PT1…...

不那么认真的linux复习

这是个不那么认真的linux总结,可能有一些错误 1、linuxkernel(内核)shell(外壳)fs(文件系统)pro/uti/tol(应用程序) 2、ls(列出文件) -a&#xf…...

Redis系列文章总纲

跟着老万学Redis 前言 从事开发工作这么久,很多核心技术其实都还只是局限在满足日常开发工作中的基础使用,并没有完整的总结研究。今年的目标之一是完成几个技术栈的系列博客,系统的总结一下知识体系,目前计划是从Redis开始。 Re…...

更新丨三大模块升级,助力高效交付商业项目!

功能更新!本文将介绍最新升级的步进漫游、行业方案、VR漫游三个模块,让您更快更好的了解系统能力,为您带来更加便捷、高效的使用体验。步进漫游 离线导出步进式漫游系统,是基于全景图自动生成三维建模的解决方案,实现大…...