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

oracle 基础语法复习记录

Oracle SQL基础

因工作需要sql能力,需要重新把sql这块知识重新盘活,特此记录学习过程。

希望有新的发现。加油!20250205

 学习范围

  • 学习SQL基础语法

    • 掌握SELECTINSERTUPDATEDELETE等基本操作。

    • 熟悉WHEREGROUP BYORDER BYHAVING等子句。

  • 理解表连接

    • 学习INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOIN等连接方式。

  • 掌握聚合函数

    • 熟悉SUMCOUNTAVGMINMAX等函数的使用

进阶学习

  • 子查询

    • 学习如何在SELECTFROMWHERE中使用子查询。

    • 理解相关子查询和非相关子查询的区别。

  • 窗口函数

    • 学习ROW_NUMBER()RANK()DENSE_RANK()LEAD()LAG()等窗口函数。

    • 掌握OVER子句的使用,尤其是PARTITION BYORDER BY

  • 递归查询

    • 学习使用WITH递归查询(CTE,Common Table Expressions)处理层次结构数据。

  • 集合操作

    • 掌握UNIONUNION ALLINTERSECTMINUS等集合操作。

SQL基础语法

学习记录:

 select

查询客户表所有列

select * from tcustinfo ;

查询客户表指定列

select t.vc_custno,t.vc_customname,t.vc_identityno from tcustinfo t;

查询有效状态得客户指定列名

select t.vc_custno,t.vc_customname,t.vc_identityno from tcustinfo t where t.c_state='0';
查询有效客户数量

select count(1) from tcustinfo t where t.c_state='0';
查询有效客户证件类型

select distinct(t. c_identitytype) from tcustinfo t where t.c_state='0';

查询2024年1月1日起,有效客户数量

select count(1) from tcustinfo t where t.vc_opendate > 20240101 and  t.c_state='0';
 

拓展:where 过滤条件,不仅仅用于select查询,update,delete中同样适用。

以下运算符可用于WHERE条款,>, <, =, >=,>=,<>,BETWEEN,like, in等

ORDER BY关键字用于按升序asc或 降序 desc。

按开户时间进行降序排序 desc 
select vc_opendate from tcustinfo t order by t.vc_opendate   DESC  

WHERE子句可以包含一个或多个 AND运算符。AND运算符用于根据多个记录筛选记录 条件 ,

筛选出2024年开户,开户类型为机构得客户


select * from tcustinfo t where t.vc_opendate between 20240101 and  20241231 and  t.c_state='0' and t.vc_customname like '%机构%';

筛选出2024年开户,开户类型为:机构或者产品得客户

select * from tcustinfo t where t.vc_opendate between 20240101 and  20241231 and  t.c_state='0' and ( t.vc_customname like '%机构%' or  t.vc_customname like '%产品%');


not  不在,统计相反得运算符,可以和其他运算符搭配,比如  not in,not like,NOT BETWEEN 10 AND 60; not CustomerID50 也可以用  !> 来表示 (not <   也可以用!<)

select * from tcustinfo t where   not t.c_identitytype ='0';

select * from tcustinfo t where   t.c_identitytype !='0';
 

select * from tcustinfo t where t.vc_opendate > 20240101 and  t.c_state='0' and  t.vc_customname  not like '%机构%'
 

insert

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

也可以同时插入多条语句

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES
('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'),
('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'),
('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK');

null not null

当无法使用比较运算符 例如 = 、 <或 <>,可以用 IS NULL IS NOT NULL来替代

查询vc_instreprname 为null得数据

select * from tcustinfo t where  t.vc_instreprname is null;

查询vc_instreprname 不为null得数据

select * from tcustinfo t where  t.vc_instreprname is not null;

update

 UPDATE语句用于修改表中的现有记录(注意!!要加where条件,否则会变更所有记录

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;

delete

DELETE语句用于删除表中的现有记录。(注意!!要加where条件,否则会删除所有记录

DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';

聚合函数

AVG()函数返回数值列的平均值

查询所有产品平均价格

SELECT AVG(Price) FROM Products; 

SUM()函数返回数值列的总和

搭配GROUP BY 经常用于统计某个分组得总和

统计不同投资人 个人0 机构1 产品2,得开户数量

select sum(1),t.c_custtype from tcustinfo t group by t.c_custtype

统计 不同投资人类型得 确认份额 并且按照 客户类型 倒叙


select sum(t.en_confirmshare),t.c_custtype from tconfirm t group by t.c_custtype order by  t.c_custtype desc 

COUNT()函数返回 与指定条件匹配的行

查询一共发行多少产品 
select count(1)  from tfundinfo t 

并按不同类型得产品分组统计,每个类型得产品多少数量

select count(1),c_type  from tfundinfo t  group by t.c_type
 

LIKE运算符

LIKE运算符用于 WHERE子句在列中搜索指定的模式,常用于模糊查询

有两个通配符经常与 LIKE操作员:

  •  百分号%表示零个、一个或多个字符
  •  下划线符号_表示一个单个字符

比如查出姓名带有“王”得投资人

select * from tcustinfo t where  t.vc_customname like '%王%';

再比如 ,查出名字中带有王X杰得投资人,中间字可以用下划线 —— 来表示。

select * from tcustinfo t where  t.vc_customname like '%王_杰%';
 

也可以搭配 and or 运算符查询,比如查出王或者姓毛得投资人

select * from tcustinfo t where  t.vc_customname like '%王%' or   t.vc_customname like '%毛%';
 

或者查询第二个字为妃得投资人


select * from tcustinfo t where  t.vc_customname like '_妃%'

用%_ ,可与其他组合使用 通配符 查询我们想获得得数据

比如查询前面只有一个字,后面是明杰得投资人,比如X明杰

select * from tcustinfo t where  t.vc_customname like '_明杰'

再比如查询,香XX蛋 中间两个字符,hh 这是奇怪得搭配香菜煎蛋,笑不活了,谁造得啊


select * from tcustinfo t where  t.vc_customname like '香__蛋' 

IN运算符

IN运算符是多个 OR条件

select * from tcustinfo t where t.vc_custno in ('2638','2648','2678')
 

查询所有未下单得客户 

SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);

BETWEEN运算符

选择给定范围内的值。值可以是数字、文本或日期。

选择价格在10到20之间的所有产品:

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

SQL别名

SQL别名用于为表或表中的列提供临时名称。

别名通常用于使列名更可读,易懂。

别名仅在该查询的持续时间内存在。

使用创建别名AS关键字

select t.vc_acconame as 客户姓名,t.vc_tradeacco  客户交易账户  from taccoinfo  t

将 "双引号" 用于带空格字符的别名: 有些客户需求 别名里面含有空格


select t.vc_acconame as "A基金公司 客户姓名 " ,t.vc_tradeacco  客户交易账户  from taccoinfo  t

这里如果是给表 table 取别名, 同样的规则也适用。用于多表关联查询。

select * from tfundacco

JION联接

JOIN子句用于组合来自两个或多个表的行,如下是不同类型得join链接

  • (INNER) JOIN: 返回两个表中具有匹配值的记录
  • LEFT (OUTER) JOIN: 返回左表的所有记录,右表的匹配记录
  • RIGHT (OUTER) JOIN: 返回右表中的所有记录,并将匹配的 左表中的记录
  • FULL (OUTER) JOIN: 当任一左有匹配项时,返回所有记录 或右表

内连接:

语法:

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;

查询20240101之后得订单信息,关联投资人表+订单表

select * from taccoinfo t join  trequest t1  on t.vc_tradeacco =t1.vc_tradeacco and t1.vc_requestdate > '20240101'

上述内连接,其实也可以这样写:

select * from taccoinfo t ,  trequest t1  where t.vc_tradeacco =t1.vc_tradeacco and t1.vc_requestdate > '20231119'

总结,内连接, 仅返回两个表中具有匹配项的数据

左连接

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

LEFT JOIN关键字从返回所有记录 左表 (客户),即使右表中没有匹配项

select t.vc_tradeacco,t.vc_acconame,t.vc_custno,t1.vc_fundacco,t1.vc_requestdate from taccoinfo t left join  trequest t1  on t.vc_tradeacco =t1.vc_tradeacco and t1.vc_requestdate > '20241014'


右连接

RIGHT JOIN关键字返回右表 (table2) 中的所有记录,而 匹配左表 (table1) 中的记录。 

select t.vc_tradeacco,t.vc_acconame,t.vc_custno,t1.vc_fundacco,t1.vc_requestdate from taccoinfo t right join  trequest t1  on t.vc_tradeacco =t1.vc_tradeacco and t1.vc_requestdate > '20241014'
 

 FULL  JOIN 

关键字返回所有记录 左 (表1) 或右 (表2) 表记录,返回记录较大

select t.vc_tradeacco,t.vc_acconame,t.vc_custno,t1.vc_fundacco,t1.vc_requestdate from taccoinfo t full join  trequest t1  on t.vc_tradeacco =t1.vc_tradeacco and t1.vc_requestdate > '20241014'
 

SQL自联接

最常用的一种连接方式,

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition

 select * from taccoinfo t ,  trequest t1  where t.vc_tradeacco =t1.vc_tradeacco and t1.vc_requestdate > '20241014'

UNION

运算符用于组合两个或多个结果集 SELECT 报表

语法:

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

  • SELECT内的语句 UNION必须具有相同的列编号
  • 列还必须具有相似的数据类型
  • 中的列 每SELECT语句也必须以相同的顺序

UNION默认情况下,运算符仅选择不同的值。允许 重复的值,请使用UNION ALL

GROUP BY 分组

GROUP BY语句通常与聚合函数一起使用 (COUNT()MAX()MIN(),SUM()AVG()) ,比如统计某个国家有多少人,统计不同年龄段 基金开户数量,等等。

这里举一个生动的例子,加深理解:

从request基金申请表中统计,不同资金方式的交易数量 (比如在柜台开户的多少人,通过渠道开户的多少人)。


select count(1),a.c_capitalmode  from trequest  a  group by a.c_capitalmode;

继续~ 统计不同资金方式,不客户类型下的交易数量。 

select count(1),a.c_capitalmode ,    b.c_custtype from trequest  a  ,taccoinfo b where a.vc_tradeacco=b.vc_tradeacco  group by  a.c_capitalmode,b.c_custtype ;

HAVING 

HAVING经常出现在group by 分组语法后面 替代where的功能( WHERE关键字不能为 与聚合函数一起使用。)

继续~ 统计不同资金方式,不客户类型下的交易数量。 且开户数量大于50。

select count(1),a.c_capitalmode ,    b.c_custtype from trequest  a  ,taccoinfo b where a.vc_tradeacco=b.vc_tradeacco  group by  a.c_capitalmode,b.c_custtype  having count(1) >50;
 

EXISTS

EXISTS运算符用于测试子查询中是否存在任何记录

听着和in有点类似,这里简述exists和in的区别:

EXISTS 用于检查子查询是否返回任何行。如果子查询返回至少一行,EXISTS 返回 TRUE,否则返回 FALSE,

IN 用于检查某个值是否存在于子查询返回的结果集中

由于 EXISTS 只需要判断子查询是否有结果,因此在大多数情况下,EXISTS 的性能优于 IN,尤其是在子查询返回大量数据时

EXISTS 还会去除重复数据。后面案例会详细说明

只关心子查询是否有结果时,使用 EXISTS,select 1 这里只是用来显示,有结果,实际通过department_id 来关联,内外层的逻辑查询

SELECT * FROM employees e
WHERE EXISTS ( SELECT 1 FROM departments dWHERE d.department_id = e.department_idAND d.location_id = 1700
);
  • 当你需要检查某个值是否在子查询返回的结果集中时,使用 IN

  • 适用于子查询返回的结果集较小或静态列表的情况。

SELECT * FROM employees
WHERE department_id IN (
    SELECT department_id FROM departments
    WHERE location_id = 1700
);

  • EXISTS 不会受到 NULL 值的影响,因为它只关心子查询是否有结果。

  • EXISTS 更适合用于判断子查询是否有结果,尤其是在子查询返回大量数据时,性能较好。

  • IN 更适合用于检查某个值是否在子查询返回的结果集中,尤其是在结果集较小或静态列表时

比如:提供一种价格为 22 的产品的供应商的名称。

这里select ProductName  可以用 select 1表示,也可以用其他字段,仅表示 存在查询结果

SELECT SupplierName FROM Suppliers WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);

执行结果

  • 对于 供应商 A(SupplierID = 1):

    • 内层查询返回 产品 1(ProductName = 产品 1,Price = 22)。

    • 因此,供应商 A 将被包含在外层查询的结果中。

  • 对于 供应商 B(SupplierID = 2):

    • 内层查询返回 产品 3(ProductName = 产品 3,Price = 22)。

    • 因此,供应商 B 将被包含在外层查询的结果中。

  • 对于 供应商 C(SupplierID = 3):

    • 内层查询不返回任何产品,因为没有价格为 22 的产品。

    • 因此,供应商 C 不会被包含在外层查询的结果中。

当产品表中的id重复时候,普通关联查询出来的结果会重复。如果使用普通关联查询,需要搭配groupby 进行分组去重, 

  • GROUP BY子句将数据按指定列分组,聚合函数对每个分组应用操作,确保每个分组只返回一行结果。

  • 即使Products表中的SupplierID有重复值,最终结果中的SupplierName也不会重复。

SELECT SupplierName, MIN(Price) AS LowestPrice
FROM Suppliers
JOIN Products ON Suppliers.SupplierID = Products.SupplierID
WHERE Products.Price > 10
GROUP BY SupplierName;

进阶sql

从 taccoinfo 表中筛选出 vc_address 包含 || 但不包含 境外|| 的记录,然后将这些记录的 vc_tradeacco 和 vc_address 拼接成一个字符串,并统计符合条件的记录数

SELECT LISTAGG('交易账号:' || vc_tradeacco || ' 地址:' || vc_address, ', ') WITHIN GROUP (ORDER BY vc_tradeacco) AS RETURNMSG,COUNT(1) AS count_num
FROM taccoinfo t
WHERE t.vc_address LIKE '%||%'AND t.vc_address NOT LIKE '%境外||%';


 

相关文章:

oracle 基础语法复习记录

Oracle SQL基础 因工作需要sql能力&#xff0c;需要重新把sql这块知识重新盘活&#xff0c;特此记录学习过程。 希望有新的发现。加油&#xff01;20250205 学习范围 学习SQL基础语法 掌握SELECT、INSERT、UPDATE、DELETE等基本操作。 熟悉WHERE、GROUP BY、ORDER BY、HAVIN…...

php 接入扣子的 token获取

本身逻辑只是个api&#xff0c;但是官方不提供php的sdk 扎心了老铁&#xff0c;这下php 狗都不用了&#xff0c;主要麻烦的是如何获取access_token&#xff0c;代码如下 protected function get_jwt(): string{$header [alg > RS256,typ > JWT,kid > $this->kid];…...

网络工程师 (22)网络协议

前言 网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合&#xff0c;它规定了通信时信息必须采用的格式和这些格式的意义。 一、基本要素 语法&#xff1a;规定信息格式&#xff0c;包括数据及控制信息的格式、编码及信号电平等。这是协议的基础&#xff0c;确…...

【银河麒麟高级服务器操作系统】系统日志Call trace现象分析及处理全流程

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://document.kylinos.cn 服务器环境以及配置 系统环境 物理机/虚拟机/云…...

Milvus 存储设计揭秘:从数据写入到 Segment 管理的全链路解析

作为一款云原生向量数据库&#xff0c;Milvus 的高效查询性能有赖于其独特的存储架构设计。然而&#xff0c;在实际使用过程中&#xff0c;许多社区用户常常会遇到以下问题&#xff1a; 为什么频繁调用 flush 后&#xff0c;查询速度会变慢&#xff1f; 数据删除后&#xff0c;…...

Redis双写一致性(数据库与redis数据一致性)

一 什么是双写一致性&#xff1f; 当修改了数据库&#xff08;MySQL&#xff09;中的数据&#xff0c;也要同时更新缓存&#xff08;redis&#xff09;中的数据&#xff0c;缓存中的数据要和数据库中的数据保持一致 双写一致性&#xff0c;根据业务对时间上的要求&#xff0c;…...

14.PPT:中国注册税务师协会宣传【26】

目录 NO12 NO3/4/5​ NO678​ 【文本框水平/垂直居中】【文本框内容水平/垂直居中】 NO12 坑&#xff1a;注意❗Word文档的PPt素材.docx的标题大纲是混乱的&#xff0c;虽然他设置了&#xff0c;所以我们需要重新设置 设计→主题视图→幻灯片母版→删除版式插入logo NO3/4…...

搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程

参考文章&#xff1a; 安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客 一、简单介绍 本文开发环境&#xff0c;均为 windows 环境&#xff0c;mac 环境其实也类似 ~ ① 编译proto文件&#xff0c;相关插件 简单介绍&#xff1a; protoc 是编译器&#xff0c;用于将…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_write_stderr函数

定义 在ngx_log.h 中 static ngx_inline void ngx_write_stderr(char *text) {(void) ngx_write_fd(ngx_stderr, text, ngx_strlen(text)); } 在开发软件时&#xff0c;尤其是像 Nginx 这样复杂的服务器软件&#xff0c;开发者需要一种方法来输出调试信息或者错误信息。这段代码…...

使用requestAnimationFrame减少浏览器重绘

文章目录 介绍使用使用rAF前使用rAF后 介绍 在屏幕中&#xff0c;浏览器通常都以60FPS&#xff08;1/60 s&#xff09;每帧更新屏幕&#xff0c;但是当前端绑定了一些高频事件&#xff0c;如鼠标移动&#xff0c;屏幕滚动、触摸滑动等时&#xff0c;在一帧的周期内&#xff0c;…...

autMan奥特曼机器人-对接deepseek教程

一、安装插件ChatGPT 符合openai api协议的大模型均可使用此插件&#xff0c;包括chatgpt-4/chatgpt-3.5-turbo&#xff0c;可自定义服务地址和模型&#xff0c;指令&#xff1a;gpt&#xff0c;要求Python3.7以上&#xff0c;使用官方库https://github.com/openai/openai-pyt…...

一个精简完整的全栈电商平台采用现代化技术栈和安全架构

以下是一个精简但完整的全栈电商平台实现,采用现代化技术栈和安全架构: 架构设计 前端:SvelteKit + TypeScript (SSR/SSG) 后端:Go 1.21 + Fiber框架 数据库:MySQL 8.0 + Redis 7.0 安全:Cloudflare WAF + JWT+HTTPOnly+Secure Cookie 部署:Docker Swarm + Traefik (自…...

数据分析:企业数字化转型的金钥匙

引言&#xff1a;数字化浪潮下的数据金矿 在数字化浪潮席卷全球的背景下&#xff0c;有研究表明&#xff0c;只有不到30%的企业能够充分利用手中掌握的数据&#xff0c;这是否让人深思&#xff1f;数据已然成为企业最为宝贵的资产之一。然而&#xff0c;企业是否真正准备好从数…...

MySQL中datetime类型23:59:59变成下一天的00:00:00

1. 现象 公司项目中有一个统计的业务需求&#xff0c;需要记录数据的开始和结束时间点&#xff0c;对应的是MySQL表中的datetime类型。结束时间是当天的23:59:59&#xff0c;但是java程序中是对的时间&#xff0c;但是Mybatis-plus入库了之后查看数据库却变成第二天的00:00:00&…...

玩转Docker | 使用Docker部署httpd服务

玩转Docker | 使用Docker部署httpd服务 前言一、准备工作环境确认检查操作系统准备网站目录和配置文件二、拉取httpd镜像三、运行httpd容器运行容器命令检查容器状态四、验证httpd服务浏览器访问测试错误排查五、容器管理与维护查看容器状态停止和启动容器更新网站内容和配置六…...

Vue 双向数据绑定的原理

Vue 的双向数据绑定是其核心特性之一&#xff0c;它可以让视图与数据保持同步&#xff0c;简化了开发者在 DOM 操作上的工作。Vue 的双向数据绑定通过 响应式系统 和 DOM 事件监听 来实现&#xff0c;当数据发生变化时&#xff0c;视图会自动更新&#xff1b;当视图中的元素&am…...

Spring Web MVC项目的创建及使用

一、什么是Spring Web MVC&#xff1f; Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从⼀开始就包含在 Spring 框架中&#xff0c;通常被称为Spring MVC。 1.1 MVC的定义 MVC 是 Model View Controller 的缩写&#xff0c;它是软件工程中的一种软件架构…...

32.日常算法

1.最大子数组和 题目来源 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。子数组是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,…...

MySQL的底层原理与架构

前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知&#xff0c;Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的&#xff0c;下面将主要…...

python Excel 表读取合并单元格以及清除空格符

读取合并单元格并保留合并信息 读取合并单元格并保留合并信息清除各单元格的空格和换行符&#xff0c;并去除列名中的空格和换行符 读取合并单元格并保留合并信息 当我们只是使用 pandas 的 read_excel 方法读取 Excel 文件时&#xff0c;我们可能会遇到一个很棘手的问题&…...

Node.js 实现简单爬虫

介绍 爬虫是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。 本文将使用 Nodejs 编写一个简单的爬虫脚本&#xff0c;爬取一个美食网站&#xff0c;获取菜品的标题和图片链接&#xff0c;并以表格的形式输出。 准备工作 1、初始化项目 首先&#xff0…...

【Pytorch】nn.RNN、nn.LSTM 和 nn.GRU的输入和输出形状

nn.RNN、nn.LSTM 和 nn.GRU的输入和输出形状 输入形状通用输入参数特殊情况&#xff08;LSTM&#xff09; 输出形状nn.RNN 和 nn.GRUnn.LSTM 代码示例 输入形状 通用输入参数 这三个模块通常接收以下两种形式的输入&#xff1a; 输入序列&#xff1a;形状为 (seq_len, batch…...

代码随想录算法训练营第三十一天| 回溯算法04

491. 递增子序列 题目&#xff1a; 代码随想录 视频讲解&#xff1a;回溯算法精讲&#xff0c;树层去重与树枝去重 | LeetCode&#xff1a;491.递增子序列_哔哩哔哩_bilibili 这题需要注意的点&#xff1a; 1. path长度在2以上才放入最终结果 2. 需要记录已经使用过的数字&am…...

2024.1版android studio创建Java语言项目+上传gitee

1.在gitee上创建仓库 Gitee 创建仓库并邀请成员指南_gitee创建仓库邀请成员-CSDN博客 见1 2.新建android studio项目 3.在Android studio配置gitee Android Studio提交代码到gitee仓库_android log in to gitee-CSDN博客 其中的一二步 p.s.添加gitee账户选择password时&a…...

React 打印插件 -- react-to-print

一、安装依赖 npm install react-to-print 二、使用 import { useReactToPrint } from "react-to-print"; import React, { useRef, forwardRef } from react;const Content () > {const contentRef useRef(null);const reactToPrintFn useReactToPrint({ c…...

opentelemetry-collector 配置elasticsearch

一、修改otelcol-config.yaml receivers:otlp:protocols:grpc:endpoint: 0.0.0.0:4317http:endpoint: 0.0.0.0:4318 exporters:debug:verbosity: detailedotlp/jaeger: # Jaeger supports OTLP directlyendpoint: 192.168.31.161:4317tls:insecure: trueotlphttp/prometheus: …...

SQL Server 数据库迁移到 MySQL 的完整指南

文章目录 引言一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据 二、迁移工具的选择2.1 使用 MySQL Workbench2.2 使用第三方工具2.3 手动迁移 三、迁移步骤3.1 导出 SQL Server 数据库结构3.2 转换数据类型和语法3.3 导入 MySQL 数据库3.4 迁移数据3.5 迁移存…...

C# SQlite使用流程

前言 不是 MySQL 用不起&#xff0c;而是 SQLite 更有性价比&#xff0c;绝大多数的应用 SQLite 都可以满足。 SQLite 是一个用 C 语言编写的开源、轻量级、快速、独立且高可靠性的 SQL 数据库引擎&#xff0c;它提供了功能齐全的数据库解决方案。SQLite 几乎可以在所有的手机…...

MySQL数据库 (三)- 函数/约束/多表查询/事务

目录 一 函数 (一 字符串函数 (二 数值函数 (三 日期函数 (四 流程函数 二 约束 (一 概述 (二 约束演示 (三 外键约束 三 多表查询 (一 多表关系 1 一对多&#xff08;多对一&#xff09; 2 多对多 3 一对一 (二 多表查询概述 (三 内连接 1 查询语法 2 代码实…...

【玩转 Postman 接口测试与开发2_018】第14章:利用 Postman 初探 API 安全测试

《API Testing and Development with Postman》最新第二版封面 文章目录 第十四章 API 安全测试1 OWASP API 安全清单1.1 相关背景1.2 OWASP API 安全清单1.3 认证与授权1.4 破防的对象级授权&#xff08;Broken object-level authorization&#xff09;1.5 破防的属性级授权&a…...