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

Hive-Sql复杂面试题

参考链接:hive sql面试题及答案 - 知乎

有哪些好的题目都可以给我哦 我来汇总到一起

1、编写sql实现每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数

数据:
userid,month,visits
A,2015-01,5
A,2015-01,15
B,2015-01,5
A,2015-01,8
B,2015-01,25
A,2015-01,5
A,2015-02,4
A,2015-02,6
B,2015-02,10
B,2015-02,5
A,2015-03,16
A,2015-03,22
B,2015-03,23
B,2015-03,10
B,2015-03,1

预期结果:

create table u_visit(
userid STRING  ,month STRING ,visits BIGINT 
) LIFECYCLE 1;
INSERT into u_visit values('A','2015-01',5)
,('A','2015-01',15)
,('B','2015-01',5)
,('A','2015-01',8)
,('B','2015-01',25)
,('A','2015-01',5)
,('A','2015-02',4)
,('A','2015-02',6)
,('B','2015-02',10)
,('B','2015-02',5)
,('A','2015-03',16)
,('A','2015-03',22)
,('B','2015-03',23)
,('B','2015-03',10)
,('B','2015-03',1);思路:
截至当前累计 over中加order by 时间
全累计    over中不加order by 时间SELECT  userid,MONTH,visits,max(visits) OVER(PARTITION BY userid ) AS max_visit,max(visits) OVER(PARTITION BY userid ORDER BY MONTH ASC ) AS max_visit    --截止到当月最大值,SUM(visits) OVER(PARTITION BY userid ORDER BY MONTH ASC ) AS sum_visit
FROM    (SELECT  userid,MONTH,sum(visits) visitsFROM    u_visitGROUP BY userid,MONTH) A
;

结果

用户id 月份 月访问数 截止目前最大访问数 截止当前月最大访问数 截止当前月总访问数 

userid    month    visits    max_visit    max_visit2    sum_visit
A    2015-01    33    38    33    33
A    2015-02    10    38    33    43
A    2015-03    38    38    38    81
B    2015-01    30    34    30    30
B    2015-02    15    34    30    45
B    2015-03    34    34    34    79
 

2、求出每个栏目的被观看次数及累计观看时长

数据:
vedio表

用户id 栏目id 时长
Uid channl min
1 1 23
2 1 12
3 1 12
4 1 32
5 1 342
6 2 13
7 2 34
8 2 13
9 2 134

这个好简单 pass

3、编写连续7天登录的总人数

数据:
t1表
Uid dt login_status(1登录成功,0异常)
1 2019-07-11 1
1 2019-07-12 1
1 2019-07-13 1
1 2019-07-14 1
1 2019-07-15 1
1 2019-07-16 1
1 2019-07-17 1
1 2019-07-18 1
2 2019-07-11 1
2 2019-07-12 1
2 2019-07-13 0
2 2019-07-14 1
2 2019-07-15 1
2 2019-07-16 0
2 2019-07-17 1
2 2019-07-18 0
3 2019-07-11 1
3 2019-07-12 1
3 2019-07-13 1
3 2019-07-14 1
3 2019-07-15 1
3 2019-07-16 1
3 2019-07-17 1
3 2019-07-18 1

create TABLE t1(Uid bigint,dt STRING , login_status BIGINT  COMMENT '(1登录成功,0异常)'
) LIFECYCLE 1;
INSERT INTO t1 VALUES (1, '2019-07-11', 1)
,(1, '2019-07-12', 1)
,(1, '2019-07-13', 1)
,(1, '2019-07-14', 1)
,(1, '2019-07-15', 1)
,(1, '2019-07-16', 1)
,(1, '2019-07-17', 1)
,(1, '2019-07-18', 1)
,(2, '2019-07-11', 1)
,(2, '2019-07-12', 1)
,(2, '2019-07-13', 0)
,(2, '2019-07-14', 1)
,(2, '2019-07-15', 1)
,(2, '2019-07-16', 0)
,(2, '2019-07-17', 1)
,(2, '2019-07-18', 0)
,(3, '2019-07-11', 1)
,(3, '2019-07-12', 1)
,(3, '2019-07-13', 1)
,(3, '2019-07-14', 1)
,(3, '2019-07-15', 1)
,(3, '2019-07-16', 1)
,(3, '2019-07-17', 1)
,(3, '2019-07-18', 1);
--思路1 
-- 1、先按照每个人登录时间排序成如下数据结构
--   1 07-01 1
--   1 07-02 2
--   1 07-03 3
--2、 时间与排序做date_sub,变成如下结果
--   1 07-01 1 06-30
--   1 07-02 2 06-30
--   1 07-03 3 06-30
-- 3、根据id聚合时间差,变成如下结果:
--1 06-30 3 07-01 07-03  证明用户1 连续登录了3天 起始登录时间是07-01 结束连续登录是07-03
SELECT  Uid,COUNT(dtadd) AS countadd,COUNT(dtsub) AS countsub,MIN(dt) mindt,MAX(dt) maxdt
FROM    (SELECT  Uid,dt,DATEADD(dt,-rk,'dd') dtadd,date_sub(dt,rk) dtsubFROM    (SELECT  Uid,to_date(dt,'yyyy-mm-dd') dt,ROW_NUMBER() OVER(PARTITION BY uid ORDER BY dt ASC ) AS rkFROM    t1WHERE   login_status = 1) A) B
GROUP BY uid
HAVING  COUNT(dtadd) >= 7
;

结果:

uid    countadd    countsub    mindt    maxdt
1    8    8    2019-07-11 00:00:00    2019-07-18 00:00:00
3    8    8    2019-07-11 00:00:00    2019-07-18 00:00:00 

-- 思路2:
-- 1、先按照每个人登录时间排序成如下数据结构
--   1 07-01 1
--   1 07-02 2
--   1 07-03 3
--2、 利用lead或lag函数 上下错位,并计算时间差
--   1 07-01 07-02  1
--   1 07-02 07-03  1 
--   1 07-03 null   
-- 3、根据id聚合时间差,变成如下结果:
--1 2(因为有null,得再加个1)  证明用户1 连续登录了3天 
SELECT 
uid 
,COUNT(dtdiff)+1 AS 登录总次数
FROM 
(SELECT  Uid,dt,LEAD(dt,1) OVER (PARTITION BY uid ORDER BY dt ASC) leadrk,DATEDIFF(dt,LEAD(dt,1) OVER (PARTITION BY uid ORDER BY dt ASC),'dd') dtdiff
FROM    (SELECT  Uid,to_date(dt,'yyyy-mm-dd') dt,ROW_NUMBER() OVER(PARTITION BY uid ORDER BY dt ASC ) AS rkFROM    t1WHERE   login_status = 1) A
) B 
where (dtdiff=-1 or dtdiff is null)
group by uid 
HAVING COUNT(dtdiff)+1>=7
;

结果:

uid    登录总次数
1    8
3    8
 

4、编写sql语句实现每班前三名,分数一样并列,同时求出前三名按名次排序的依次的分差:

数据:
stu表
Stu_no class score
1 1901 90
2 1901 90
3 1901 83
4 1901 60
5 1902 66
6 1902 23
7 1902 99
8 1902 67
9 1902 87

create table stu(Stu_no BIGINT , class BIGINT , score BIGINT 
) LIFECYCLE 1;
INSERT INTO stu VALUES 
(1 ,1901, 90)
,(2 ,1901, 90)
,(3 ,1901, 83)
,(4 ,1901, 60)
,(5 ,1902, 66)
,(6 ,1902, 23)
,(7 ,1902, 99)
,(8 ,1902, 67)
,(9 ,1902, 87);

-- 思路1
-- 1、各班自行排序,可并列 应使用 dense_rank 区别rankrk
-- 2、利用lag或lead函数,上下错误,并计算分差
SELECT  stu_no,class,score,LEAD(score,1) OVER (PARTITION BY class ORDER BY score DESC ) leadscore,LAG(score,1) OVER (PARTITION BY class ORDER BY score DESC ) lagscore,score-nvl(LEAD(score,1) OVER (PARTITION BY class ORDER BY score DESC ),0) AS 分差lead,LAG(score,1) OVER (PARTITION BY class ORDER BY score DESC )-score AS 分差lag
FROM    (SELECT  stu_no,class,score,DENSE_RANK() OVER (PARTITION BY class ORDER BY score DESC ) denserk,RANK() OVER (PARTITION BY class ORDER BY score DESC ) rankrkFROM    stu) A
WHERE   denserk <= 3
;

第一步结果:

stu_no    class    score    denserk    rankrk
1    1901    90    1    1
2    1901    90    1    1
3    1901    83    2    3
4    1901    60    3    4
7    1902    99    1    1
9    1902    87    2    2
8    1902    67    3    3
5    1902    66    4    4
6    1902    23    5    5
 

结果 [具体向上取分差还是向下取分差按实际情况即可]:

stu_no    class    score    leadscore    lagscore    分差lead    分差lag
1    1901    90    90    \N    0    \N
2    1901    90    83    90    7    0
3    1901    83    60    90    23    7
4    1901    60    \N    83    60    23
7    1902    99    87    \N    12    \N
9    1902    87    67    99    20    12
8    1902    67    \N    87    67    20
 

5、每个店铺的当月销售额和累计到当月的总销售额

数据:
店铺,月份,金额
a,01,150
a,01,200
b,01,1000
b,01,800
c,01,250
c,01,220
b,01,6000
a,02,2000
a,02,3000
b,02,1000
b,02,1500
c,02,350
c,02,280
a,03,350
a,03,250

参考1思路

6、分析用户的行为习惯,找到每个用户的第一次行为

数据:user_action_log

uid time action

1 time1 Read

3 time2 Comment

1 time3 Share

2 time4 Like

1 time5 Write

2 time6 Share

3 time7 Write

2 time8 Read

思路,

1、排序取第一个

2、first_value函数

7、订单及订单类型行列互换

t_order表:
order_id order_type order_time
111 N 10:00
111 A 10:05
111 B 10:10
是用hql获取结果如下:
order_id order_type_1 order_type_2 order_time_1 order_time_2
111 N A 10:00 10:05
111 A B 10:05 10:10

create table t_order
(order_id BIGINT , order_type STRING , order_time STRING )
LIFECYCLE 1;INSERT INTO t_order VALUES 
(111, 'N', '10:00')
,(111, 'A', '10:05')
,(111, 'B', '10:10');--思路
-- 1、按照时间升序排列数据
-- 2、利用lead函数取下一个数据,取不到的排除掉
SELECT  *
FROM    (SELECT  order_id,order_type AS order_type_1,LEAD(order_type,1) OVER (PARTITION BY order_id ORDER BY order_time ASC ) AS order_type_2,order_time AS order_time_1,LEAD(order_time,1) OVER (PARTITION BY order_id ORDER BY order_time ASC ) AS order_time_2FROM    (SELECT  order_id,order_type,order_time,ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY order_time ASC ) rkFROM    t_order) A) 
WHERE   order_type_2 IS NOT NULL
;

结果:

order_id    order_type_1    order_type_2    order_time_1    order_time_2
111    N    A    10:00    10:05
111    A    B    10:05    10:10
 

8、某APP每天访问数据存放在表access_log里面,包含日期字段 ds,用户类型字段user_type,用户账号user_id,用户访问时间 log_time,请使用hive的hql语句实现如下需求:

(1)、每天整体的访问UV、PV?
(2)、每天每个类型的访问UV、PV?
(3)、每天每个类型中最早访问时间和最晚访问时间?
(4)、每天每个类型中访问次数最高的10个用户?

(1)思路

UV = count(user_id)

PV = sum(user_id)

select
count(user_id) over(distribute by user_id) uv,
sum(user_id) over(distribute by log_time) pv
from access_log

(2)思路

select
count(user_id) uv
sum(user_id) over(distribute by log_time) pv
from access_log al1
inner join
access_log al2
group by
user_type

(3)思路
select
first_value(log_time) over(distribute by user_type order by log_time) first_time,
last_value(log_time) over(distribute by user_type order by log_time)
from access_log

(4)思路
select
user_id
from
(select
count(user_id) cnt
row_number() over(distribute by user_type order by count(user_id)) rows
from access_log) tmp
where tmp.rows<=10

 

9、每个用户连续登陆的最大天数?

数据:
login表
uid,date
1,2019-08-01
1,2019-08-02
1,2019-08-03
2,2019-08-01
2,2019-08-02
3,2019-08-01
3,2019-08-03
4,2019-07-28
4,2019-07-29
4,2019-08-01
4,2019-08-02
4,2019-08-03
结果如下:
uid cnt_days
1 3
2 2
3 1
4 3

10、使用hive的hql实现男女各自第一名及其它

id sex chinese_s math_s
0 0 70 50
1 0 90 70
2 1 80 90
1、男女各自语文第一名(0:男,1:女)
2、男生成绩语文大于80,女生数学成绩大于70

11、使用hive的hql实现最大连续访问天数

log_time uid
2018-10-01 18:00:00,123
2018-10-02 18:00:00,123
2018-10-02 19:00:00,456
2018-10-04 18:00:00,123
2018-10-04 18:00:00,456
2018-10-05 18:00:00,123
2018-10-06 18:00:00,123 

12、编写sql实现行列互换

行转列:

1、使用case when 查询出多列即可,即可增加列。

列转行:

1、lateral view explode(),使用炸裂函数可以将1列转成多行,被转换列适用于array、map等类型。 lateral view posexplode(数组),如有排序需求,则需要索引。将数组炸开成两行(索引 , 值),需要 as 两个别名。

2、case when 结合concat_ws与collect_set/collect_list实现。内层用case when,外层用 collect_set/list收集,对搜集完后用concat_ws分割连接形成列。

13、编写sql实现如下:

数据:
t1表
uid tags
1 1,2,3
2 2,3
3 1,2
编写sql实现如下结果:
uid tag
1 1
1 2
1 3
2 2
2 3
3 1
3 2

14、用户标签连接查询

数据:
T1表:
Tags
1,2,3
1,2
2,3
T2表:
Id lab
1 A
2 B
3 C
根据T1和T2表的数据,编写sql实现如下结果:
ids tags
1,2,3 A,B,C
1,2 A,B
2,3 B,C

预期结果:

15、用户标签组合 

数据:
t1表:
id tag flag
a b 2
a b 1
a b 3
c d 6
c d 8
c d 8
编写sql实现如下结果:
id tag flag
a b 1|2|3
c d 6|8

预期结果:

16、户标签行列互换

数据:
t1表
uid name tags
1 goudan chihuo,huaci
2 mazi sleep
3 laotie paly
编写sql实现如下结果:
uid name tag
1 goudan chihuo
1 goudan huaci
2 mazi sleep
3 laotie paly

17、hive实现词频统计

数据:
t1表:
uid contents
1 i|love|china
2 china|is|good|i|i|like
统计结果如下,如果出现次数一样,则按照content名称排序:
content cnt
i 3
china 2
good 1
like 1
love 1
is 1

18、课程行转列

数据:
t1表
id course
1,a
1,b
1,c
1,e
2,a
2,c
2,d
2,f
3,a
3,b
3,c
3,e
根据编写sql,得到结果如下(表中的1表示选修,表中的0表示未选修):
id a b c d e f
1 1 1 1 0 1 0
2 1 0 1 1 0 1
3 1 1 1 0 1 0

19、兴趣行转列

t1表
name    sex  hobby
janson  男 打乒乓球、游泳、看电影
tom      男 打乒乓球、看电影

hobby最多3个值,使用hql实现结果如下:
name   sex    hobby1    hobby2    hobby3
janson  男     打乒乓球   游泳       看电影
tom      男     打乒乓球  看电影

20、用户商品行列互换

t1表:
用户 商品
A P1
B P1
A P2
B P3
请你使用hql变成如下结果:1代表购买过的商品0代表未购买
用户 P1 P2 P3
A 1 1 0
B 1 0 1

21、求top3英雄及其pick率

id names
1 亚索,挖掘机,艾瑞莉娅,洛,卡莎
2 亚索,盖伦,奥巴马,牛头,皇子
3 亚索,盖伦,艾瑞莉娅,宝石,琴女
4 亚素,盖伦,赵信,老鼠,锤石
请用 HiveSQL 计算出出场次数最多的 top3 英雄及其 pick 率(=出现场数/总场数)

21、使用hive求出两个数据集的差集

数据
t1表:
id name
1 zs
2 ls
t2表:
id name
1 zs
3 ww
结果如下:
id name
2 ls
3 ww

22、两个表A 和B ,均有key 和value 两个字段,写一个SQL语句, 将B表中的value值置成A表中相同key值对应的value值

A:
key vlaue
k1 123
k2 234
k3 235
B:
key value
k1 111
k2 222
k5 246
使用hive的hql实现,结果是B表数据如下:
k1 123
k2 234
k5 246

 23、有用户表user(uid,name)以及黑名单表Banuser(uid)

1、用left join方式写sql查出所有不在黑名单的用户信息
2、用not exists方式写sql查出所有不在黑名单的用户信息

24、使用什么来做的cube 

使用with cube 、 with rollup 或者grouping sets来实现cube。

详细解释如下:

0、hive一般分为基本聚合和高级聚合

基本聚合就是常见的group by,高级聚合就是grouping set、cube、rollup等。

一般group by与hive内置的聚合函数max、min、count、sum、avg等搭配使用。

1、grouping sets可以实现对同一个数据集的多重group by操作。

事实上grouping sets是多个group by进行union all操作的结合,它仅使用一个stage完成这些操作。

grouping sets的子句中如果包换() 数据集,则表示整体聚合。多用于指定的组合查询。

2、cube俗称是数据立方,它可以时限hive任意维度的组合查询。

即使用with cube语句时,可对group by后的维度做任意组合查询

如:group a,b,c with cube ,则它首先group a,b,c 然后依次group by a,c 、 group by b,c、group by a,b 、group a 、group b、group by c、group by () 等这8种组合查询,所以一般cube个数=2^3个。2是定 值,3是维度的个数。多用于无级联关系的任意组合查询。

3、rollup是卷起的意思,俗称层级聚合,相对于grouping sets能指定多少种聚合,而with rollup则表示从左 往右的逐级递减聚合,如:group by a,b,c with rollup 等价于 group by a, b, c grouping sets( (a, b, c), (a, b), (a), ( )).直到逐级递减为()为止,多适用于有级联关系的组合查询,如国家、省、市级联组合查 询。

4、Grouping__ID在hive2.3.0版本被修复过,修复后的发型版本和之前的不一样。对于每一列,如果这列 被聚合 过则返回0,否则返回1。应用场景暂时很难想到用于哪儿。

5、grouping sets/cube/rollup三者的区别: 注: grouping sets是指定具体的组合来查询。 with cube 是group by后列的所有的维度的任意组合查询。

with rollup 是group by后列的从左往右逐级递减的层级组合查询。 cube/rollup 后不能加()来选择列,hive是要求这样。

25、访问日志正则提取

表t1(注:数据时正常的访问日志数据,分隔符全是空格)
8.35.201.160 - - [16/May/2018:17:38:21 +0800] "GET
/uc_server/data/avatar/000/01/54/22_avatar_middle.jpg HTTP/1.1" 200 5396
使用hive的hql实现结果如下:
ip dt url
8.35.201.160 2018-5-16 17:38:21
/uc_server/data/avatar/000/01/54/22_avatar_middle.jpg

 26、

相关文章:

Hive-Sql复杂面试题

参考链接&#xff1a;hive sql面试题及答案 - 知乎 有哪些好的题目都可以给我哦 我来汇总到一起 1、编写sql实现每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数 数据&#xff1a; userid,month,visits A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,…...

WPS二次开发系列:WPS SDk功能就概览

作者持续关注WPS二次开发专题系列&#xff0c;持续为大家带来更多有价值的WPS开发技术细节&#xff0c;如果能够帮助到您&#xff0c;请帮忙来个一键三连&#xff0c;更多问题请联系我&#xff08;QQ:250325397&#xff09; 作者通过深度测试使用了WPS SDK提供的Demo&#xff0…...

华为OD-C卷-结队编程[200分]

题目描述 某部门计划通过结队编程来进行项目开发, 已知该部门有 N 名员工,每个员工有独一无二的职级,每三个员工形成一个小组进行结队编程, 结队分组规则如下: 从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分别为 level[i],level[j],level[k], 结队小组满…...

连连看游戏页面网站源码,直接使用

可以上传自己喜欢的图片 游戏页面 通关页面 源码免费下载地址抄笔记 (chaobiji.cn)...

在 Kubernetes 1.24 中使用 Docker:配置与应用指南

在 Kubernetes 1.24 中使用 Docker&#xff1a;配置与应用指南 引言 随着 Kubernetes 社区对容器运行时接口&#xff08;CRI&#xff09;的标准化推进&#xff0c;Docker 原生支持在 Kubernetes 1.24 版本中被弃用。然而&#xff0c;许多开发者和组织仍希望继续使用 Docker。…...

Canvas使用详细教学:从基础绘图到进阶动画再到实战(海报生成、Flappy Bird 小游戏等),掌握绘图与动画的秘诀

一、Canvas基础 1. Canvas简介 Canvas是HTML5引入的一种基于矢量图形的绘图技术&#xff0c;它是一个嵌入HTML文档中的矩形区域&#xff0c;允许开发者使用JavaScript直接操作其内容进行图形绘制。Canvas元素不包含任何内在的绘图能力&#xff0c;而是提供了一个空白的画布&a…...

【MATLAB 分类算法教程】_2粒子群算法优化支持向量机SVM分类 - 教程和对应MATLAB代码

分类代码案例2:粒子群算法优化支持向量机SVM分类 - MATLAB完全代码教程 1. 初始化代码2. 读取数据代码3.数据预处理代码4.利用粒子群算法PSO求解最佳的SVM参数c和g代码5.根据最佳的参数进行SVM模型训练代码6.SVM模型预测代码7.准确率分析以及分类结果对比作图代码本文以红酒数…...

Vue2电商前台项目(三):完成Search搜索模块业务

目录 一、请求数据并展示 1.写Search模块的接口 2.写Vuex中的search仓库&#xff08;三连环&#xff09; 3.组件拿到search仓库的数据 用getters简化仓库中的数据 4.渲染商品数据到页面 5.search模块根据不同的参数获取数据展示 &#xff08;1&#xff09;把派发action…...

算法思想总结:链表

一、链表的常见技巧总结 二、两数相加 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点&#xff0c;方便尾插List…...

Android Room 记录一个Update语句不生效的问题解决记录

代码展示 1.数据实体类 Entity public class User {PrimaryKey(autoGenerate true)private long id;private String name;private String age;private String sex;public User(String name, String age, String sex) {this.name name;this.age age;this.sex sex;}public …...

使用SpringBoot3+Vue3开发公寓管理系统

项目介绍 公寓管理系统可以帮助公寓管理员更方便的进行管理房屋。功能包括系统管理、房间管理、租户管理、收租管理、房间家具管理、家具管理、维修管理、维修师傅管理、退房管理。 功能介绍 系统管理 用户管理 对系统管理员进行管理&#xff0c;新增管理员&#xff0c;修改…...

有且仅有的10个常见的排序算法,东西不多,怎么就背不下来呢

就这么跟你说吧&#xff0c;面试中肯定会出排序算法的算法题&#xff0c;你只需要背下来代码背下来他们的时间复杂度和空间复杂度就能蒙混过关。 不管你是前端还是后端&#xff0c;关于排序的算法有且仅有这 10个&#xff0c;如果你用心了&#xff0c;怎么会记不住呢。看完这篇…...

Mac安装配置ElasticSearch和Kibana 8.13.2

系统环境&#xff1a;Mac M1 (MacOS Sonoma 14.3.1) 一、准备 从Elasticsearch&#xff1a;官方分布式搜索和分析引擎 | Elastic上下载ElasticSearch和Kibana 笔者下载的是 elasticsearch-8.13.2-darwin-aarch64.tar.gz kibana-8.13.2-darwin-aarch64.tar.gz 并放置到个人…...

javaWeb项目-快捷酒店管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Spring Boot框架 …...

闲不住,手写一个数据库文档生成工具

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 逛博客的时候&#xff0c;发现了一个很有意思的文章&#xff1a;数据库表结构导…...

在群晖上安装GPT4Free

什么是 GPT4Free &#xff1f; GPT4Free 简称 G4F&#xff0c;是一个强大的大型语言模型命令行界面&#xff08;LLM-CLI&#xff09;&#xff0c;旨在去中心化并提供免费访问先进人工智能技术的能力。G4F 的目标是通过提供用户友好和高效的工具&#xff0c;使人工智能民主化&am…...

C# 语言类型(四)—传递参数及其修饰符

总目录 C# 语法总目录 参考链接&#xff1a; C#语法系列:C# 语言类型(一)—预定义类型值之数值类型 C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述 C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体 C#语法系列:C# 语言类型(四)—传递参数及其修饰符 C#语法…...

刷穿力扣006-剑指offer一数组——02寻找目标值-二维数组

刷穿力扣006-剑指offer<一>数组——02寻找目标值-二维数组 基本面试题都是我带大家刷的力扣热题100和剑指offer的75道题&#xff0c;建议刷两遍&#xff01;&#xff08;ps:想找工作实习的同学&#xff0c;文末有面试八股和简历模板&#xff09; 题目&#xff1a; 语言…...

爬虫(小案例)

点开其中一个链接&#xff0c; http://desk.zol.com.cn/dongman/huoyingrenzhe/&#xff08;前面为浏览器自动补全&#xff0c;在代码里需要自己补全&#xff09; 可以看到图片的下载地址以及打开本图集下一张图片的链接 了解完网站的图片构造后动手写代码&#xff0c;我们筛…...

环信 IM 客户端将适配鸿蒙 HarmonyOS

自华为推出了自主研发操作系统鸿蒙 HarmonyOS 后&#xff0c;国内许多应用软件开始陆续全面兼容和接入鸿蒙操作系统。环信 IM 客户端计划将全面适配统鸿蒙 HarmonyOS &#xff0c;助力开发者快速实现社交娱乐、语聊房、在线教育、智能硬件、社交电商、在线金融、线上医疗等广泛…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...