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

第五章 SQLite数据库:3、SQLite 常用语法及使用案例

SQLite Insert 语句

SQLite 的 INSERT INTO 语句用于向表中添加新数据行

语法

INSERT INTO 有两种常见语法形式:

  1. 使用列名指定要插入的列:
-- 插入数据并指定列名
INSERT INTO TABLE_NAME (column1, column2, ..., columnN)  
VALUES (value1, value2, ..., valueN);
  1. 不指定列名,按顺序插入数据(确保值与表列的顺序一致):
-- 不指定列名,直接插入数据
INSERT INTO TABLE_NAME 
VALUES (value1, value2, ..., valueN);

实例

假设我们在数据库 Library.db 中有一个 BOOKS 表:

-- 创建 BOOKS 表
CREATE TABLE BOOKS(ID INTEGER PRIMARY KEY NOT NULL,  -- 主键列,不能为空TITLE TEXT NOT NULL,  -- 书名列,不能为空AUTHOR TEXT NOT NULL,  -- 作者列,不能为空PUBLISH_YEAR INTEGER,  -- 出版年份列PRICE REAL  -- 价格列
);

向表中插入数据:

-- 向 BOOKS 表插入数据
INSERT INTO BOOKS (ID, TITLE, AUTHOR, PUBLISH_YEAR, PRICE)
VALUES (1, 'The Great Gatsby', 'F. Scott Fitzgerald', 1925, 10.99);

通过如下查询查看数据:

-- 查询 BOOKS 表中的所有数据
SELECT * FROM BOOKS;

使用一个表填充另一个表

使用 SELECT 语句从一个表填充数据到另一个表:

-- 从第二个表中选择数据并插入到第一个表
INSERT INTO first_table [(column1, column2, ...)]
SELECT column1, column2, ...
FROM second_table
WHERE condition;

SQLite Select 语句

SQLite 的 SELECT 语句用于从数据库表中获取数据

语法

基本的 SELECT 语法:

-- 查询指定列的数据
SELECT column1, column2, ... FROM table_name;

若要查询所有列:

-- 查询所有列的数据
SELECT * FROM table_name;

实例

假设 MOVIES 表包含如下数据:

-- 创建 MOVIES 表
CREATE TABLE MOVIES(ID INTEGER PRIMARY KEY,  -- 主键TITLE TEXT NOT NULL,  -- 电影名称,不能为空DIRECTOR TEXT NOT NULL,  -- 导演,不能为空YEAR INTEGER,  -- 发布年份GENRE TEXT  -- 电影类型
);

查询所有数据:

-- 查询 MOVIES 表中的所有数据
SELECT * FROM MOVIES;

查询特定列:

-- 查询 MOVIES 表中的特定列
SELECT TITLE, YEAR, GENRE FROM MOVIES;

设置输出格式

调整输出格式,以便更清晰查看结果:

-- 打开表头显示,查询结果第一行会显示字段名(列名)
.headers on
-- 设置输出模式为“列”模式,这样结果会按列整齐对齐显示
.mode column
-- 查询 MOVIES 表中的所有数据
SELECT * FROM MOVIES;

SQLite Update 语句

SQLite 的 UPDATE 语句用于修改表中已存在的记录

语法

更新指定列的值:

-- 更新表中记录的某些列值
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

实例

假设 STUDENTS 表有如下数据:

-- 创建 STUDENTS 表
CREATE TABLE STUDENTS(ID INTEGER PRIMARY KEY,  -- 学生 ID,主键NAME TEXT NOT NULL,  -- 学生姓名,不能为空AGE INTEGER,  -- 学生年龄MAJOR TEXT  -- 学生专业
);

更新 ID = 2 的记录:

-- 更新 ID 为 2 的学生记录
UPDATE STUDENTS SET AGE = 23, MAJOR = 'Data Science' WHERE ID = 2;

SQLite Delete 语句

SQLite 的 DELETE 语句用于删除表中的记录

语法

删除指定条件的记录:

-- 删除符合条件的记录
DELETE FROM table_name
WHERE condition;

实例

删除 ID = 3 的记录:

-- 删除 ID 为 3 的记录
DELETE FROM STUDENTS WHERE ID = 3;

SQLite Where 子句

WHERE 子句用于指定查询数据的条件

语法

-- 查询符合条件的数据
SELECT column1, column2, ... FROM table_name WHERE condition;

实例

选择 AGE > 20 的学生记录:

-- 查询年龄大于 20 的学生记录
SELECT * FROM STUDENTS WHERE AGE > 20;

SQLite Limit 子句

LIMIT 子句用于限制查询结果的行数

语法

-- 限制查询结果的返回行数
SELECT column1, column2, ... FROM table_name LIMIT number_of_rows;

下面是 LIMIT 子句与 OFFSET 子句一起使用时的语法

-- 限制查询返回的行数,并指定起始位置
SELECT column1, column2, ... FROM table_name LIMIT number_of_rows OFFSET row_num;

实例

查询前 2 条记录:

-- 查询 MOVIES 表中的前 2 条记录
SELECT * FROM MOVIES LIMIT 2;

查询从第 2 条开始的 3 条记录:

-- 查询 MOVIES 表中从第 2 条开始的 3 条记录
SELECT * FROM MOVIES LIMIT 3 OFFSET 2;

SQLite Order By 子句

ORDER BY 子句用于按指定列的升序(ASC)或降序(DESC)对结果进行排序

语法

-- 按指定列的顺序排序查询结果
SELECT column-list 
FROM table_name 
[WHERE condition] 
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
  • ASC 默认值,从小到大,升序排列
  • DESC 从大到小,降序排列

实例

GENRE 升序排序:

-- 查询 MOVIES 表并按 GENRE 升序排列
SELECT * FROM MOVIES ORDER BY GENRE ASC;

SQLite Group By 子句

GROUP BY 子句用于将数据分组,并按组进行聚合操作

语法

-- 根据指定列分组数据,并可结合聚合函数
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN

实例

GENRE 分组并计算每个类别的电影数量:

-- 查询 MOVIES 表,按 GENRE 分组并计算每个 GENRE 的电影数量
SELECT GENRE, COUNT(*) FROM MOVIES GROUP BY GENRE;

SQLite Having 子句

HAVING 子句用于过滤由 GROUP BY 子句返回的分组结果

语法

-- 过滤由 GROUP BY 子句分组后的结果
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2

实例

选择每个 GENRE 中电影数量大于 1 的记录:

-- 查询 MOVIES 表中,GENRE 下的电影数量大于 1 的记录
SELECT GENRE, COUNT(*) FROM MOVIES GROUP BY GENRE HAVING COUNT(*) > 1;

SQLite Distinct 关键字

DISTINCT 关键字用于去除查询结果中的重复记录

语法

-- 查询唯一的记录
SELECT DISTINCT column1, column2, ..... FROM table_name WHERE [condition]

实例

查询不同的 GENRE

-- 查询 MOVIES 表中不同的 GENRE
SELECT DISTINCT GENRE FROM MOVIES;

综合使用案例

以下是一个综合的使用案例,展示了如何使用 SQLite 执行常见操作:

-- 创建 MOVIES 表
CREATE TABLE MOVIES(ID INTEGER PRIMARY KEY,  -- 主键TITLE TEXT NOT NULL,  -- 电影名称,不能为空DIRECTOR TEXT NOT NULL,  -- 导演,不能为空YEAR INTEGER,  -- 发布年份GENRE TEXT  -- 电影类型
);-- 插入数据
INSERT INTO MOVIES (ID, TITLE, DIRECTOR, YEAR, GENRE)
VALUES
(1, 'Inception', 'Christopher Nolan', 2010, 'Sci-Fi'),
(2, 'The Dark Knight', 'Christopher Nolan', 2008, 'Action'),
(3, 'Parasite', 'Bong Joon-ho', 2019, 'Drama');-- 查询所有记录
SELECT * FROM MOVIES;-- 更新数据
UPDATE MOVIES SET GENRE = 'Action' WHERE ID = 1;-- 删除记录
DELETE FROM MOVIES WHERE ID = 3;-- 使用 GROUP BY 和 HAVING 过滤数据
SELECT GENRE, COUNT(*) FROM MOVIES GROUP BY GENRE HAVING COUNT(*) > 1;-- 使用 LIMIT 和 OFFSET 分页查询
SELECT * FROM MOVIES LIMIT 2 OFFSET 1;-- 排序数据
SELECT * FROM MOVIES ORDER BY YEAR DESC;

相关文章:

第五章 SQLite数据库:3、SQLite 常用语法及使用案例

SQLite Insert 语句 SQLite 的 INSERT INTO 语句用于向表中添加新数据行。 语法 INSERT INTO 有两种常见语法形式: 使用列名指定要插入的列: -- 插入数据并指定列名 INSERT INTO TABLE_NAME (column1, column2, ..., columnN) VALUES (value1, va…...

【安卓开发】【Android Studio】Menu(菜单栏)的使用及常见问题

一、菜单栏选项 在项目中添加顶部菜单栏的方法&#xff1a; 在res目录下新建menu文件夹&#xff0c;在该文件夹下新建用于菜单栏的xml文件&#xff1a; 举例说明菜单栏的写法&#xff0c;只添加一个选项元素&#xff1a; <?xml version"1.0" encoding"ut…...

web-ssrfme

SSRF漏洞 SSRF是Server-Side Request Forgery&#xff08;服务器端请求伪造&#xff09;的缩写&#xff0c;是一种网络攻击技术。攻击者发送恶意请求给目标服务器&#xff0c;让服务器去访问攻击者指定的其他服务器或者域名&#xff0c;从而获取敏感信息或者攻击其他系统。 S…...

Linux:进程:进程状态

进程是一个负责分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实体。 进程内核数据结构&#xff08;用于描述和组织进程&#xff09;代码数据&#xff08;实际内容&#xff09; 描述进程-PCB 进程信息被放在⼀个叫做进程控制块的数据结构中&#xff0c;简称…...

NoSQL 与 NewSQL 全面对比:如何选择适合你的数据库方案?

1. 引言 随着互联网业务的爆发式增长&#xff0c;传统关系型数据库&#xff08;RDBMS&#xff09;面临着越来越大的挑战。海量数据存储、高并发访问、低延迟响应等需求促使技术团队寻找更适合的解决方案。在这一背景下&#xff0c;NoSQL 和 NewSQL 作为两种不同方向的技术路线…...

在 MoonBit 中引入 Elm 架构:用简单原则打造健壮的 Web 应用

Elm 是一种纯函数式编程语言&#xff0c;专为构建前端 Web 应用程序而设计。它编译为 JavaScript&#xff0c;强调简洁性、性能和健壮性。 纯函数式的含义是函数没有副作用&#xff0c;这使得代码更易于理解和调试。通过强大的静态类型检查&#xff0c;Elm 确保应用程序不会抛…...

虚幻基础:ue引擎的碰撞

文章目录 碰撞&#xff1a;碰撞体间 运动后 产生碰撞的行为——由引擎负责&#xff0c;并向各自发送事件忽略重叠阻挡 碰撞体类型模式纯查询&#xff1a;不清楚具体作用可以阻挡 actor碰撞(武器&#xff1a;刀/子弹)子组件可以产生阻挡 角色的碰撞只有根组件可以阻挡&#xff0…...

「电商玩法」AI自动创作系统源码:商品图+视频+营销文案一键生成

—零代码搭建智能内容工厂&#xff0c;1人日更1000条爆款素材 电商行业核心痛点 1. 内容产能不足 中小商家无力承担专业摄影/剪辑&#xff0c;商品图质量差→转化率<1%热点借势慢&#xff1a;竞品已开始推“淄博烧烤同款”&#xff0c;你的素材还在拍摄中 2. 成本居高不下…...

图形变换算法

一、学习目的 &#xff08;1&#xff09;掌握多面体的存储方法。 &#xff08;2&#xff09;掌握图形的几何变换及投影变换。 &#xff08;3&#xff09;掌握三维形体不同投影方法的投影图的生成原理。 &#xff08;4&#xff09;掌握多面体投影图绘制的编程方法。 二、学…...

no such window: target window already closed的解决方法

我在使用selenium 切换窗口的时候&#xff0c;由于不小心关闭了一个窗口&#xff0c;运行的时候就遇到这样的警告&#xff1a; no such window: target window already closed 具体的问题展示&#xff1a; 这个问题表示&#xff1a;当前的页面被关闭了&#xff0c;selenium 找…...

vue常见错误

1、 Cant resolve vant/lib/index.less 1. 未正确安装 Vant 首先&#xff0c;确保你已经正确安装了 Vant。可以通过以下命令来安装&#xff1a; npm install vant --save 或者使用 yarn&#xff1a; yarn add vant 2. LESS 加载器未配置 如果你在项目中使用了 Vant 的 L…...

chrome中的copy xpath 与copy full xpath的区别

学过测试或者爬虫的&#xff0c;都感觉获取网页元素&#xff0c;使用xpath最方便 但其中有一些细节可能会使你摸不清头脑 比如有时候copy xpath会定位不准确&#xff0c;而使用copy full xpath就可以定位 1、copy xpath&#xff08;相对路径定位&#xff09; 优点&#xff…...

【Docker】运行错误提示 unknown shorthand flag: ‘d‘ in -d ----详细解决方法

使用docker拉取Dify的时候遇到错误 错误提示 unknown shorthand flag: d in -dUsage: docker [OPTIONS] COMMAND [ARG...]错误原因解析 出现 unknown shorthand flag: d in -d 的根本原因是 Docker 命令格式与当前版本不兼容&#xff0c;具体分为以下两种情况&#xff1a; 新…...

VS Code 安装及常用插件

一、VS Code下载与安装 1、概述 Visual Studio Code简称VS Code&#xff0c;是一款功能强大的代码编辑器&#xff0c;与IDE&#xff08;集成开发环境&#xff09;不同&#xff0c;VS Code需要安装平台相应的编译器和语言的扩展。 IDE&#xff1a;是用于提供程序开发环境的应…...

iptables防火墙

目录 一 Linux防火墙基础 1 iptables的表&#xff0c;链结构 &#xff08;1&#xff09;规则表 filter 表 nat 表 mangle 表 raw 表 &#xff08;2&#xff09;规则链 2 数据包过滤的匹配流程 &#xff08;1&#xff09;规则表之间的顺序 &#xff08;2&#xff09;…...

【JavaWeb】详细讲解 HTTP 协议

文章目录 一、HTTP简介1.1 概念1.2 特点 二、协议2.1 HTTP-请求协议&#xff08;1&#xff09;GET方式&#xff08;2&#xff09;POST方式&#xff08;3&#xff09;GET和POST的区别&#xff1a; 2.2 HTTP-响应协议&#xff08;1&#xff09;格式&#xff08;2&#xff09;响应…...

非阻塞I/O操作

非阻塞I/O操作是一种I/O操作模式&#xff0c;在这种模式下&#xff0c;应用程序在发出I/O请求后不会立即等待操作完成&#xff0c;而是继续执行其他任务。当I/O操作完成或可以进行时&#xff0c;系统会通知应用程序。这种操作模式可以提高程序的效率和响应能力&#xff0c;因为…...

Redis面试问题详解2

Redis面试问题详解2 一、分布式锁 分布式锁主要用于解决多服务器之间的并发问题。Redis通过SETNX命令实现分布式锁&#xff0c;确保同一时间只有一个线程可以获取锁。 1. 基本实现 获取锁 使用SETNX命令设置锁&#xff0c;并设置一个过期时间&#xff0c;避免死锁。 Stri…...

【软件测试】性能测试概念篇

​​1. 性能测试的定义​​ 性能测试是通过模拟真实用户行为、系统负载或极端条件&#xff0c;评估软件系统在特定场景下的​​响应能力、稳定性、资源消耗及扩展性​​的过程。其核心目标是&#xff1a; ​​验证系统容量​​&#xff1a;确保系统在预期负载下&#xff08;如…...

在Pycharm配置stable diffusion环境(使用conda虚拟环境)

自己配环境的时候也没个指南&#xff0c;少安装包或者包之间版本冲突是再按正常不过的事了&#xff0c;真的令人不胜其烦。 下面记录一下自己在conda虚拟环境配置stable diffusion的代码环境&#xff0c;希望能帮大家少踩几个坑。 虚拟环境配置 默认你已经安装了annaconda&am…...

Uniapp微信小程序:轻松获取用户头像和昵称

参考文献&#xff1a;Uniapp微信小程序&#xff1a;轻松获取用户头像和昵称-百度开发者中心 (baidu.com) uni.login({ provider: weixin, success: function (loginRes) { console.log(loginRes.authResult); // 打印登录凭证 // 使用登录凭证获取用户信息 uni.getUserInfo({ …...

Qt核心知识总结

Qt核心知识总结 Qt 是一个功能强大、跨平台的 C 应用程序开发框架&#xff0c;广泛应用于图形用户界面&#xff08;GUI&#xff09;应用程序的开发&#xff0c;同时也支持非 GUI 应用程序的开发。本文将从入门到精通的角度&#xff0c;详细解析 Qt 的核心知识点&#xff0c;帮…...

Doris的向量化执行如何支撑分布式架构和复杂查询

Doris 的向量化执行能力与其 分布式架构 和 复杂查询优化 深度结合&#xff0c;通过 批处理 列式计算 分布式调度 的协同设计&#xff0c;解决传统分布式数据库在复杂查询场景下的性能瓶颈。以下是具体原理展开&#xff1a; 一、向量化如何适配分布式架构&#xff1f; Doris…...

无源蓝牙技术与传统RFID(射频识别)对比

百事可乐的无源蓝牙技术与传统RFID&#xff08;射频识别&#xff09;虽然都属无线通信技术&#xff0c;但在工作原理、应用场景和技术性能上存在显著差异。以下是深度对比分析&#xff1a; ​一、核心技术差异​ ​维度​​无源蓝牙&#xff08;如百事方案&#xff09;​​​R…...

Operator 开发入门系列(一):Hello World

背景 我们公司最近计划将产品迁移到 Kubernetes 环境。 为了更好地管理和自动化我们的应用程序&#xff0c;我们决定使用 Kubernetes Operator。 本系列博客将记录我们学习和开发 Operator 的过程&#xff0c;希望能帮助更多的人入门 Operator 开发。 目标读者 对 Kubernete…...

Immich图库本地部署与远程管理:打造你的专属照片云服务

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 小伙伴们&#xff0c;你们好呀&#xff01;今天要给大家带来一个超炫的技能——让你家的电脑秒变私人云相册&#xff0c;并且…...

OpenShift AI + DeepSeek+IBM CP4BA:实现AI业务自动化中台

一、OpenShift AI DeepSeek 1、什么是 OpenShift AI&#xff1f; OpenShift AI&#xff08;前身为 Red Hat Open Data Hub&#xff09;是 Red Hat OpenShift 平台上的一套 AI/ML 工具集&#xff0c;基于 Kubernetes&#xff0c;为企业提供可扩展的机器学习平台&#xff0c;可…...

游戏引擎学习第229天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾上次内容并介绍今天的主题 上次留下的是一个非常简单的任务&#xff0c;至少第一步是非常简单的。我们需要在渲染器中加入排序功能&#xff0c;这样我们的精灵&#xff08;sprites&#xff09;才能以正确的顺序显示。为此我…...

genhtml 工具使用说明

genhtml 工具使用说明 简介 genhtml 是一个用于生成 HTML 格式代码覆盖率报告的工具&#xff0c;基于 lcov 生成的覆盖数据文件&#xff08;如 lcov.info&#xff09;生成交互式 HTML 报告。它支持多种自定义选项&#xff0c;可控制报告内容、样式、输出格式等。 基本用法 ge…...

C++11_2

文章目录 前言一、新的类功能——新的默认成员函数1. 编译器默认生成的移动构造与移动赋值2. 手动提供移动构造或移动赋值的影响 二、可变参数模板1. 多参数1. 可变参数模板的基础 2. 可变参数模板的展开&#xff08;1&#xff09;递归展开参数包&#xff08;2&#xff09;使用…...

HTML语义化与无障碍设计

HTML 语义化与无障碍设计&#xff1a;构建包容且高效的网页体验 引言 在我的前端开发学习旅程中&#xff0c;起初将 HTML 仅视为页面布局的工具&#xff0c;大量使用无语义的 <div> 和 <span>。直到在一篇技术博客当中了解到&#xff0c;作者在一次团队项目中&am…...

Ubuntu多用户VNC远程桌面环境搭建:从零开始的完整指南

引言: 在当今远程工作盛行的时代,搭建一个安全、高效的多用户远程桌面环境变得越来越重要。本文将为您提供一个从零开始的完整指南,教您如何在Ubuntu系统上搭建多用户VNC远程桌面环境。无论您是系统管理员、开发团队负责人,还是想要为家庭成员提供远程访问的技术爱好者,这…...

Electron 中引入MessageChannel 大大缩短不同渲染进程和 Webview 各组件 1o1的通信链路

背景 在 electron 开发中&#xff0c;也不可避免地遇到端到端的通信问题&#xff0c;Electron 已经内置一些通信 API&#xff0c;但是实际用下来会发现&#xff0c;在引入 Webview 之后&#xff0c;通信链路会很长&#xff0c;参考 利用本地 Express Web 服务解决复杂的 Elec…...

Vscode开发Vue项目NodeJs启动报错处理

文章目录 背景一、npm启动报错报错信息定位原因处理方案第一步、下载安装高版本 二、node 无法识别报错信息处理方案定位原因第一步、检测环境变量第二步、重新开启界面 背景 使用Vscode开发Vue项目&#xff0c;使用到NodeJs&#xff0c;记录出现的问题及处理方案&#xff0c;…...

AI agents系列之AI工作流和AI智能体对比

在人工智能(AI)快速发展的今天,理解AI工作流和AI智能体之间的区别对于有效利用这些技术至关重要。本文将深入探讨AI工作流的类型,解析AI智能体的概念,并重点比较二者的关键差异。 1. 智能体 vs 工作流 关于“智能体”的定义众说纷纭。有些客户将其视为完全自主的系统,能…...

如何恢复极狐GitLab?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 恢复极狐GitLab (BASIC SELF) 极狐GitLab 提供了一个命令行界面来恢复整个安装&#xff0c;足够灵活以满足您的需求。 恢复…...

基于X86/Nvidia+FPGA大模型具身智能机器人控制器解决方案,同时拥有算力与实时的便利

2025年成为人形机器人产业化元年&#xff0c;行业已突破早期实验室研发阶段&#xff0c;进入"场景验证量产爬坡"新周期&#xff0c;预计2031年具身智能市场规模有望突破万亿元。这一进程的背后&#xff0c;是硬件算力、实时控制、环境适应等底层技术的系统性突破——…...

MATLAB项目实战(一)

题目&#xff1a; 某公司有6个建筑工地要开工&#xff0c;每个工地的位置&#xff08;用平面坐标系a&#xff0c;b表示&#xff0c;距离单位&#xff1a;km&#xff09;及水泥日用量d(t)由下表给出&#xff0e;目前有两个临时料场位于A(5,1)&#xff0c;B(2,7)&#xff0c;日储…...

PyCharm Flask 使用 Tailwind CSS 配置

使用 Tailwind CSS 步骤 1&#xff1a;初始化项目 在 PyCharm 终端运行&#xff1a;npm init -y安装 Tailwind CSS&#xff1a;npm install -D tailwindcss postcss autoprefixer初始化 Tailwind 配置文件&#xff1a;npx tailwindcss init这会生成 tailwind.config.js。 步…...

Mybtis和Mybatis-Plus区别

MyBatis 和 MyBatis-Plus 是 Java 中常用的持久层框架&#xff0c;MyBatis-Plus 是在 MyBatis 基础上增强的工具包&#xff0c;让开发更便捷、高效。下面是两者主要的区别&#xff1a; ✅ 核心区别总结&#xff1a; 特性MyBatisMyBatis-Plus配置复杂度需要手写大量 XML 或注解…...

《Learning Langchain》阅读笔记2-基于 Gemini 的 Langchain PromptTemplate 实现方式

本文将使用Gemini实现《Learning Langchain》中的PromptTemplate 实现方式&#xff0c;替代书中的调用openai API&#xff0c;白嫖太香了&#xff01; 调试步骤 我们首先还是先在本地调试是否可以调用Gemini API&#xff1a; import getpass import osif "GOOGLE_API_K…...

LVS+keepalived搭建高可用架构

背景&#xff1a;最近在搭建LVSkeepalived的高可用架构&#xff0c;中间遇到了一些坑比较让人头疼&#xff0c;此处重要就安装部署的步骤进行记录&#xff0c;特别是遇到坑进行说明&#xff0c;希望能对有需要的同学提供给帮助&#xff01; 坑点1: 在部署LVSkeepalived并且使用…...

【天梯赛练习】L2-035 完全二叉树的层序遍历

后序遍历转层序遍历 后序遍历&#xff1a;左——右——根层序遍历&#xff1a;数组形式存储的完全二叉树的顺序遍历序列其实就正好是其层序遍历序列。 子树根若是 i d id id&#xff0c;左子树 i d ∗ 2 id*2 id∗2&#xff0c;右子树 2 ∗ i d 1 2*id1 2∗id1 所以就是dfs递…...

2025.4.20机器学习笔记:文献阅读

2025.4.20周报 题目信息摘要创新点网络架构实验生成性能对比预测性能对比 结论不足以及展望 题目信息 题目&#xff1a; A novel flood forecasting model based on TimeGAN for data-sparse basins期刊&#xff1a; Stochastic Environmental Research and Risk Assessment作…...

Leetcode 3359. 查找最大元素不超过 K 的有序子矩阵【Plus题】

1.题目基本信息 1.1.题目描述 给定一个大小为 m x n 的二维矩阵 grid。同时给定一个 非负整数 k。 返回满足下列条件的 grid 的子矩阵数量&#xff1a; 子矩阵中最大的元素 小于等于 k。 子矩阵的每一行都以 非递增 顺序排序。 矩阵的子矩阵 (x1, y1, x2, y2) 是通过选择…...

Redis面试——事务

一、Redis原子性是什么&#xff1f; &#xff08;1&#xff09;单个命令的原子性 原子性是指一组操作&#xff0c;要么全部执行成功&#xff0c;要么全部失败。Redis 中的单个命令是天然原子性的&#xff0c;因为 Redis 的命令执行采用单线程模型&#xff0c;同一时间只会执行…...

【远程管理绿联NAS】家庭云存储无公网IP解决方案:绿联NAS安装内网穿透

文章目录 前言1. 开启ssh服务2. ssh连接3. 安装cpolar内网穿透4. 配置绿联NAS公网地址 前言 大家好&#xff0c;今天要带给大家一个超级酷炫的技能——如何让绿联NAS秒变‘千里眼’&#xff0c;通过简单的几步操作就能轻松实现内网穿透。想象一下&#xff0c;无论你身处何地&a…...

AI写程序:用 AI 实现一个递归批量转化 GBK/GB2312 转 UTF-8 工具:轻松解决文本编码转换难题

用 AI 实现一个递归批量转化 GBK/GB2312 转 UTF-8 工具 在处理历史文件或与不同系统交互时&#xff0c;我们经常会遇到 GBK 或 GB2312 编码的文本文件。虽然现在 UTF-8 是主流&#xff0c;但手动转换这些旧编码文件既繁琐又容易出错。为了解决这个问题&#xff0c;我开发了一个…...

首席人工智能官(Chief Artificial Intelligence Officer,CAIO)的详细解析

以下是**首席人工智能官&#xff08;Chief Artificial Intelligence Officer&#xff0c;CAIO&#xff09;**的详细解析&#xff1a; 1. 职责与核心职能 制定AI战略 制定公司AI技术的长期战略&#xff0c;明确AI在业务中的应用场景和优先级&#xff0c;推动AI与核心业务的深度…...

uview1.0 tabs组件放到u-popup中在微信小程序中滑块样式错乱

解决思路 重新计算布局信息&#xff1a;在弹窗显示后重新调用 init 方法来计算组件的布局信息。使用 nextTick&#xff1a;保证在视图更新之后再进行布局信息的计算。 <u-tabs ref"tabsRef" ></u-tabs> makeClick(){this.makeShowtruethis.$nextTick…...