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

MySQL(常用函数、多表查询)

文章目录

    • 1.数据库函数
        • 1.count函数
          • 案例
          • 答案
          • count(*)与count(列)的区别
        • 2.sum函数
          • 案例
          • 答案
        • 3.avg函数
          • 案例
          • 答案
        • 4.max/min函数
          • 案例
          • 答案
        • 5.group by 分组统计
          • 案例
          • 答案
        • 6.字符串相关函数
          • 演示
          • 练习
        • 7.数学相关函数
          • 演示
        • 8.日期相关函数
          • 演示
        • 9.加密函数
          • 演示
        • 10.流程控制函数
          • 演示
    • 2.查询增强
        • 增强一
          • 案例
        • 增强二 order by
          • 案例
        • 增强三 分页查询
          • 案例
          • 求第几页的公式是
          • 练习
        • 增强四 group by
          • 案例
        • 增强五 数据分组总结
          • 案例
          • group by 细节
    • 3.多表查询
        • 1.笛卡尔积
          • 细节
          • 案例
        • 2.多表查询
          • 案例
        • 3.自连接
          • 案例
        • 4.多行子查询
          • 案例一
          • 案例二
        • 4.子查询临时表(非常管用)
        • 5.all和any操作符
          • all操作符案例
          • any操作符案例
        • 6.多列子查询
          • 案例一
          • 案例二
        • 7.子查询练习题
          • 练习一
          • 练习二
          • 练习三
        • 8.表复制和去重
          • 1.表的复制
          • 2.自我复制
          • 3.复制表结构
          • 4.去重
        • 9.合并查询
          • union all
          • union
        • 10.外连接
          • 左外连接
          • 右外连接
          • 练习
    • 4.查询与连接的WHERE区别

1.数据库函数

1.count函数

image-20240116092118888

案例

image-20240116092108309

答案
-- 统计一个班级共有多少学生
SELECT COUNT(*) FROM student;
-- 统计数学成绩大于90的有多少个
SELECT COUNT(*) FROM student WHERE math > 90;
-- 统计总分大于250的人数有多少人
SELECT COUNT(*) FROM STUDENT WHERE (MATH + CHINESE + ENGLISH) > 250;
count(*)与count(列)的区别
  1. count(*)会返回满足条件记录的行数
  2. count(列)会统计满足条件的某列有多少行但是会排除null
2.sum函数

image-20240116093428849

案例

image-20240116094245465

答案
-- 统计一个班级数学总成绩
SELECT SUM(MATH) FROM student;
-- 统计一个班级,语文,英语,数学各科的总成绩
SELECT SUM(CHINESE), SUM(ENGLISH), SUM(MATH) FROM student; 
-- 统计一个班级语文,英语,数学的成绩总和
SELECT SUM(CHINESE) + SUM(ENGLISH) + SUM(MATH) FROM student;
-- 统计一个班级语文成绩平均分
SELECT SUM(CHINESE) / COUNT(*) FROM student;
3.avg函数

image-20240116094408135

案例

image-20240116094401257

答案
-- 求一个班级的数学平均分
SELECT AVG(MATH) FROM STUDENT;
-- 求一个班级总分平均分
SELECT AVG(MATH + CHINESE + ENGLISH) FROM STUDENT;
4.max/min函数

image-20240116094826161

案例

image-20240116094836948

答案
-- 求班级最高分和最低分
SELECT MAX(MATH + CHINESE + ENGLISH) FROM STUDENT;
SELECT MIN(MATH + CHINESE + ENGLISH) FROM STUDENT;
5.group by 分组统计

image-20240116095328808

案例

image-20240116101836314

答案
-- 显示每个部门的平均工资和最高工资
SELECT AVG(SAL), MAX(SAL),DEPTNO FROM EMP GROUP BY DEPTNO;
-- 显示每个部门的每种岗位的平均工资和最低工资
SELECT AVG(SAL), MIN(SAL),DEPTNO,JOB FROM EMP GROUP BY DEPTNO, JOB;
-- 显示平均工资低于2000的部门号和他的平均工资,别名
SELECT DEPTNO, AVG(SAL) AS 平均工资 FROM EMP GROUP BY DEPTNO HAVING 平均工资 < 2000; 
6.字符串相关函数

image-20240116101923971

演示
-- 返回字符串的字符集
SELECT CHARSET(ENAME) FROM EMP;
-- 连接子串将多个列拼成一列
SELECT CONCAT(ENAME,'工作是',JOB) FROM EMP;
-- INSTR (string, substring) 返回substring在string中出现的位置,没有返回0
SELECT INSTR('hanshunping', 'ping') FROM DUAL;
-- 转换成大写
SELECT UCASE(ENAME) FROM EMP;
-- 转换成小写
SELECT LCASE(ENAME) FROM EMP;
-- LEFT(string2, length) 从string2中的左边起取length个字符
SELECT LEFT(ENAME, 3) FROM EMP;
-- LENGTH(str) str的长度,按照字节
SELECT LENGTH('孙显圣') FROM EMP;
-- REPLACE(str,from_str,to_str) 将str列的from_str,替换为to_str
SELECT REPLACE(JOB,'MANAGER','经理') FROM EMP;
-- STRCMP(expr1,expr2) 逐个字符比较两字符串大小
SELECT STRCMP('HSP','AHP') FROM DUAL;
-- SUBSTRING(str FROM pos FOR len) 从str的pos开始(从1开始)取出len个字符
SELECT SUBSTRING(ENAME, 1, 2) FROM EMP;
-- 去除空格
SELECT LTRIM('  韩顺平教育') FROM DUAL;
SELECT RTRIM('韩顺平教育 ') FROM DUAL;
练习

image-20240116104853698

-- 将第一个 字符取出来然后转为小写,与剩下的字符拼接
SELECT CONCAT(LCASE(SUBSTRING(ENAME, 1, 1)),SUBSTRING(ENAME, 2,LENGTH(ENAME) - 1))  FROM EMP; 
7.数学相关函数

image-20240116105708293

演示
-- ABS(X) 绝对值
SELECT ABS(-10) FROM DUAL;
-- BIN(N) 十进制转2进制
SELECT BIN(10) FROM DUAL;
-- CEILING(X) 向上取整
SELECT CEILING(10.3) FROM DUAL;
-- CONV(N,from_base,to_base) 进制转换
SELECT CONV(10,10,2) FROM DUAL;
-- FLOOR(X) 向下取整
SELECT FLOOR(10.3) FROM DUAL;
-- FORMAT(X,D) 保留小数位数
SELECT FORMAT(10.3234,2) FROM DUAL;
-- HEX(N_or_S) 转16进制
SELECT HEX(100) FROM DUAL; 
-- LEAST(value1,value2,...) 求最小值
SELECT LEAST(10,2,3) FROM DUAL;
-- MOD(N,M) 取余
SELECT MOD(5,2) FROM DUAL;
-- RAND() 取随机数,0到1,如果是带参数的则每次取出来的就是相同的随机数
SELECT RAND() FROM DUAL;
SELECT RAND(3) FROM DUAL;
8.日期相关函数

image-20240116133545045

演示
-- 显示所有新闻信息,发布时间只显示日期,不用显示时间
SELECT id, content, DATE(send_time) FROM mes;
-- 查询在10分钟内发布的帖子
SELECT * FROM mes WHERE DATE_ADD(send_time, INTERVAL 10 MINUTE) >= NOW();
SELECT * FROM mes WHERE DATE_SUB(NOW(),INTERVAL 10 MINUTE) <= send_time;
-- 求出2011-11-11 和 1990-1-1相差多少天
SELECT DATEDIFF('2011-11-11','1990-1-1') FROM DUAL;
-- 求出你活了多少天
SELECT DATEDIFF(CURRENT_DATE,'2002-12-8') FROM DUAL;
-- 如果能活80岁,还能活几天
SELECT  DATEDIFF(DATE_ADD('2002-12-8',INTERVAL 80 YEAR),CURRENT_DATE) FROM DUAL;
-- 返回1970年到现在的秒数
SELECT UNIX_TIMESTAMP() FROM DUAL;
-- 把unix_timestamp时间戳转换成指定格式的日期
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y-%m-%d %H-%i-%s') FROM DUAL;
-- 返回指定的年月日
SELECT YEAR('2023-12-8'), MONTH('2023-12-8'),DAY('2023-12-8') FROM DUAL;
9.加密函数

image-20240116144111098

演示
-- 查询用户
SELECT USER() FROM DUAL;
-- 查询当前使用数据库名称
SELECT DATABASE() FROM DUAL;
-- 为字符串算出一个MD5加密的字符串
SELECT MD5('SXS') FROM DUAL;
-- 演示在数据库中将密码使用md5加密并且查询
CREATE TABLE `user` (id INT,`name` VARCHAR(32) NOT NULL DEFAULT '',pwd CHAR(32) NOT NULL DEFAULT ''
)
-- 插入信息
INSERT INTO USER VALUES(1, 'root', MD5('123456'))
-- 查询MD5加密之后的数据
SELECT * FROM user WHERE name = 'root' AND pwd = MD5('123456')
10.流程控制函数

image-20240116145956987

演示
-- 查询emp表,如果comm是null,显示0.0,
SELECT ENAME, IF(COMM IS NULL, 0.0, COMM) FROM EMP;
SELECT ENAME, IFNULL(COMM,0.0) FROM EMP;
-- 如果emp表的job是clerk,则显示是职员,如果是manager则显示是经理,如果是saleman则显示销售人员
SELECT ename, (SELECT CASE WHEN job = 'CLERK' THEN '职员'WHEN job = 'MANAGER' THEN '经理'WHEN job = 'SALESMAN' THEN '销售人员'ELSE job END) FROM emp;

2.查询增强

增强一

image-20240116153613006

案例
-- 在mysql中,日期类型可以直接比较,但是格式要相同
-- 查询1992.1.1之后入职的员工
SELECT * FROM EMP WHERE HIREDATE > '1992-01-01';
-- 显示首字符为S的员工姓名和工资
SELECT ename, sal FROM emp WHERE ename LIKE 'S%';
-- 显示第三个字符为大写的O的所有员工的姓名和薪资
SELECT ename, sal FROM emp WHERE ename LIKE '__O%';
-- 显示没有上级的雇员的情况
SELECT * FROM emp WHERE mgr IS NULL;
-- 查询表结构
DESC emp;
增强二 order by

image-20240116155047597

案例
-- 按照工资从低到高的顺序显示雇员的信息
SELECT * FROM emp ORDER BY sal 
-- 按照部门号升序而雇员的工资降序排列,显示雇员信息
SELECT * FROM empORDER BY deptno , sal DESC;
增强三 分页查询

image-20240116155829604

案例
-- 按雇员的id升序取出,每页显示3条记录,请分别显示第1页,第2页,第3页
-- 第一页
SELECT * FROM emp 
ORDER BY empno ASC
LIMIT 0, 3
-- 第二页
SELECT * FROM emp 
ORDER BY empno ASC
LIMIT 3, 3
-- 第三页
SELECT * FROM emp 
ORDER BY empno ASC
LIMIT 6, 3
求第几页的公式是

每页显示记录数 * (第几页 - 1),每页显示记录数

练习

image-20240116161342779

-- 第三页
SELECT * FROM EMP 
ORDER BY EMPNO DESC
LIMIT 10, 5
-- 第五页
SELECT * FROM EMP 
ORDER BY EMPNO DESC
LIMIT 20, 5
增强四 group by
案例

image-20240116161749041

-- 显示每种岗位的雇员总数、平均工资
SELECT job,COUNT(*), AVG(SAL)
FROM EMP
GROUP BY job;-- 显示雇员总数,以及获得补助的雇员数
SELECT COUNT(*),COUNT(COMM)
FROM EMP;
-- 没有获得补助的雇员数
SELECT COUNT(IF(COMM IS NULL,1,NULL))
FROM EMP-- 显示管理者的总人数
SELECT  COUNT(DISTINCT MGR)
FROM EMP-- 显示雇员工资的最大差额
SELECT MAX(SAL) - MIN(SAL)
FROM EMP
增强五 数据分组总结

image-20240116163731207

image-20240116163720593

案例

image-20240116163743973

group by 细节

HAVING 子句通常用于筛选聚合函数(如 AVG、SUM、COUNT 等)的结果。它不应直接用于筛选单个行的数据

并且select只能是group by中的元素或者被聚合函数包裹的元素

SELECT deptno, AVG(SAL) AS avg_total
FROM emp
-- 这里还可以添加where筛选单个子句
GROUP BY DEPTNO
HAVING avg_total > 1000
ORDER BY avg_total DESC
LIMIT 0,2;

3.多表查询

1.笛卡尔积

image-20240116170657386

细节
  1. 在两个表默认连接条件下会出现笛卡尔积
  2. 笛卡尔积就是将第一张表的一条记录与第二张表的所有记录依次连接
  3. 笛卡尔积生成的记录条数 = 第一张表的记录条数 * 第二张表的记录条数
  4. 多表查询的条件不能少于表的个数 - 1否则就会出现笛卡尔积
  5. 连接的条件一般是一个表的外码和另一个表的主码连接,这样生成的记录条数就是第一个表的记录条数
案例
-- 查出雇员名,雇员工资,以及所在部门的名字,还有部门编号
-- 注意部门编号是有两个表的虽然一样,但是也要指明哪个表
SELECT ename, sal, dname,emp.deptno
FROM EMP, DEPT
WHERE EMP.deptno = DEPT.deptno

image-20240116171529238

2.多表查询
案例

image-20240116181911401

-- 显示部门号为10的部门名,员工名和工资
SELECT dname, ename, sal
FROM EMP, DEPT
WHERE EMP.deptno =DEPT.deptno AND DEPt.deptno = 10-- 显示各个员工的姓名,工资以及工资的级别
SELECT ename, sal, grade
FROM emp, salgrade
WHERE sal BETWEEN losal AND hisal
3.自连接

image-20240116182026266

案例

image-20240116182847392

-- 显示员工名字以及他上级的名字,必须使用别名来进行自连接
SELECT worker.ename, boss.ename
FROM emp worker, emp boss 
WHERE worker.mgr = boss.empno
4.多行子查询

image-20240116183010079

案例一

image-20240116185156918

-- 显示与SMITH同一部门的所有员工
-- 先得到SMITH的部门编号,然后将其当做子查询
SELECT *
FROM emp
WHERE DEPTNO IN (SELECT DEPTNOFROM empWHERE ename = 'SMITH'
)
案例二

image-20240116183021092

-- 查询和部门10的工作相同的雇员的名字,岗位,工资,部门号,但是不含10自己的SELECT ename, job, sal, deptno
FROM emp
WHERE job IN (
-- 查询部门10的工作SELECT jobFROM empWHERE deptno = 10
) AND ename NOT IN (
-- 查询部门10的名字SELECT enameFROM empWHERE deptno = 10
)
-- 或者
SELECT ename, job, sal, deptno
FROM emp
WHERE job IN (
-- 查询部门10的工作SELECT jobFROM empWHERE deptno = 10
) AND deptno <> 10
-- <>是不等号
4.子查询临时表(非常管用)

image-20240116185312830

SELECT goods_id, temp.cat_id, goods_name, shop_price
FROM (-- 查出id分组中最高的价钱,并将其当做一个临时表SELECT cat_id, MAX(shop_price) as maxFROM ecs_goodsGROUP BY cat_id
) temp, ecs_goods
WHERE temp.cat_id = ecs_goods.cat_id AND temp.max = ecs_goods.shop_price
-- 连接条件是临时表中的id对应原表中的id,临时表中的最大值,对应原表中的最大值
5.all和any操作符
all操作符案例

image-20240116192927107

-- 显示工资比部门30的所有员工的工资都高的员工的姓名、工资和部门号
SELECT ename, sal, deptno
FROM emp
WHERE sal > all(-- 子查询查出部门30所有员工工资SELECT sal FROM empWHERE deptno = 30
)
any操作符案例

image-20240116193138514

-- 显示工资比部门30的其中一名员工的工资都高的员工的姓名、工资和部门号
SELECT ename, sal, deptno
FROM emp
WHERE sal > ANY(-- 子查询查出部门30所有员工工资SELECT sal FROM empWHERE deptno = 30
)
6.多列子查询

image-20240116193338320

案例一

image-20240116194210594

-- 查询与smith的部门和岗位完全相同的所有雇员并且不包含smith本人
SELECT *
FROM emp
-- 把要查询的元素也用括号括起来
WHERE (deptno, job) = (-- 子查询:查询smith的部门和岗位SELECT deptno, jobFROM empWHERE ename = 'SMITH'
) AND ename <> 'SMITH'
案例二

image-20240116194220339

-- 主查询:查询和宋江的数学,英语,语文,成绩完全相同的学生
SELECT *
FROM student
WHERE (math, english, chinese) = (-- 子查询:宋江的数学,英语,语文,成绩SELECT math, english, chineseFROM studentWHERE `name` = '宋江'
)
7.子查询练习题
练习一

image-20240116194650410

-- 子查询当做临时表使用,查询每个部门工资高于本部门平均工资的人
SELECT *
FROM (-- 子查询:按照部门分组,求出本部门的平均工资SELECT deptno, AVG(sal) as avgsalFROM empGROUP BY deptno
) temp, emp
WHERE temp.deptno = emp.deptno AND emp.sal > temp.avgsal 
练习二

image-20240116195615913

-- 查找每个部门工资最高的人的详细资料
SELECT *
FROM (-- 子查询:按照部门分组,查找到每组最高的工资SELECT deptno, MAX(sal) as maxFROM empGROUP BY deptno
) temp, emp
WHERE temp.deptno = emp.deptno AND temp.max = emp.sal
练习三

image-20240116200317407

-- 注意:表名.*可以显示这个表的所有列
SELECT temp.*, dname, loc
FROM (-- 子查询:根据部门进行分组,计算人员数量SELECT deptno, COUNT(*) as numFROM empGROUP BY deptno
)temp, dept
WHERE temp.deptno = dept.deptno
8.表复制和去重
1.表的复制
CREATE TABLE my_tab01(id INT,name VARCHAR(32),sal DOUBLE,job VARCHAR(32),deptno INT
);
SELECT * FROM my_tab01-- 将emp表的数据复制到my_tab01中去
INSERT INTO my_tab01(id, name, sal, job, deptno)SELECT empno, ename, sal, job, deptno FROM emp; 
2.自我复制

image-20240116202241248

-- 自我复制
INSERT INTO my_tab01SELECT * FROM my_tab01
3.复制表结构
-- 复制表结构来创建一个表
CREATE TABLE temp LIKE salgrade
4.去重
-- my_tab01是一个具有重复数据的表
-- 1.创建一个临时表temp其结构与my_tab01一样
CREATE TABLE temp like my_tab01
-- 2.将my_tab01的数据使用distinct处理并复制到表temp中
INSERT INTO tempSELECT DISTINCT * FROM my_tab01
-- 3.把my_tab01的数据删除
DELETE FROM my_tab01
-- 4.把temp表的数据复制到my_tab01中去
INSERT INTO my_tab01SELECT * FROM temp
-- 删除临时表
DROP TABLE temp
9.合并查询
union all

image-20240116205149236

union

image-20240116205228353

10.外连接

image-20240116210128659

image-20240117090520072

左外连接
-- 创建两个表,并实现外连接
CREATE TABLE STU (ID INT,NAME VARCHAR(32)
)CREATE TABLE EXAM(ID INT,GRADE INT
);
-- 左外连接
SELECT *
FROM EXAM LEFT JOIN STU
ON EXAM.ID = STU.ID

image-20240117092048289

右外连接
-- 右外连接
SELECT * 
FROM EXAM RIGHT JOIN STU
ON EXAM.ID = STU.ID

image-20240117092105972

练习

image-20240117092934692

-- 列出部门名称和这些部门的员工信息(名字和工作),同时列出那些没有员工的部门名
-- 左外连接
SELECT DNAME, ENAME,JOB
FROM DEPT LEFT JOIN EMP
ON DEPT.deptno = EMP.deptno
-- 右外连接
SELECT DNAME, ENAME,JOB
FROM EMP RIGHT JOIN DEPT
ON EMP.deptno = DEPT.deptno

4.查询与连接的WHERE区别

image-20240117112635523

相关文章:

MySQL(常用函数、多表查询)

文章目录 1.数据库函数1.count函数案例答案count&#xff08;*&#xff09;与count&#xff08;列&#xff09;的区别 2.sum函数案例答案 3.avg函数案例答案 4.max/min函数案例答案 5.group by 分组统计案例答案 6.字符串相关函数演示练习 7.数学相关函数演示 8.日期相关函数演…...

【Pt】马灯贴图绘制过程 01-制作基础色

目录 一、导入模型并烘焙 二、制作基础底漆 &#xff08;1&#xff09;底漆层 &#xff08;2&#xff09;水痕层 &#xff08;3&#xff09;指纹层 一、导入模型并烘焙 1. 导入模型&#xff0c;马灯模型如下所示 2. 在纹理集设置中点击“烘焙模型贴图” 设置输出大小为…...

TransmittableThreadLocal 问题杂记

0、前言 TransmittableThreadLocal&#xff0c;简称 TTL&#xff0c;是阿里巴巴开源的一个Java库&#xff0c;它能够实现ThreadLocal在多线程间的值传递&#xff0c;适用于使用线程池、异步调用等需要线程切换的场景&#xff0c;解决了ThreadLocal在使用父子线程、线程池时不能…...

Linux之 线程池 | 单例模式的线程安全问题 | 其他锁

目录 一、线程池 1、线程池 2、线程池代码 3、线程池的应用场景 二、单例模式的线程安全问题 1、线程池的单例模式 2、线程安全问题 三、其他锁 一、线程池 1、线程池 线程池是一种线程使用模式。线程池里面可以维护一些线程。 为什么要有线程池&#xff1f; 因为在…...

Composer常见错误及解决方案

Composer常见错误及解决方案 Composer是PHP的依赖管理工具&#xff0c;它使得在PHP项目中管理和安装依赖库变得简单。然而&#xff0c;在使用Composer时&#xff0c;开发者可能会遇到一些常见的错误。在本文中&#xff0c;我们将探讨一些常见的Composer错误以及相应的解决方案…...

系统架构图怎么画

画架构图是架构师的一门必修功课。 对于架构图是什么这个问题&#xff0c;我们可以按以下等式进行概括&#xff1a; 架构图 架构的表达 架构在不同抽象角度和不同抽象层次的表达&#xff0c;这是一个自然而然的过程。 不是先有图再有业务流程、系统设计和领域模型等&#…...

微信小程序页面生命周期和小程序api组件的生命周期

小程序组件的生命周期...

通过node 后端实现颜色窃贼 (取出某个图片的主体rgb颜色 )

1.需求 我前端轮播图的背景色 想通过每一张轮播图片的颜色作为背景色 这样的话 需要通过一张图片 取出图片的颜色 这个工作通过前端去处理 也可以通过后端去处理 前端我试了试 color-thief 的插件 但是 这个插件是基于canvas 的模式来的 我需要在小程序中使用这个插件 而且是…...

【蓝桥杯第十三届省赛B组】(详解)

九进制转十进制 #include <iostream> #include<math.h> using namespace std; int main() {cout << 2*pow(9,3)0*pow(9,2)2*pow(9,1)2*pow(9,0) << endl;return 0; }顺子日期 #include <iostream> using namespace std; int main() {// 请在此…...

网址打包微信小程序源码 wap转微信小程序 网站转小程序源码 网址转小程序开发

内容目录 一、详细介绍二、效果展示2.效果图展示 三、学习资料下载 一、详细介绍 我们都知道微信小程序是无法直接打开网址的。 这个小程序源码提供了一种将网址直接打包成微信小程序的方法&#xff0c; 使得用户可以在微信小程序中直接访问这些网址内容。 这个源码没有进行加…...

C# OpenCvSharp 轮廓检测

目录 效果 代码 下载 效果 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.…...

阿里云服务器安装SSL证书不起作用的解决方案

阿里云服务器安装SSL证书不起作用的解决方案 在阿里云安装SSL证书后&#xff0c;访问无效&#xff0c;各种检查证书安装没有问题。忽然想到阿里云默认连80端口都没开启&#xff0c;443端口应该也没开启。 登录阿里云控制台 - 云服务器 ECS - 网络与安全 - 安全组 - 管理规则 - …...

【二】【设计模式】建造者模式

建造者模式的引入 //C10_1.cpp #include <stdio.h>#include "SystemConfig.h"int main() {SystemConfig config("mysql://127.0.0.1/", "xiaomu", "xiaomumemeda","redis://127.0.0.1/", "xiaomuredis", &q…...

Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤

集群搭建 整体思路:先在一个节点上安装、配置,然后再克隆出多个节点,修改 IP ,免密,主机名等 提前规划: 需要三个节点,主机名分别命名:node1、node2、node3 在下面对 node1 配置时,先假设 node2 和 node3 是存在的 **注意:**整个搭建过程,除了1和2 步,其他操作都使…...

【Python】python+requests+excel+pytest-实现接口自动化实例

目录 测试需求实现思路完整框架2.1 初始化数据 (test_data.xlsx)2.2 核心脚本 (api_client.py)2.3 测试用例 (test_interfaces.py)2.4 日志 (logging)2.5 pytest配置文件 (pytest.ini)2.6 测试报告 (pytest-html)2.7 入口函数 (run_tests.py)2.8 完整流程注意事项测试需求 简单…...

Django(四)-搭建第一个应用(3)

一、问题详情页 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>展示某个投票的问题和不带结果的选项列表</title> </head> <body><form action"{% url polls:vote questi…...

吴恩达2022机器学习专项课程(一) 4.2 梯度下降实践

问题预览/关键词 本节内容梯度下降更新w的公式梯度下降更新b的公式的含义α的含义为什么要控制梯度下降的幅度&#xff1f;导数项的含义为什么要控制梯度下降的方向&#xff1f;梯度下降何时结束&#xff1f;梯度下降算法收敛的含义正确更新梯度下降的顺序错误更新梯度下降的顺…...

SQL,group by分组后分别计算组内不同值的数量

SQL&#xff0c;group by分组后分别计算组内不同值的数量 如现有一张购物表shopping 先要求小明和小红分别买了多少笔和多少橡皮&#xff0c;形成以下格式 SELECT name,COUNT(*) FROM shopping GROUP BY name;SELECT name AS 姓名,SUM( CASE WHEN cargo 笔 THEN 1 ELSE 0 END)…...

关于python中常用命令(持续更新中)

目录 关于pip 卸载安装pip 更新pip 更换pip镜像源 清除缓存 更新指定包 指定清华镜像下载指定包 关于conda 更换清华镜像源 优先使用清华镜像 清除缓存 关于数据分析、数据挖掘常用 Matplotlib 3.6.0 文档&#xff08;绘图实例&#xff09; jupyter字体问题 jup…...

JAVA学习笔记21

1.IDEA的使用 1.ctrl B 快速定位到方法 2.ctrl Y 快速删除行 3.ctrl D 快速复制行 4.ctrl H 查看继承的层级关系 5.快速格式化代码 ctrl shift L 6.alt R 快速允许程序 7.ctrl / 快速添加注释 1.包(软件包) 1.1包的三大作用 1.区分相同名字的类 2.当类很多的…...

ESP32开发:Ubuntu22.04下ESP-IDF环境一键配置与避坑指南

1. 为什么选择Ubuntu 22.04与ESP-IDF&#xff1f; 如果你刚拿到一块ESP32开发板&#xff0c;摩拳擦掌想搞点物联网项目&#xff0c;第一道坎往往就是搭建开发环境。我见过太多朋友&#xff0c;包括我自己&#xff0c;在环境配置这一步就被劝退了&#xff0c;不是下载慢如蜗牛&a…...

从SOCA-CFAR到改进算法:如何破解雷达多目标与大目标检测的掩蔽难题

1. 雷达目标检测的“老大难”&#xff1a;掩蔽效应到底是什么&#xff1f; 大家好&#xff0c;我是老张&#xff0c;在雷达信号处理这个行当里摸爬滚打了十几年。今天想和大家聊聊一个让无数工程师头疼&#xff0c;但又绕不开的经典难题——雷达目标检测中的“掩蔽效应”。这玩…...

Qwen3.5-35B-AWQ-4bit图片问答效果对比:单图多问 vs 换图重问的上下文管理实测

Qwen3.5-35B-AWQ-4bit图片问答效果对比&#xff1a;单图多问 vs 换图重问的上下文管理实测 你是不是也遇到过这样的困惑&#xff1a;用AI模型分析图片时&#xff0c;上传一张图&#xff0c;问了几个问题&#xff0c;然后换一张新图再问&#xff0c;结果AI的回答好像还停留在上…...

HCIA静态路由实战:从IP规划到浮动路由配置全解析

1. 从零开始&#xff1a;为什么静态路由是网络工程师的“必修课”&#xff1f; 刚接触网络配置的朋友&#xff0c;可能一听到“路由”就觉得头大&#xff0c;什么动态路由、静态路由&#xff0c;还有各种协议&#xff0c;感觉特别复杂。其实&#xff0c;静态路由就像是给你一张…...

TFT Overlay:重构云顶之弈决策体系的智能辅助工具

TFT Overlay&#xff1a;重构云顶之弈决策体系的智能辅助工具 【免费下载链接】TFT-Overlay Overlay for Teamfight Tactics 项目地址: https://gitcode.com/gh_mirrors/tf/TFT-Overlay 在快节奏的云顶之弈对局中&#xff0c;玩家常面临三大核心痛点&#xff1a;装备合成…...

新手入门指南:用快马AI解析foldcraftalauncher官网,生成可运行的前端学习代码

作为一个刚接触前端开发不久的新手&#xff0c;我最近对如何构建一个专业、美观的企业官网产生了浓厚兴趣。在浏览了许多网站后&#xff0c;我被foldcraftalauncher官网那种简洁、现代且功能清晰的设计风格所吸引。它没有过于花哨的动画&#xff0c;但布局合理&#xff0c;信息…...

理解 Prompt Cache 与 Agent 的“上下文税”:AI时代架构纪律

导读&#xff1a;本文通过Claude Code案例&#xff0c;解释了 AI agent 中的提示词缓存机制&#xff0c;实现 92% 缓存命中率&#xff0c;显著降低重复计算的“上下文税”&#xff0c;节省高达81%的成本。核心原理在于Transformer的预填充阶段计算Key-Value向量&#xff0c;仅需…...

Qwen3-0.6B-FP8极速部署教程:Windows/Linux/macOS三端兼容方案

Qwen3-0.6B-FP8极速部署教程&#xff1a;Windows/Linux/macOS三端兼容方案 想在自己的电脑上跑一个大模型&#xff0c;但又担心配置不够、速度太慢&#xff1f;今天给大家介绍一个“小钢炮”级别的AI对话工具——基于Qwen3-0.6B-FP8模型的极速对话工具。它只有6亿参数&#xf…...

采购报销-发票预制及过账 增强供应商应付按订单行

1、术语发票校验&#xff1a;采购发票是供应商开给购货单位&#xff0c;据以付款、记账、纳税的依据。参照采购订单和采购入库单&#xff0c;按内容、价格进行发票正确性检查。一张发票过帐时&#xff0c;系统在供货商帐中创建一个未清项目&#xff0c;然后由财务会计在支付中结…...

第三期:基于立创·梁山派开发板的游戏机扩展板训练营全记录

第三期&#xff1a;基于立创梁山派开发板的游戏机扩展板训练营全记录 大家好&#xff0c;我是老张&#xff0c;一个在嵌入式行业摸爬滚打了十几年的工程师。最近&#xff0c;我作为导师完整地跟进了立创EDA举办的“梁山派游戏机扩展板训练营”第三期。看到很多朋友对如何从零开…...