Oracle常见语法
一、求交集
SELECT column1, column2
FROM table1
INTERSECT
SELECT column1, column2
FROM table2;
INTERSECT
操作符是 Oracle 和一些其他数据库(如 PostgreSQL 和 SQL Server)特有的集合操作符,在 MySQL 中并不直接支持。MYSQL同效果代码:
SELECT t1.column1, t1.column2
FROM table1 t1
INNER JOIN table2 t2ON t1.column1 = t2.column1AND t1.column2 = t2.column2;
二、求差集
用于返回 第一个查询结果 中存在,但在 第二个查询结果 中不存在的行,即从第一个查询中减去第二个查询中的内容。
SELECT column1, column2
FROM table1
MINUS
SELECT column1, column2
FROM table2;
结果:
MINUS
会返回 table1 中有,但 table2 中没有的行。
特点:
- 默认去重:返回的结果不会包含重复的行。
- 结果是基于整个行的比较,而不仅仅是单个列。
MINUS
在 Oracle 和一些数据库中是原生支持的,但在 MySQL 中不支持。
MySQL 中的替代方法
SELECT t1.column1, t1.column2
FROM table1 t1
LEFT JOIN table2 t2ON t1.column1 = t2.column1AND t1.column2 = t2.column2
WHERE t2.column1 IS NULL;
三、左外连接
左外连接返回左表(即 LEFT JOIN
左侧的表)中的所有行,即使右表没有匹配的行。如果右表没有匹配的行,结果中该部分的列会显示为 NULL
。
第一种语法:
SELECT e.emp_name, d.dept_name
FROM employees e
LEFT JOIN departments d ON e.dept_id = d.dept_id;
第二种语法:
SELECT e.emp_name, d.dept_name
FROM employees e, departments d
WHERE e.dept_id = d.dept_id(+);
这种写法是 Oracle 特有的表示 外连接 的语法,使用 (+)
来表示右表(或左表)是外部表,确保即使另一张表没有匹配的记录,外部表的记录仍然会显示在结果中
四、右外连接
右外连接返回右表(即 RIGHT JOIN
右侧的表)中的所有行,即使左表没有匹配的行。如果左表没有匹配的行,结果中该部分的列会显示为 NULL
。
语法一:
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;
语法二:
select 列名 from 表名,表名2 where 表1.name(+)=表2.name
五、交叉连接
交叉连接(或笛卡尔积)返回左表和右表的所有行的 组合,即 每一行左表 会与 每一行右表 进行匹配,结果集的行数等于两个表的行数的乘积。
SELECT columns
FROM table1
CROSS JOIN table2;
SELECT s.student_name, c.course_name
FROM students s
CROSS JOIN courses c;
- 每个学生(
students
表)会与每个课程(courses
表)进行组合,返回所有可能的行(笛卡尔积)。因此,结果有 2(学生) * 2(课程) = 4 行。
六、按查询顺序分配行号 ROWNUM
SELECT emp_name, salary, ROWNUM
FROM employees;
ROWNUM
可以作为筛选条件获取前 N 行数据
获取前两行的数据
SELECT emp_name, salary
FROM employees
WHERE ROWNUM <= 2;
常见问题:无法跳过前几行
假设你想获取 第 2 到第 4 行的数据,可能会写:
SELECT emp_name, salary
FROM employees
WHERE ROWNUM > 1 AND ROWNUM <= 4;
但这样是错误的! ROWNUM
是 逐行分配的,一旦 ROWNUM = 1
这行被过滤掉,后面的行就永远不会得到 ROWNUM = 2
,查询会返回 空结果。
正确的做法:使用子查询
SELECT * FROM (SELECT emp_name, salary, ROWNUM AS rn FROM employees
) WHERE rn BETWEEN 2 AND 4;
七、按特定排序分配行号 ROW_NUMBER()
7.1排序分配行号
ROW_NUMBER()
是 Oracle 11g 及以上 版本引入的 窗口函数(Window Function),用于为查询结果中的每一行分配唯一的行号。
SELECT emp_name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS rn
FROM employees;
ROW_NUMBER()
是窗口函数,必须与 OVER()
一起使用。每一行的 ROW_NUMBER()
值都是唯一的,即使数据相同。
7.2 先分组再排序编号
如果我想先分组再排序编号,就需要下面这样:
SELECT emp_name, salary, dept_id,ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS rn
FROM employees;
PARTITION BY dept_id
:按照 dept_id
(部门)进行分组,每个部门的编号 从 1 开始 重新计算
7.3 分页查询
SELECT * FROM (SELECT emp_name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS rnFROM employees
) WHERE rn BETWEEN 3 AND 4;
在外层查询 WHERE rn BETWEEN 3 AND 4
只取 第 3 ~ 4 行(相当于 OFFSET 2 LIMIT 2
)
八、RANK( )和 DENSE_RANK()
8.1直接排名
SELECT emp_name, salary,RANK() OVER (ORDER BY salary DESC) AS rank_num,DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank_num
FROM employees;
8.2 先分组后排名
SELECT emp_name, salary, dept_id,RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS rank_num,DENSE_RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS dense_rank_num
FROM employees;
九、企业代码a解析
select '$code' 采购方代码,'$name' 采购方名称,w.goods 产品代码,w.name 产品名称,w.spec 产品规格,h.lotno 批号,w.producer 生产厂家,to_char(l.enddate, 'yyyy/mm/dd') 有效期,'' 进货类型,nvl(w.ratifier, w.register) as 批准文号FROM st_pur h, t_clients c, t_waredict w, scm_lot_list@cmsjs lWHERE h.compid = 1and h.cstid = c.cstidand h.goodid = w.goodidand h.goodid = l.goodidand h.lotno = l.lotnoand w.goodid in (select goodidfrom v_tz_zl_waredict@zdwhere ori_ownerid = '27'and cstname = '厂商名')
9.1字符串常量
在 SQL 语句中,'$code'
和 '$name'
只是普通的字符串常量,也就是固定的值。
在 SQL 中,单引号用于表示字符串常量。即使字符串为空,单引号也可以表示一个空字符串(即长度为 0 的字符串)。
'' 进货类型,
9.2 日期类型转换格式
上述代码中 to_char(l.enddate, 'yyyy/mm/dd') 用于将日期类型的数据转换为指定格式的字符串。它通常用于将日期格式化为我们需要的输出样式。
将 l.enddate
(可能是一个 DATE
或 TIMESTAMP
类型的字段)格式化为一个字符串,格式为 'yyyy/mm/dd’
9.3 NVL()
NVL()
是 Oracle SQL 中的一个函数,用于处理空值(NULL),如果指定的表达式为 NULL
,则返回一个替代值。
NVL(expression1, expression2)
expression1
: 需要检查的值。如果这个值为 NULL
,则返回 expression2
。
NVL(w.ratifier, w.register)
在上述的 SQL 中,NVL(w.ratifier, w.register)
表示:
- 首先检查
w.ratifier
的值:- 如果
w.ratifier
不为NULL
,则返回w.ratifier
的值。 - 如果
w.ratifier
为NULL
,则返回w.register
的值。
- 如果
也就是说,NVL(w.ratifier, w.register)
用来选择 w.ratifier
(批准人)的值,如果它为空,则选择 w.register
(注册人)的值。
9.4 数据库连接
代码中where里有这么一个表,它涉及到数据库连接
scm_lot_list@cmsjs l
数据库连接(Database Link)是什么?
想象一下,你有两台电脑:
- 电脑A(你的本地数据库)
- 电脑B(远程数据库,存放着你需要的数据)
如果你想要访问 电脑B 上的文件,最简单的方法是什么?
✅ 远程桌面(Remote Desktop)
✅ 网络共享(Network Share)
你可以用 远程桌面 直接操作 电脑B,或者用 网络共享 让 电脑A 直接访问 电脑B 的文件,就像访问本地文件一样。
数据库连接(Database Link) 就像这个 网络共享,它让一个数据库(A)能够访问另一个远程数据库(B)中的数据,就像它是本地数据一样。
SELECT * FROM scm_lot_list@cmsjs;
这个 @cmsjs
就是数据库的“网络共享路径”。它告诉数据库: “我要访问 cmsjs
这个远程数据库中的 scm_lot_list
表。”
如果没有 @cmsjs
,那么 scm_lot_list
就是你本地数据库的表;
加上 @cmsjs
,表示去 远程数据库 里找 scm_lot_list
这个表。
如何创建数据库连接
CREATE DATABASE LINK 连接名
CONNECT TO 远程用户名 IDENTIFIED BY '远程用户密码'
USING '远程数据库地址';
示例: 假设你本地的数据库需要访问远程数据库 cmsjs
,远程数据库的用户是 remote_user
,密码是 password
,远程数据库的地址是 remote_db
,可以这样创建连接:
CREATE DATABASE LINK cmsjs
CONNECT TO remote_user IDENTIFIED BY 'password'
USING 'remote_db';
-
CREATE DATABASE LINK cmsjs
- 这里的
cmsjs
是数据库连接的名称,你可以随便取,但必须保证唯一。 - 以后你查询远程数据库的数据时,都会用
@cmsjs
。
- 这里的
-
CONNECT TO remote_user IDENTIFIED BY 'password'
- 这里的
remote_user
是远程数据库的用户名,需要有查询权限。 'password'
是远程数据库用户的密码。
- 这里的
-
USING 'remote_db'
- 这里的
'remote_db'
代表 远程数据库的连接信息,可以是:- TNS(透明网络子系统)别名,如果已经在
tnsnames.ora
里配置了远程数据库。 - 完整的连接字符串,直接指定远程数据库的主机、端口、SID 或服务名。
- TNS(透明网络子系统)别名,如果已经在
- 这里的
USING '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521)))(CONNECT_DATA=(SID=orcl)))'
HOST=192.168.1.100
远程数据库的 IP 地址PORT=1521
远程数据库的端口(Oracle 默认 1521)SID=orcl
远程数据库的 SID
十、企业代码b解析
SELECT trunc(h.makedate) 日期,'$code' 销售方代码,'$name' 销售方名称,w.producer 生产厂家,to_date(substr( h.bthdesc, instr( h.bthdesc, '效期:', 1, 1 ) + 3, 10 ), 'yyyy/mm/dd') 有效期,'' 销售类型,h.addressname as 收货地址,nvl(w.ratifier, w.register) as 批准文号FROM st_flow h, t_waredict w, t_clients cWHERE h.compid = c.compidAND h.goodid = w.goodidAND h.cstid = c.cstidand w.goodid in (select goodidfrom v_tz_zl_waredict@zdwhere ori_ownerid = '27'and cstname = '厂商名字')
10.1 日期截断 trunc()
TRUNC()
是 Oracle SQL 中的一个日期处理函数,主要用于截断日期,它可以去除日期中的时间部分(小时、分钟、秒等),只保留日期部分(年、月、日)。例如,如果 h.makedate
的值是 2025-02-10 15:30:45
,使用 TRUNC(h.makedate)
后会变成 2025-02-10
,即时间部分被去掉。
10.2 instr()
to_date(substr( h.bthdesc, instr( h.bthdesc, '效期:', 1, 1 ) + 3, 10 ), 'yyyy/mm/dd') 有效期,
INSTR
是 Oracle SQL 中的一个字符串函数,用于查找一个子字符串在另一个字符串中出现的位置。它返回子字符串在目标字符串中首次出现的位置(索引),如果没有找到子字符串,则返回 0
。
INSTR(string, substring [, start_position [, match_occurance [, return_option [, scan_direction [, match_character]]]]])
string
:目标字符串,也就是我们要搜索的字符串。substring
:要查找的子字符串。start_position
:可选参数,指定从目标字符串的哪个位置开始查找。默认为1
,表示从第一个字符开始查找。match_occurance
:可选参数,指定查找的子字符串出现的第几次。默认为1
,表示查找第一次出现的子字符串。return_option
:可选参数,决定返回值的类型:0
或省略:返回子字符串的起始位置。1
:返回子字符串的结束位置。
scan_direction
:可选参数,指定查找方向:1
:从左到右(默认)。-1
:从右到左(即反向查找)。
match_character
:可选参数,指定大小写敏感的字符集或字符集标志。
假设你有以下字符串:'Hello, world!'
,你想查找 'world'
在字符串中的位置:
SELECT INSTR('Hello, world!', 'world') AS position FROM dual;
返回结果:
POSITION
--------8
h.bthdesc
是表 st_flow
中的一个列,可能包含一些描述信息。假设它是一个文本字段,里面存储了类似这样的字符串:
"生产批号: ABC123 效期: 2025/02/10"
instr(h.bthdesc, '效期:', 1, 1)
:
INSTR
是 Oracle SQL 中的一个字符串函数,用于返回子字符串在目标字符串中的位置。h.bthdesc
是目标字符串,'效期:'
是我们要查找的子字符串,1
表示从目标字符串的第一个字符开始查找,最后一个1
表示只查找第一个出现的位置。- 假设
h.bthdesc
的值是"生产批号: ABC123 效期: 2025/02/10"
,那么INSTR(h.bthdesc, '效期:', 1, 1)
的结果会是10
,表示'效期:'
在字符串中的起始位置是第10个字符。
10.3 将字符串转换为日期类型 TO_DATE
TO_DATE(string, format_mask)
将给定的字符串 string
按照指定的 format_mask
格式解析,转换为一个日期类型。这个日期类型是 Oracle 数据库内部用于存储日期的格式,支持进行日期运算和比较。
1. 将字符串 '2025/02/10'
转换为日期类型:
TO_DATE('2025/02/10', 'yyyy/mm/dd')
这个查询将把 '2025/02/10'
这个字符串按照 年-月-日(yyyy/mm/dd
)的格式转换为 Oracle 的日期类型。转换后的结果会是 2025年2月10日,而且可以进行日期运算(例如:加减天数、月数等)。
2. 将字符串 '10-FEB-2025'
转换为日期类型:
TO_DATE('10-FEB-2025', 'dd-mon-yyyy')
这个查询将把 '10-FEB-2025'
字符串按照 日-月-年(dd-mon-yyyy
)的格式转换为日期类型。这个格式中的 mon
是指月份的简写(如 JAN
,FEB
,MAR
,等等)
使用 TO_DATE
时要注意的几点:
-
日期格式与实际字符串的格式必须匹配:
- 格式模板(
format_mask
)必须与输入的日期字符串格式完全一致。否则,Oracle 会抛出错误。
- 格式模板(
-
默认日期格式:
- 如果没有显式指定格式,Oracle 会使用默认的日期格式(通常是
DD-MON-YY
,即10-FEB-25
)。如果不清楚输入日期的格式,建议始终明确指定格式。
- 如果没有显式指定格式,Oracle 会使用默认的日期格式(通常是
-
日期类型和字符串类型的区别:
TO_DATE
函数将返回一个 日期类型,而不是字符串。Oracle 会按照其内部的日期格式存储和处理这些数据。
-
时间部分的处理:
- 如果
string
中包含时间信息,TO_DATE
会将时间部分一起解析。如果没有时间信息,时间部分默认为00:00:00
(即午夜)。
- 如果
-
不同的数据库可能有不同的默认日期格式:
- 不同数据库管理系统(DBMS)可能有不同的默认日期格式。在 Oracle 中,通常是
DD-MON-YY
,而在其他 DBMS 中可能是YYYY-MM-DD
,因此在跨数据库开发时,需要特别注意日期格式的处理。
- 不同数据库管理系统(DBMS)可能有不同的默认日期格式。在 Oracle 中,通常是
相关文章:

Oracle常见语法
一、求交集 SELECT column1, column2 FROM table1 INTERSECT SELECT column1, column2 FROM table2;INTERSECT 操作符是 Oracle 和一些其他数据库(如 PostgreSQL 和 SQL Server)特有的集合操作符,在 MySQL 中并不直接支持。MYSQL同效果代码&a…...
在Vue3中使用Echarts的示例 两种方法
在Vue 3中使用ECharts可以通过两种主要方法实现:全局安装和组件封装。下面我将分别 介绍这两种方法的具体实现步骤。 方法1:全局安装 1.安装ECharts 在你的Vue项目中,首先需要安装ECharts。打开终端,运行以下命令: Bash copy code npm install ec…...
【docker】docker改动镜像并重新编译举例
docker改动镜像并重新编译举例 使用vllm启动Qwen VL 2.5出现报错 0.7.2 Docker Container doesnt support Qwen VL 2.5 Instruct 查看镜像 docker images 会发现本地有vllm/vllm-openai:v0.7.2镜像,id为f78c8f2f8ad5 空白文件夹中新建文件Dockerfile 写入&#…...
具身智能训练新思路!将生成视频用于训练机器人
将生成视频用于训练具身智能(Embodied AI)确实是近年来备受关注的前沿方向,这一思路通过结合生成式AI(如扩散模型、神经辐射场等)与机器人学习,为解决真实世界数据稀缺、训练成本高等问题提供了新可能。以下从技术逻辑、潜在优势、挑战及案例方向展开分析: 一、技术逻辑…...
15、深度学习-自学之路-反向传播程序展示、激活函数的应用,反向权重的更新、2层神经网络的应用,输入输出相关性的理解。
这个里面要学习和展示的内容会比较多,需要好好的认真思考 第一个要思考的就是:输入和输出相关性的理解,我们先拿一层的神经网络来说明一下, 输入有2个因素,对应有两个权重,输出有一个结果。 输入的两个因…...

【JavaEE进阶】依赖注入 DI详解
目录 🌴什么是依赖注入 🎄依赖注入的三种方法 🚩属性注⼊(Field Injection) 🚩Setter注入 🚩构造方法注入 🚩三种注⼊的优缺点 🌳Autowired存在的问题 🌲解决Autowired存在的…...

医疗影响分割 | 使用 Swin UNETR 训练自己的数据集(3D医疗影像分割教程)
<Swin UNETR: Swin Transformers for Semantic Segmentation of Brain Tumors in MRI Images> 代码地址:unetr 论文地址:https://arxiv.org/pdf/2201.01266 一、下载代码 在Github上下载代码,然后进入SWINUNETR,前两个是针对两个数据集(BRATS21、BTCV)的操作,这里…...

IGBT的两级关断
IGBT(绝缘栅双极型晶体管)的两级关断(Two-stage turn-off)是一种优化关断过程的方法,主要用于减少关断时的电压过冲和dv/dt(电压变化率)过高的问题,特别是在大功率应用中(…...

微服务与网关
什么是网关 背景 单体项目中,前端只用访问指定的一个端口8080,就可以得到任何想要的数据 微服务项目中,ip是不断变化的,端口是多个的 解决方案:网关 网关:就是网络的关口,负责请求的路由、转发…...

“云计算一哥”一口气发布6个大模型、3nm芯片!多模态还要搞Any-to-Any
金磊 发自 拉斯维加斯量子位 | 公众号 QbitAI 就在刚刚,云计算一哥亚马逊云科技,在大模型这件事儿上搞了波大的—— 亚马逊CEO Andy Jassy亲自站台re:Invent24,发布自家新款AI多模态系列大模型,名曰Amazon Nova。 而且是一口气涵盖…...
pytest生成报告no tests ran in 0.01s
除了基本的环境配置、用例名要以test_开头,有个地方是我自己忽略了,在执行时没有指定用例文件,所以没有找到。 if __name__ __main__:pytest.main(["testcases/test_demo.py","-svq", __file__, --alluredir./allure-r…...
如何修改DNS解析?
DNS(域名系统)就像互联网的“电话簿”,负责将我们输入的网址转换为计算机能够理解的IP地址。如果DNS解析出现问题,访问网站就会受到影响。那我们该如何修改DNS解析呢?接下来,我们就来介绍一下这个话题。 为什么要修改DNS解析? 使用默认的…...

PyTorch 中 `torch.cuda.amp` 相关警告的解决方法
在最近的写代码过程中,遇到了两个与 PyTorch 的混合精度训练相关的警告信息。这里随手记录一下。 警告内容 警告 1: torch.cuda.amp.autocast FutureWarning: torch.cuda.amp.autocast(args...) is deprecated. Please use torch.amp.autocast(cuda, args...) i…...

微服务组件LoadBalancer负载均衡
SpringCloud 从 2020.0.1 版本开始,移除了 Ribbon 组件,使⽤Spring Cloud LoadBalancer 组件来代 替 Ribbon 实现客户端负载均衡 loadbalancer负载均衡: 复制一份provider项目,服务名一致,端口号不一致,让consumer调…...

如何本地部署DeepSeek
第一步:安装ollama https://ollama.com/download 打开官网,选择对应版本 第二步:选择合适的模型 https://ollama.com/ 模型名称中的 1.5B、7B、8B 等数字代表模型的参数量(Parameters),其中 B 是英文 B…...

vite + axios 代理不起作用 404 无效
vite axios 代理不起作用 先看官方示例 export default defineConfig({server: {proxy: {// 字符串简写写法/foo: http://localhost:4567,// 选项写法/api: {target: http://jsonplaceholder.typicode.com,changeOrigin: true,rewrite: (path) > path.replace(/^\/api/, )…...
centos7 升级openssl并安装python3
参考文章:https://www.cnblogs.com/chuanzhang053/p/17653635.html 卸载已有版本 yum remove -y openssl openssl-devel下载1.1版本 wget https://www.openssl.org/source/openssl-1.1.1v.tar.gztar -zxf openssl-1.1.1v.tar.gz 查看openssl.conf文件的目录 fin…...

使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8
文章目录 1. 安装 SDKMAN!2. 查找可用的 Java 8 版本3. 安装 Java 84. 验证安装5. 切换 Java 版本(可选)6. 解决 ARM 架构兼容性问题总结 可以使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8。SDKMAN! 是一个强大…...
【干活分享】2025年可以免费问答的一些GPT网站-deepseek等免费gpt
2025年已经到来,大家也都陆续回归到忙碌的工作中。在新的一年里,如何更高效地完成工作任务,提升工作效率,是很多人关心的问题。今天,就为大家分享一些实用性很强的GPT网站,帮助大家在工作中事半功倍。 Dee…...

20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题
20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题 2025/2/11 17:45 缘起:荣品的RK3566核心板在Android13下,出现charge_extrem_low_power之后就直接挂住了。 由于我司使用了CW2217这个电量计,没有使用核心板自…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
书籍“之“字形打印矩阵(8)0609
题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...