#
<h1 style="text-align: left">
<font face="noto serif TC">
Obsidian 資料庫
</font>
</h1>
<br>
<br>
<br>
<div style="text-align: right">── 2025.06.27 @ Obsidian 工作坊</div>
---
# Summary
- 概念說明
- 筆記屬性/建置資料庫/介紹 Dataview 套件
- 機上操作
- 設定筆記屬性/設定 Dataview/建立第一個資料庫
- 問題與討論
---
### 筆記屬性
- 在 Markdown 語言中,每一份文件的==第一行==可以輸入 `---` 來形成 `YAML` 區域。
- yaml 區域要求在文件的第一行開始:輸入 `---`可以開啟yaml 區域
- 所有YAML內容結束後,再以 `---` 收尾,夾住的內容就是這份文件的屬性。
---
### 筆記屬性
```markdown=
---
title: #在 title 輸入標題,可以設定文件的標題
tags: #tags輸入標籤,可以設定文件的標籤
- 標籤一
- 標籤二
date: #在 date 輸入日期,可以設定文件的日期。預設格式為:年年年年-月月-日日;例如:2025-06-21
author: #在 author 輸入人名,可以設定文件的作者
---
```
---
#### 練習一:新增一份帶有特定屬性的文件
```markdown
---
title: "練習一:新增一份帶有特定屬性的文件"
tags:
- 練習一
- YAML
- 自學筆記
- 程式語言
date: 2025-06-21
author: TreeZi
---
```
- 開啟新的筆記,將上述的內容複製貼到新筆記上。
- 🔔 注意:請記得貼在**文件第一行**。
- 👉 顯示行號:`選單` → `編輯器` → `顯示行號` ✅
---
### 建置資料庫
- 釐清想要 ==怎麼管理資料==
- 先規劃好==資料庫的邏輯==
- 哪些筆記要具備哪些屬性?
---
#### 練習二:建置資料結構圖
1. 條列自己的工作流程(如果是寫作,條列自己的寫作流程),
2. 思考每個工作流程需要什麼樣類型的筆記。
3. 條列這些筆記需要具備哪些屬性。
4. 將上述的事項畫成「流程圖」。
---
#### 練習二:建置資料結構圖

---
### 介紹 Dataview 套件
- 安裝套件 [Dataview](obsidian://show-plugin?id=dataview)
- `table`、`list`、`task`
---
##### TABLE`表格,右圖` 和 LIST `清單,左圖`

---
### 設定筆記屬性

- 依照這張圖上的筆記類別,先來新增不同類型的筆記(請結合上週分享過的內容)
[:file_folder: 下載檔案](https://1drv.ms/f/c/1698215ca2d0889b/EtyiQRCAv5tLk9hMHODkn9kB4g9CrugdpIh_H-ELk3unZg?e=dL6KzG)
---
### 基礎使用方式:清單(list)
```markdown=
LIST
tags + "日期:" + date
FROM #自學
SORT file.mtime DESC
```
---
#### 解析與延伸
```markdown=
LIST
# 表示用清單的方式顯示資料
tags + "日期:" + date
## tags 表示在每一筆清單資料中加上「tags」
## 用 `+` 號來連結不同的屬性
## 如果要再用輸入其他文字,需要用 "這邊是文字" 來表示。
FROM #自學
## FROM 代表篩選條件,只能用 tags 篩選資料。
## 如上所示,選擇「自學」之後就只會顯示「tags」中有「自學」的資料
SORT file.mtime DESC
## SORT 是排序方法,分成:
## ASC 順序排,由小到大,由舊到新;
## DESC 倒序排,由大倒小,由新到舊。
## SORT 的指令為: `SORT <條件> ASC/DESC`
## 條件需要是「文件的屬性」
## `file.mtime` 代表:文件最後修改時間。
## 幾個常用的指令如下:
## file.title 文件標題(筆劃)
## file.ctime 文件創立時間
```
---
### 基礎使用方式:表格(table)
```markdown=
TABLE
author as "作者",
date as "資料日期",
tags as "主題"
FROM #自學
SORT file.mtime DESC
```
---
#### 解析與延伸
```markdown=
TABLE # 表示用表格的方式顯示資料
## 不同欄位之間要用 "," 來區隔
author as "作者",
## 表示把資料中「author」提取呈現,
## 用 AS "標題名稱" 可以自定欄位標題
date as "資料日期",
## 表示把資料中「date」提取呈現,
## 用 AS "標題名稱" 可以自定欄位標題
tags as "主題"
## 表示把資料中「tags」提取呈現,
## 用 AS "標題名稱" 可以自定欄位標題
FROM #自學
## FROM 代表篩選條件,只能用 tags 篩選資料。
## 如上所示,選擇「自學」之後就只會顯示「tags」中有「自學」的資料
SORT file.mtime DESC
## SORT 是排序方法,分成:
## ASC 順序排,由小到大,由舊到新;
## DESC 倒序排,由大倒小,由新到舊。
## SORT 的指令為: `SORT <條件> ASC/DESC`
## 條件需要是「文件的屬性」
## `file.mtime` 代表:文件最後修改時間。
## 幾個常用的指令如下:
## file.title 文件標題(筆劃)
## file.ctime 文件創立時間
```
---
#### 設定複數條件檢閱:`WHERE`
```markdown=
WHERE
contains(type, "🏷️資料來源") and
!contains(file.name, "Template")
## WHERE 是另外一種篩選條件的指令,指令為 contains(<屬性名稱>,"<指定條件>")
## `contains` 表示:包含這個條件。
## `!contains` 表示:不包含這個條件。
## 超過一個條件需要輸入 and 來並列,例如:
## WHERE
## contains(屬性1,"條件1") AND
## !contains(屬性2, "條件2")
```
---
#### 以特定文字呈現檔案連結: `link(file.link,<特定文字>)`
```markdown=
link(file.link, "<特定文字>")
```
---
#### 組裝文字: `<文字>+<文字>`
```markdown=
"<文字1>" + "<文字2>"
```
---
### 建立第一個資料庫
---

---
{"description":"概念說明","title":"2025-06-27 Obsidian 資料庫|Slides","breaks":true,"slideOptions":"{\"theme\":\"dracula\"}","contributors":"[{\"id\":\"779d2623-aac9-499c-88e4-9fafda2f2407\",\"add\":3601,\"del\":274}]"}