Linux应用开发————mysql数据库表
mysql数据库表操作
查看表的结构
mysql> desc / describe 表名;
或者:
mysql> show create table 表名;
常见数据库引擎: innodb, myISAM...
删除表
mysql> drop table [if exists] 表名 ;
表(结构)的修改
一般语法格式: alter table 表名 操作方式 数据
1. 修改表名称
mysql> alter table 表名 rename newtb;
2. 添加字段
mysql> alter table 表名 add 字段名 字段类型; [位置];
位置: 增加到最后
first:增加到第一列
after 已有字段: 增加到指定字段之后;
3. 修改字段名称:
mysql> alter table 表名 change 旧字段名 新字段名 字段类型;
4. 修改字段类型:
mysql> alter table 表名 modify 字段名 字段类型;
5. 修改字段顺序:
mysql> alter table 表名 modify 字段名 字段类型 位置;
位置:
first:增加到第一列
after 已有字段: 增加到指定字段之后;
删除字段
mysql> alter table 表名 drop 字段名 ;
设置约束
1) 设置 primary key / unique key
mysql> alter table 表名 add primary key / unique key (字段名) ;
2) 设置 not null 和 auto_increment
mysql> alter table 表名 modify 字段名 字段类型 not null / auto_increment;
3) default 约束
mysql> alter table 表名 alter 字段名 set default '默认值';
4) 外键约束
mysql> ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(字段) REFERENCES 主表名(主键列) [ON DELETE 参数]
取消约束
1) 取消 primary key / foreign key
mysql> alter table 表名 drop primary key / foreign key;
2) 取消 unique key
mysql> alter table 表名 drop index 字段名;
3) 取消 default 约束
mysql> alter table 表名 alter 字段名 drop default;
4) 取消 not null 和 auto_increment
mysql> alter table 表名 modify 字段名 字段类型;
修改表中字段的字符集
mysql> alter table 表名 convert to character set utf8;
数据的操作
1. 数据增加
SQL 语句的语法格式:
insert into 表名 [(字段1,字段2...)] values (值11,值12...)[,(值21,值22...)];
2. 数据删除
SQL 语句的语法格式:
delete from 表名 where 条件;
特别注意:数据删除时一定要指定条件,否则会删除所有数据;
条件如何构建:
MYSQL 提供了关系运算符和逻辑运算符: > < != = >= <= && || ! xor
3. 数据修改
SQL 语句的语法格式:
update 表名 set 字段1 = 值1,字段2 = 值2 where 条件;
4. 数据查询 (单表查询)
4.1 查看所有数据:
mysql> select * from 表名;
4.2 查看指定字段数据:
mysql> select 字段名1,字段名2... from 表名;
4.3 避免重复查询:
mysql> select distinct 字段名 from 表名;
4.4 空值查询
mysql> select 字段名 from 表名 where 字段 = NULL; error
mysql> select 字段名 from 表名 where 字段 is NULL; OK
4.5 条件查询
mysql> select 字段名,... from 表名 where 条件;
mysql> select 字段名,... from 表名 where 条件1 and 条件2;
4.6 范围查询
mysql> select 字段名,... from 表名 where 字段 between 值1 and 值2;
mysql> select 字段名,... from 表名 where 字段 not between 值1 and 值2;
多表连接查询
1.内连接
又称为简单连接,或者自然连接,是一种常见的连接查询,内连接使用比较运算符,对两个表中的数据,进行比较,并列出与连接条件匹配的数据行,组合成新的记录。在内连接查询中,只有满足条件的记录,才会出现在查询结果中简单理解:返回表1和表2同时满足条件的记录。
语法格式
SELECT 查询字段 FROM 表1[INNERIJOIN 表2 ON 表1.关系字段= 表2.关系字段;
例子:
两个表联合查询:
select 字段名... FROM 表1 INNERJOIN 表2 ON 条件
多个表查询时,可使用:
select 字段名...FROM 表1 INNERJOIN 表2 ON 条件
INNERJOIN 表3 ON 条件
2.外连接:
内连接查询,返回的结果,只包含符合查询条件和连接条件的数据有时需要返回的查询结果,不仅包含符合条件的数据,而且,包括左表和右表中的所有数据,此时,需要使用外连接。
左外连接
以左边的表为主,在右边的表中找到所有满足条件的元素,并把他们连接起来,如果没有对应的元素,则在相应位置上的值为null。
select 字段名... FROM 表1 LEFT JOIN 表2 ON 条件;
右外连接
与左外连接相反,以右边的表为主,在左边的表中找到所有满足条件的元素,并把他们连接起来,如果没有对应的元素,则在相应位置上的值为nuIl。
select 字段名... FROM 表1 RIGHT JOIN 表2 ON 条件;
SQL语句的执行顺序
子查询
子查询是指一个查询语句嵌套在另一个查询语句内部的查询,在select子句中先计算子查询,子查询结果作为外层另一个查询的条件,查询可以基于个表或者多个表.子查询中常用的操作符有ANY(SOME),ALL,IN,EXISTS,子查询可以添加到select.update.delete语句中,而且可以进行多层嵌套。子查询也可以使用比较运笪符如“<,>,<=,>=,!=,=”等
1.带有ANY(SOME)关键字的子查询:
它允许创建一个表达式,对子查询的返回值列表,进行比较,只要满足内层子查询中的任意一个比较条件,就返回一个结果作为外层查询条件。
select 字段名...FROM 表 where 字段 > ANY (select字段名..... FROM 表)
2.带有ALL关键字的子查询:
ALL与ANY不同,表示同时满足所有内层查询的条件
select 字段名... FROM 表where 字段>ALL(select 字段名...FROM表);
3.带有EXISTS关键字的子查询:
EXISTS后面的参数,可以是任意一个子查询,这个子查询的作用相当于测试,它不产生任何数据,只返回TRUE或FALSE.当返回值为TRUE时,外层的查询才会执行,
select字段名... FROM表where EXISTS (select字段... FROM 表);
只有在 (select字段... FROM 表)部分的子查询存在结果时,才去执行外层的查询
4.带有IN关键字的子查询:
进行子查询时,内层查询语句返回一个数据列,这个使用IN关键字,数据列中的值,将供外层查询语句进行比较操作
select 字段名... FROM 表where 字段IN (select 字段名... FROM 表);
5.带有比较运算符的子查询:
子查询中,可以使用比较运算符,比如<、>、<=、>=、=、!=等
select 字段名... FROM表where字段=(select字段... FROM 表);请注意如果用=比较运算符,子查询的结果往往是唯一的
mysqlCAPI接口函数
函数 | mysql_init |
头文件 | #include<mysql/mysql.h> |
函数原型 | MYSQL *mysql_init(MYSQL *mysql) |
功能 | 分配或初始化MYSQL对象。 |
参数 | mysql:若非空,将初始化参数代表的连接对象; 如果mysql是NULL指针,该函数将分配、初始化、并返 回新对象。否则,将初始化对象,并返回对象的地址。如果 mysql_init()分配了新的对象,当调用mysql_close()来关闭 数据库连接时。将一起释放该对象。 |
返回值 | MYSQL*句柄。如果无足够内存以分配新的对象,返回NULL。 |
函数 | mysql_close |
头文件 | #include<mysql/mysql.h> |
函数原型 | void mysql_close(MYSQL *mysql) |
功能 | 关闭MYSQL连接对象。 |
参数 | 1.mysql:关闭前面打开的连接。 |
返回值 | 无 |
函数 | mysql_real_connect() |
头文件 | #include<mysql/mysql.h> |
函数原型 | MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag) |
功能 | 连接数据库。 |
参数 | 1.mysql: mysql连接对象, 2.host: 主机名 3.user: 用户名 4.passwd: 用户密码 5.db: 数据库名称 ,设为NULL,代表连接MYSQL默认库 6.port: 数据库TCP/IP连接端口 一般设为0; 7.socket: 套接字或命名管道 一般设为NULL, 8.client_flag, 如果设为CLIENT_MULTI_STATEMENTS.表明可支持一 次执行多 条SQL语句 (用;分开),但多语句执行时需要利用 mysql_next_result 处理 上一条语句是否产生结果集,若上一条语句生成结果集,结果集必须经过释 放才能继续执行下一条SQL语句。这在多语句执行时尤为重要。 通常为0未设置只能支持单语句执行。 |
返回值 | 如果连接成功,返回MYSQL*连接句柄。如果连接失败,返回NULL。对于成功的连接,返回值与第1个参数的值相同 |
函数 | mysql_querymysql_real_query |
头文件 | #include<mysql/mysql.h> |
函数原型 | int mysql_query(MYSQL *mysql, const char *query) int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length) |
功能 | 执行由“query”指向的SQL语句。mysql_query()不能用于包含二进制数据的查询,应使用mysql_real_query()取而代之(二进制数据可能包含字符‘\0’,mysql_query()会将该字符解释为查询字符串结束) |
参数 | 1.mysql:mysql连接对象, 2.query:需查询的SQL 语句 3.length:SQL 语句字符长度 |
返回值 | 如果查询成功,返回0。如果出现错误,返回非0值。 |
函数 | mysql_next_result |
头文件 | #include<mysql/mysql.h> |
函数原型 | int mysql_next_result(MYSQL *mysql) |
功能 | mysql_next_result 读取下一个语句结果,并返回一个状态以指示是否存在更多结果,常用于多语句执行时使用; 在每次调用mysql_next_result之前,如果当前语句是返回结果集(而不仅仅是结果状态)的语句,则必须为其调用mysql_free_result 释放结果集。 调用mysql_next_result之后,连接的状态就为您准备好了下一条语句的调用; |
参数 | 1.mysql:mysql连接对象, |
返回值 | 执行成功: 返回0 代表仍存在更多结果集。 返回-1 代表不存在更多结果集。 如果出现错误,返回 >0 值。 |
函数 | mysql_store_result |
头文件 | #include<mysql/mysql.h> |
函数原型 | MYSQL_RES *mysql_store_result(MYSQL *mysql) |
功能 | 存储查询结果集 |
参数 | 1.mysql:mysql连接对象, |
返回值 | 具有多个结果的MYSQL_RES结果集合。如果出现错误,返回NULL。 |
函数 | mysql_num_fields |
头文件 | #include<mysql/mysql.h> |
函数原型 | unsigned int mysql_num_fields(MYSQL_RES *result) |
功能 | 检索结果集的字段数量 |
参数 | 1.result:指向结果集的指针, |
返回值 | 表示结果集中字段数量的无符号整数。 |
函数 | mysql_fetch_fields |
头文件 | #include<mysql/mysql.h> |
函数原型 | MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *result) |
功能 | 检索结果集的字段 |
参数 | 1.result:指向结果集的指针, |
返回值 | 关于结果集所有列的MYSQL_FIELD结构的数组,每个结构提供了结果集中1列的字段定义信息 |
函数 | mysql_num_rows |
头文件 | #include<mysql/mysql.h> |
函数原型 | my_ulonglong mysql_num_rows(MYSQL_RES *result) |
功能 | 检索结果集中记录的数量 |
参数 | 1.result:指向结果集的指针, |
返回值 | 表示结果集中记录的数量。 |
函数 | mysql_fetch_row |
头文件 | #include<mysql/mysql.h> |
函数原型 | MYSQL_ROW mysql_fetch_row(MYSQL_RES *result) |
功能 | 检索结果集的一条记录 |
参数 | 1.result:指向结果集的指针, |
返回值 | 返回结果集中表示一条记录的MYSQL_ROW结构。同时该函数会将结果集内部的用于指向当前行的游标移动到下一条记录处,如果没有更多要检索的行或出现了错误,返回NULL。 |
函数 | mysql_data_seek |
头文件 | #include<mysql/mysql.h> |
函数原型 | void mysql_data_seek (MYSQL_RES *result, my_ulonglong offset) |
功能 | 移动结果集中的游标到指定记录 |
参数 | 1.result:指向结果集的指针, 2. offset: 相对于第一条记录的偏移量 |
返回值 | 无 |
函数 | mysql_free_result |
头文件 | #include<mysql/mysql.h> |
函数原型 | void mysql_free_result(MYSQL_RES *result) |
功能 | 检索结果集的字段记录数量 |
参数 | 1.result:指向结果集的指针, |
返回值 | 无 |
函数 | mysql_set_character_set |
头文件 | #include<mysql/mysql.h> |
函数原型 | int mysql_set_character_set(MYSQL *mysql, const char *csname) |
功能 | 为当前连接设置默认的字符集, |
参数 | 1.mysql:MYSQL的连接对象, 2.csname:指定了1个有效的字符集名称 (例:“utf8”或者“latin1”) |
返回值 | 成功:0 失败:非零值 |
函数 | mysql_character_set_name |
头文件 | #include<mysql/mysql.h> |
函数原型 | const char *mysql_character_set_name(MYSQL *mysql) |
功能 | 为当前连接返回默认的字符集, |
参数 | 1.mysql:MYSQL的连接对象 |
返回值 | 默认的字符集名称,该函数不会失败。 |
函数 | mysql_error mysql_errno |
头文件 | #include<mysql/mysql.h> |
函数原型 | const char *mysql_error(MYSQL *mysql) unsigned int mysql_errno(MYSQL *mysql) |
功能 | 获取错误信息与错误码 |
参数 | 1.mysql:mysql连接对象, |
返回值 | mysql_error 返回错误信息 mysql_errno 返回错误码 |
相关文章:
Linux应用开发————mysql数据库表
mysql数据库表操作 查看表的结构 mysql> desc / describe 表名; 或者: mysql> show create table 表名; 常见数据库引擎: innodb, myISAM... 删除表 mysql> drop tabl…...
《军工记忆》第二季播出,科技创新铸国之重器
2019年8月1日晚20点,《军工记忆》第二季在央视纪录频道(CCTV-9)播出,第一集《第一颗氢弹》首当其冲,为我们生动描绘了氢弹研制过程的艰难岁月,重现中国军工事业的漫漫长路,科技创新铸国之重器。…...
linux 无网络安装mysql
下载地址 通过网盘分享的文件:mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz 链接: https://pan.baidu.com/s/1qm48pNfGYMqBGfoqT3hxPw?pwd0012 提取码: 0012 安装 解压 tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz mv /usr/mysql-5.7.33-linux-glibc2.1…...
如何使用Python进行音频片断合成
以下是几种使用 Python 进行音频合成的方法: 使用 synthesizer 库 通过 pip install synthesizer 安装后,利用其提供的合成器类,可自定义振荡器类型,如锯齿波、方波或正弦波,并调制振幅来创造不同音色,还…...
【SH】在Ubuntu Server 24中基于Python Web应用的Flask Web开发(实现POST请求)学习笔记
文章目录 Flask开发环境搭建保持Flask运行Debug调试 路由和视图可变路由 请求和响应获取请求信息Request属性响应状态码常见状态码CookieSession 表单GET请求POST请求 Flask 在用户使用浏览器访问网页的过程中,浏览器首先会发送一个请求到服务器,服务器…...
方正畅享全媒体采编系统reportCenter.do接口SQL注入漏洞复现 [附POC]
文章目录 方正畅享全媒体采编系统reportCenter.do接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现方正畅享全媒体采编系统reportCenter.do接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利…...
SpringBoot Redis 消息队列
文章目录 参考消息队列list源码 pub/sub源码 参考 https://www.cnblogs.com/uniqueDong/p/15904837.html https://www.cnblogs.com/wzh2010/p/17205390.html https://blog.csdn.net/qq_16557637/article/details/121015736 https://developer.aliyun.com/article/1095035 http…...
Oracle 中间件 Webcenter Portal服务器环境搭建
环境信息 服务器基本信息 如下表,本次安装总共使用2台服务器,具体信息如下: Webcenter1服务器 归类 SOA服务器 Ip Address 172.xx.xx.xx.xx HostName wcc01.xxxxxx.com Alias wccprd01 Webcenter2服务器 归类 OSB服务器 Ip Addr…...
域名和服务器是什么?域名和服务器是什么关系?
在互联网的生态系统中,域名和服务器是两个至关重要的组成部分。它们共同构成了我们访问网站和使用在线服务的基础。那么域名和服务器是什么?域名和服务器是什么关系? 1、域名的概念 域名是互联网中用于标识特定地址的一种文字形式。它是用户访问网站时输入的易记…...
设计模式-观察者模式
背景 气象站需要将每天测量到的温度、湿度、气压等数据公布出去, 需要设计开放的API,以便第三方获取气象站的数据, 如果数据有更新,能及时地通知第三方 传统思路: 创建WeatherData类,有温度、湿度、气…...
获取显示器(主/副屏)友好名称(FriendlyName)
在开发涉及多显示器的应用程序时,获取显示器的友好名称(Friendly Name)是一个常见需求。本文将深入探讨GetMonitorFriendlyName 方法,了解其实现细节和工作原理。 方法签名 public static string GetMonitorFriendlyName(bool i…...
打造智慧医院挂号枢纽:SSM 与 Vue 融合的系统设计与实施
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
图漾相机-ROS1_SDK_ubuntu版本编译(新版本)
文章目录 官网编译文档链接官网SDK下载链接1、下载 Camport ROS1 SDK1.下载git2、下载链接 2、准备编译工作1、安装 catkin2、配置环境变量3. 将Camport3中的linux库文件拷贝到 user/lib目录下4、修改lunch文件制定相机(可以放在最后可以参考在线文档)**…...
ENSP实验
一.实验拓扑 二.实验需求 1.学校内部的HTTP客户端可以正常通过域名www.baidu.com访问到百度网络中的HTTP服务器 2.学校网络内部网段基于192.168.1.0/24划分,PC1可以正常访问3.3.3.0/24网段,但是PC2不允许 3.学校内部路由使用静态路由,R1和…...
10. 虚拟机VMware Workstation Pro下共享Ubuntu和Win11文件夹
本文记录当前最新版虚拟机VMware Workstation Pro(2024.12)如何在win11下共享文件,以实现Windows与Ubuntu互传文件的目的。 1. 创建共享文件夹 1.1 先关闭虚拟机的客户机,打开虚拟机设置 1.2 在虚拟机设置界面找到“选项”->“…...
Qwen文章阅读笔记
一、引言 大型语言模型(LLMs)的影响: LLMs通过将大量知识压缩进神经网络,使得它们在复杂推理和问题解决任务上展现出了惊人的能力。这些模型能够执行之前被认为只有人类才能完成的任务,尤其是在涉及创造力和专业知识…...
Docker容器命令
docker 命令说明docker pull拉取镜像docker push推送镜像到DockerRegistrydocker images查看本地镜像docker rmi删除本地镜像docker run创建并运行容器(不能重复创建)docker stop停止指定容器docker start启动指定容器docker restart重新启动容器docker…...
算法 计算大的长方形容器中,存放一排小长形容器,计算出小长形容器中最后一个元素的x坐标的位置的实现方法
1、先上个图: 2、说明 1)中间的蓝色长方形是里面的橙色长方形的容器,比如第一个图中width2width3,因为只有一个,第二个图中有二个小的长方形,也就是说width22width3,第三个图中有3个小长方形&a…...
【libuv】Fargo信令1:client发connect消息给到server
tcp 单机测试,进行模拟 (借助copilot实现) 【Fargo】28:字节序列client发connect消息给到serverserver 收到后回复ack给到客户端程序借助copilot实现。项目构建 Console依赖于Halo.dll提供的api,Halo 依赖于 Immanuel, 运行效果 遗留问题 客户端似乎么有逻辑收到ack做处理各…...
MyBatis主键自增回填功能源码分析
文章目录 难点分析KeyGenerator接口概述SelectKeyGenerator分析 解析selectKey标签执行插入后执行获取主键查询 难点分析 【1】 事务的一致性。 在插入数据并获取自增主键时,可能会涉及事务的一致性问题,尤其是在并发插入的情况下。MyBatis需要确保即使…...
Git使用教程-分支使用/合并分支提交
Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支(branch)的基本操作:二、查看分支:参考 一、分支(branch)的基本操作: git clone https://.git git status …...
TypeScript概述与安装指南
TypeScript概述与安装指南 HarmonyOS Next主要开发语言是ArkTS,ArkTS又是TS的超集,为了更好的学习HarmonyOS 和 ArkTS,从基础的TS入口介绍TS语法。 第一章:TypeScript概述与安装指南 1.1 什么是TypeScript? TypeSc…...
学技术学英文:代码中的锁:悲观锁和乐观锁
本文导读: 1. 举例说明加锁的场景: 多线程并发情况下有资源竞争的时候,如果不加锁,会出现数据错误,举例说明: 业务需求:账户余额>取款金额,才能取钱。 时间线 两人共有账户 …...
Git配置公钥步骤
GIt公钥的配置去除了git push输入账号密码的过程,简化了push流程。 1.生成SSH公钥和私钥 ssh-keygen -t rsa -b 4096 -C “your_emailexample.com” 遇到的所有选项都按回车按默认处理。获得的公钥私钥路径如下: 公钥路径 : ~/.ssh/id_rsa.pub 私钥路径…...
NSDT 3DConvert:高效实现大模型文件在线预览与转换
NSDT 3DConvert 作为一个 WebGL 展示平台,能够实现多种模型格式免费在线预览,并支持大于1GB的OBJ、STL、GLTF、点云等模型进行在线查看与交互,这在3D模型展示领域是一个相当强大的功能。 平台特点 多格式支持 NSDT 3DConvert兼容多种3D模型…...
优先队列【东北大学oj数据结构9-3】C++
优先队列 优先级队列是一种数据结构,其中保存了一组数据 S,其中每个元素都有一个键,并执行以下操作: insert(S, k):将元素k插入集合S extractMax(S):从S中取出S中key最大的元素并返回其值 创建一个程序&am…...
全志H618 Android12修改doucmentsui功能菜单项
背景: 由于当前的文件管理器在我们的产品定义当中,某些界面有改动的需求,所以需要在Android12 rom中进行定制以符合当前产品定义。 需求: 在进入File文件管理器后,查看...功能菜单时,有不需要的功能菜单,需要隐藏,如:新建窗口、不显示的文件夹、故代码分析以及客制…...
SAP PP ECN CSAP_MAT_BOM_MAINTAIN
刚开始的时候ECN总是加不上, 参考kimi给出的案例 点击链接查看和 Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cth1ipmqvl7f04qkggdg 效果 加上了 FUNCTION ZPBOM_PLM2SAP. *"------------------------------------------------------------------…...
STM32HAL I2C函数
8.5 使用IIC协议读写EEPROM 硬件方式实现 (HAL库) **HAL_I2C_Mem_Write() :这种方法可以写1个或者多个字节 ** /*** brief 以阻塞模式向指定的内存地址写入数据* param hi2c 指向 I2C_HandleTypeDef 结构体的指针,包含指定 I2C 的配置信息…...
技术转管理需要有哪些思维上的转变?
不少项目管理行业的负责人都是从技术岗产生,那么技术岗做的是代码、调试之类的内容,除了负责范围增加外,还有什么思维方面的转变呢? 1、从个体到团队 个体的技能决定着工作的完成度,而在管理工作岗位上,项…...
数据结构漫游记:初识vector
嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的…...
RestTemplate远程调用、服务注册、
一.RestTemplate Spring给我们提供了一个RestTemplate的API,可以方便的实现Http请求的发送。 同步客户端执行HTTP请求,在底层HTTP客户端库(如JDK HttpURLConnection、Apache HttpComponents等)上公开一个简单的模板方法API。RestTemplate通过HTTP方法为常…...
ARP..
ARP 0 前言 真正接触到现网才发现ARP十分重要,无论是排错还是S-MLAG都需要用到ARP这个协议,以前对于ARP的理解比较混乱;所以这次对其中的主要内容做个梳理;一定要学好ARP!!! 1 ARP的概念 Ar…...
电子电器架构 ---整车区域控制器
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...
HBase、Hive、Redis 和 MongoDB的对比
1. 数据库管理 操作HBaseHiveRedisMongoDB创建数据库N/A (HBase 没有数据库概念)CREATE DATABASE db_name;N/A (Redis 没有数据库命名功能)use db_name; (自动创建)查看数据库N/ASHOW DATABASES;INFO 查看全局信息show dbs;删除数据库N/ADROP DATABASE db_name CASCADE;N/Adb.…...
前端在WebSocket中加入Token
在WebSocket通信中加入Token主要是为了实现身份验证和授权,确保只有经过验证的用户可以建立WebSocket连接。由于WebSocket API本身不支持直接在连接时设置HTTP头部,因此需要采用一些变通的方法来传递Token。以下是几种常见的方法: 1、通过UR…...
图解HTTP-HTTP报文
参考资料:图解HTTP HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行(CR LF作为换行符)数据行构成的文本。 请求报文及响…...
后端使用Spring Boot框架 + 前端VUE 实现滑动模块验证码
在现在常用的登录验证码方式有很多种,但是都不可避免被攻击,但是有很多方式可以防止被攻击,从而进行维护。 现在我就讲解一下滑动块验证码的实现方式: 这个是前端代码,我使用的是vue,在使用的时候注意&am…...
NOTEBOOK_11 汽车电子设备分享(工作经验)
汽车电子设备分享 摘要 本文主要列出汽车电子应用的一些实验设备和生产设备,部分会给予一定推荐。目录 摘要一、通用工具:二、测量与测试仪器2.1测量仪器2.2无线通讯测量仪器2.3元器件测试仪2.4安规测试仪2.5电源供应器2.6电磁兼容测试设备2.7可靠性环境…...
Spring Mvc面试题(常见)
1 Spring MVC的执行流程 用户发起请求,请求先被Servlet拦截以后,转发给SpringMVC框架SpringMVC 里面的DispatcherServlet(核心控制器) 接收到请求,并转发给HandlerMappingHandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller类(当这里有配置拦截器,会…...
javaEE--计算机是如何工作的-1
目录 一.计算机的组成: 各组件的功能: 衡量cpu好坏的标准: 二.指令(instruction) 三.操作系统Operating System 四.进程/任务process/tesk 五.进程在系统中如何管理 1.进程在系统中的管理,从两个角度来分类: 2.进程控制块PCB(Process Control Block)) 3.P…...
【Mysql】函数有哪些
mysql函数有哪些? MySQL 提供了许多内置函数,用于执行各种操作,包括字符串处理、日期时间操作、数学计算、数据转换等。以下是一些常用的 MySQL 函数分类及其示例: 字符串函数 CONCAT(str1, str2, ...):将多个字符串…...
「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
本篇将带你实现一个评分统计工具,用户可以对多个选项进行评分。应用会实时更新每个选项的评分结果,并统计平均分。这一功能适合用于问卷调查或评分统计的场景。 关键词 UI互动应用评分统计状态管理数据处理多目标评分 一、功能说明 评分统计工具允许用…...
实验13 C语言连接和操作MySQL数据库
一、安装MySQL 1、使用包管理器安装MySQL sudo apt update sudo apt install mysql-server2、启动MySQL服务: sudo systemctl start mysql3、检查MySQL服务状态: sudo systemctl status mysql二、安装MySQL开发库 sudo apt-get install libmysqlcli…...
Azure虚拟机非托管磁盘大小调整
想要扩容一个Azure VM 的磁盘空间,门户里面竟然无法扩展,点点鼠标就完事的时代在离去,微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空,根本没有返回磁盘。 不过使…...
MySQL数据库下载及安装教程
链接:MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客 亲测安装成功了💕 把这个路径放到系统环境变量里头 MD!我这安到C盘去了,就很烦🤬😡 在CMD登录试一下 mysql -h localhos…...
使用 UniApp 在微信小程序中实现 SSE 流式响应
概述 服务端发送事件(Server-Sent Events, SSE)是一种允许服务器向客户端推送实时更新的技术。SSE 提供了一种单向的通信通道,服务器可以持续地向客户端发送数据,而不需要客户端频繁发起请求。这对于需要实时更新的应用场景非常有用。 流式传输的特点是将数据逐步传输给客…...
基础数据结构---栈
顺序表实现 一、栈类的声明 栈是一种特殊的线性表,可以由顺序表来实现,也可以由链表来实现,这节课,我们采用顺序表来实现栈。 #include <iostream>#include <stdexcept>using namespace std;template<typename …...
Redis 最佳实践
这是以前写下来的文章,发出来备份一下 Redis 在企业中的最佳实践可以帮助提高性能、可用性和数据管理效率。以下是一些推荐的做法: 选择合适的数据结构: 根据需求选择适当的 Redis 数据结构(如 Strings、Lists、Sets、Hashes、So…...
前端零基础学习Day-Eight
CSS字体和文本样式 CSS文字样式 字体:font-family 语法:font-family:[字体1][,字体2][,…] p{font-family:“微软雅黑”,“宋体”,“黑体”;} 含空格字体名和中文,用英文引号括起 属性值:具体字体名,字体集 字体集&…...