docs(note): 添加笔记目录及 gitignore 规则
- 新增 note 目录包含 AI、SQL、Golang、网络等多领域学习笔记 - 更新 .gitignore 添加 note/assets/ 和 note/项目/ 忽略规则
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
## CONCAT函数
|
||||
|
||||
`CONCAT` 是 SQL 中用于**字符串拼接**的函数,它可以将两个或多个字符串合并成一个新的字符串。
|
||||
|
||||
------
|
||||
|
||||
### 基本语法
|
||||
|
||||
```sql
|
||||
CONCAT(string1, string2, ..., stringN)
|
||||
```
|
||||
|
||||
### 不同数据库的 CONCAT 行为
|
||||
|
||||
| 数据库 | 行为 |
|
||||
| :--------------------- | :----------------------------------------------- |
|
||||
| **MySQL** | 支持多参数;**任一参数为 NULL,整个结果为 NULL** |
|
||||
| **SQL Server** (2012+) | 支持多参数;**NULL 会被自动转为空字符串** `''` |
|
||||
| **Oracle** | 只支持 **2 个参数**;NULL 视为空字符串 |
|
||||
| **PostgreSQL** | 支持多参数;NULL 视为空字符串 |
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
|
||||
|
||||
## B-Tree
|
||||
|
||||
**适用场景**
|
||||
|
||||
| 场景 | 示例 |
|
||||
| :------- | :-------------------------- |
|
||||
| 等值查询 | WHERE user_id = 100 |
|
||||
| 范围查询 | WHERE age BETWEEN 20 AND 30 |
|
||||
| 排序优化 | ORDER BY created_at DESC |
|
||||
| 前缀匹配 | WHERE name LIKE '张%' |
|
||||
|
||||
**不适用场景**
|
||||
|
||||
- LIKE '%关键词%'(后缀/中间模糊匹配)
|
||||
|
||||
- 全文搜索
|
||||
|
||||
- 数组包含查询
|
||||
|
||||
|
||||
|
||||
## GIN
|
||||
|
||||
**结构特点**
|
||||
|
||||
- 倒排索引(Inverted Index) 机制:从"内容"映射到"行"
|
||||
|
||||
- 索引的是复合值内部的独立元素
|
||||
|
||||
- 索引构建较慢,但查询性能极佳
|
||||
|
||||
**适用场景**
|
||||
|
||||
> `@>`表示包含、`<@`表示被包含、`&&`表示重叠、`@@`表示全文搜索匹配、`?`表示JSONB 键存在
|
||||
|
||||
| 场景 | 示例 |
|
||||
| :----------- | :----------------------------------------------------- |
|
||||
| 全文搜索 | WHERE to_tsvector(content) @@ to_tsquery('postgresql') |
|
||||
| 数组包含 | WHERE tags @> ARRAY['java', 'sql'] |
|
||||
| JSONB 查询 | WHERE data @> '{"status": "active"}' |
|
||||
| 多值元素搜索 | WHERE arr && ARRAY[1, 2] |
|
||||
|
||||
Reference in New Issue
Block a user