diff --git a/Kong_Un_V2.session.sql b/Kong_Un_V2.session.sql new file mode 100644 index 0000000..e69de29 diff --git "a/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" "b/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" index e5bce8a..aeafbd8 100644 --- "a/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" +++ "b/a400_\345\217\215\345\210\207\346\237\245\346\213\274\351\237\263.py" @@ -1,90 +1,88 @@ +#============================================================================== +# 程式用於查詢反切拼音 +#============================================================================== import os -import sqlite3 import sys from mod_廣韻 import ( cha_ciat_gu_ha_ji, cha_ciat_gu_siong_ji, - close_db_connection, connect_to_db, han_ji_cha_piau_im, ) - def main(): # 確認使用者有輸入反切之切語參數 if len(sys.argv) != 2: print("請輸入欲查詢讀音之【切語】(反切上字及下字)!") - os._exit(-1) + sys.exit(-1) ciat_gu = sys.argv[1] # 檢查反切拼音是否有兩個字 if len(ciat_gu) != 2: print("反切用的切語,必須有兩個漢字!") - os._exit(-1) + sys.exit(-1) # 連上 DB - conn, cursor = connect_to_db('.\\Kong_Un_V2.db') + with connect_to_db('.\\Kong_Un_V2.db') as conn: + cursor = conn.curson() - # 根據反切上字和反切下字來查詢台羅拼音 - siong_ji = ciat_gu[0] - ha_ji = ciat_gu[1] + # 根據反切上字和反切下字來查詢台羅拼音 + siong_ji = ciat_gu[0] + ha_ji = ciat_gu[1] - # 顯示結果 - os.system('cls') - print('\n=================================================') - print(f'欲查詢拼音之切語為:【{ciat_gu}】') + # 顯示結果 + os.system('cls') + print('\n=================================================') + print(f'欲查詢拼音之切語為:【{ciat_gu}】') - # 查詢反切上字 - print('\n-------------------------------------------------') - print('【切語上字】:\n') - siong_ji_im = han_ji_cha_piau_im(cursor, siong_ji) - siong_ji_piau = cha_ciat_gu_siong_ji(cursor, siong_ji) - if not siong_ji_piau: - print(f'查不到【反切上字】:{siong_ji}') - else: - print(f"切語上字 = {siong_ji} (標音:{siong_ji_im[0]['漢字標音']})") - print(f"聲母:{siong_ji_piau[0]['聲母']} [{siong_ji_piau[0]['聲母拼音碼']}],國際音標:/{siong_ji_im[0]['聲母國際音標']}/ ") - print(f"(發音部位:{siong_ji_piau[0]['發音部位']},清濁:{siong_ji_piau[0]['清濁']},發送收:{siong_ji_piau[0]['發送收']})") + # 查詢反切上字 + print('\n-------------------------------------------------') + print('【切語上字】:\n') + siong_ji_im = han_ji_cha_piau_im(cursor, siong_ji) + siong_ji_piau = cha_ciat_gu_siong_ji(cursor, siong_ji) + if not siong_ji_piau: + print(f'查不到【反切上字】:{siong_ji}') + else: + print(f"切語上字 = {siong_ji} (標音:{siong_ji_im[0]['漢字標音']})") + print(f"聲母:{siong_ji_piau[0]['聲母']} [{siong_ji_piau[0]['聲母拼音碼']}],國際音標:/{siong_ji_im[0]['聲母國際音標']}/ ") + print(f"(發音部位:{siong_ji_piau[0]['發音部位']},清濁:{siong_ji_piau[0]['清濁']},發送收:{siong_ji_piau[0]['發送收']})") - # 查詢反切下字 - print('\n-------------------------------------------------') - print('【切語下字】:\n') - ha_ji_im = han_ji_cha_piau_im(cursor, ha_ji) - ha_ji_piau = cha_ciat_gu_ha_ji(cursor, ha_ji) - if not ha_ji_piau: - print(f'查不到【反切下字】:{ha_ji}') - else: - print(f"切語下字 = {ha_ji} (標音:{ha_ji_im[0]['漢字標音']})") - print(f"韻母:{ha_ji_piau[0]['韻母']} [{ha_ji_piau[0]['韻母拼音碼']}],國際音標:/{ha_ji_im[0]['韻母國際音標']}/") - print(f"攝:{ha_ji_piau[0]['攝']},調:{ha_ji_piau[0]['調']}聲,目次:{ha_ji_piau[0]['目次']}") - print(f"{ha_ji_piau[0]['韻系']}韻系,{ha_ji_piau[0]['韻目']}韻,{ha_ji_piau[0]['呼']}口呼,{ha_ji_piau[0]['等']}等 ({ha_ji_piau[0]['等呼']})") + # 查詢反切下字 + print('\n-------------------------------------------------') + print('【切語下字】:\n') + ha_ji_im = han_ji_cha_piau_im(cursor, ha_ji) + ha_ji_piau = cha_ciat_gu_ha_ji(cursor, ha_ji) + if not ha_ji_piau: + print(f'查不到【反切下字】:{ha_ji}') + else: + print(f"切語下字 = {ha_ji} (標音:{ha_ji_im[0]['漢字標音']})") + print(f"韻母:{ha_ji_piau[0]['韻母']} [{ha_ji_piau[0]['韻母拼音碼']}],國際音標:/{ha_ji_im[0]['韻母國際音標']}/") + print(f"攝:{ha_ji_piau[0]['攝']},調:{ha_ji_piau[0]['調']}聲,目次:{ha_ji_piau[0]['目次']}") + print(f"{ha_ji_piau[0]['韻系']}韻系,{ha_ji_piau[0]['韻目']}韻,{ha_ji_piau[0]['呼']}口呼,{ha_ji_piau[0]['等']}等 ({ha_ji_piau[0]['等呼']})") - # 組合拼音 - tiau_ho_list = { - '清平': 1, - '清上': 2, - '清去': 3, - '清入': 4, - '濁平': 5, - '濁上': 2, - '濁去': 7, - '濁入': 8, - } - siann = siong_ji_piau[0]['聲母拼音碼'] - cing_tok_str = siong_ji_piau[0]['清濁'] - cing_tok = cing_tok_str[-1] - un = ha_ji_piau[0]['韻母拼音碼'] - tiau_ho = tiau_ho_list[ f"{cing_tok}{ha_ji_piau[0]['調']}" ] + # 組合拼音 + tiau_ho_list = { + '清平': 1, + '清上': 2, + '清去': 3, + '清入': 4, + '濁平': 5, + '濁上': 2, + '濁去': 7, + '濁入': 8, + } + siann = siong_ji_piau[0]['聲母拼音碼'] + cing_tok_str = siong_ji_piau[0]['清濁'] + cing_tok = cing_tok_str[-1] + un = ha_ji_piau[0]['韻母拼音碼'] + tiau_ho = tiau_ho_list[ f"{cing_tok}{ha_ji_piau[0]['調']}" ] - print('\n-------------------------------------------------') - print(f'【切語拼音】:{ciat_gu} [{siann}{un}{tiau_ho}]\n') + print('\n-------------------------------------------------') + print(f'【切語拼音】:{ciat_gu} [{siann}{un}{tiau_ho}]\n') - # 關閉 DB - close_db_connection(conn) - if __name__ == "__main__": main() \ No newline at end of file diff --git "a/docs/diagrams/SDD-001_\345\273\243\351\237\273\345\210\207\350\252\236\345\255\227\345\205\270\350\263\207\346\226\231\346\250\241\345\236\213.md" "b/docs/SDD-001_\345\273\243\351\237\273\345\210\207\350\252\236\345\255\227\345\205\270\350\263\207\346\226\231\346\250\241\345\236\213.md" similarity index 100% rename from "docs/diagrams/SDD-001_\345\273\243\351\237\273\345\210\207\350\252\236\345\255\227\345\205\270\350\263\207\346\226\231\346\250\241\345\236\213.md" rename to "docs/SDD-001_\345\273\243\351\237\273\345\210\207\350\252\236\345\255\227\345\205\270\350\263\207\346\226\231\346\250\241\345\236\213.md" diff --git a/docs/diagrams/SDD-000_DOMAIN_MODEL.md "b/docs/SDD-400_\345\273\243\351\237\273\345\255\227\345\205\270\350\263\207\346\226\231\346\250\241\345\236\213.md" similarity index 98% rename from docs/diagrams/SDD-000_DOMAIN_MODEL.md rename to "docs/SDD-400_\345\273\243\351\237\273\345\255\227\345\205\270\350\263\207\346\226\231\346\250\241\345\236\213.md" index ca84e4a..9973cd1 100644 --- a/docs/diagrams/SDD-000_DOMAIN_MODEL.md +++ "b/docs/SDD-400_\345\273\243\351\237\273\345\255\227\345\205\270\350\263\207\346\226\231\346\250\241\345\236\213.md" @@ -1,4 +1,4 @@ -# 廣韻切語字典資料模型 +# 廣韻字典資料模型 ```plantuml @startuml diff --git "a/docs/SDD-411_\345\260\217\351\237\273\346\252\242\350\246\226.sql" "b/docs/SDD-411_\345\260\217\351\237\273\346\252\242\350\246\226.sql" new file mode 100644 index 0000000..e9201a0 --- /dev/null +++ "b/docs/SDD-411_\345\260\217\351\237\273\346\252\242\350\246\226.sql" @@ -0,0 +1,53 @@ +-- 建立小韻檢視 +DROP VIEW IF EXISTS 小韻檢視; + +CREATE VIEW 小韻檢視 AS +SELECT + 小韻表.識別號, + 小韻表.小韻字, + 小韻表.切語 AS 小韻切語, + 小韻表.拼音 AS 小韻標音, + 小韻表.目次編碼 AS 目次, + 小韻表.小韻字序號, + 小韻表.小韻字集, + 小韻表.字數, + 切語上字表.發音部位 AS 聲母發音部位, + 切語上字表.清濁, + 切語上字表.發送收, + 廣韻聲母對照表.廣韻聲母, + 廣韻聲母對照表.雅俗通聲母, + 聲母對照表.聲母碼 AS 上字標音, + 聲母對照表.聲母國際音標, + 聲母對照表.白話字聲母, + 聲母對照表.閩拼聲母, + 聲母對照表.台羅聲母, + 聲母對照表.方音聲母, + 切語下字表.攝, + 切語下字表.韻目, + 切語下字表.調, + 切語下字表.呼, + 切語下字表.等, + 切語下字表.韻母, + 切語下字表.等呼, + 廣韻韻母對照表.廣韻韻母, + 廣韻韻母對照表.雅俗通韻母, + 韻母對照表.韻母碼 AS 下字標音, + 韻母對照表.韻母國際音標, + 韻母對照表.白話字韻母, + 韻母對照表.閩拼韻母, + 韻母對照表.台羅韻母, + 韻母對照表.方音韻母 +FROM + 小韻表 +JOIN + 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 +JOIN + 廣韻聲母對照表 ON 切語上字表.廣韻聲母識別號 = 廣韻聲母對照表.識別號 +JOIN + 聲母對照表 ON 廣韻聲母對照表.聲母識別號 = 聲母對照表.識別號 +JOIN + 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號 +JOIN + 廣韻韻母對照表 ON 切語下字表.廣韻韻母識別號 = 廣韻韻母對照表.識別號 +JOIN + 韻母對照表 ON 廣韻韻母對照表.韻母識別號 = 韻母對照表.識別號; \ No newline at end of file diff --git "a/docs/diagrams/SDD-002_\345\273\272\347\253\213\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226\351\234\200\346\261\202\350\246\217\346\240\274.md" "b/docs/SDD-420_\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226\350\246\217\346\240\274.md" similarity index 50% rename from "docs/diagrams/SDD-002_\345\273\272\347\253\213\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226\351\234\200\346\261\202\350\246\217\346\240\274.md" rename to "docs/SDD-420_\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226\350\246\217\346\240\274.md" index cab4caf..03ca190 100644 --- "a/docs/diagrams/SDD-002_\345\273\272\347\253\213\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226\351\234\200\346\261\202\350\246\217\346\240\274.md" +++ "b/docs/SDD-420_\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226\350\246\217\346\240\274.md" @@ -1,9 +1,8 @@ -# 漢字廣韻標音檢視需求規格 +# 漢字廣韻標音檢視規格 建立檢視,以供查詢漢字的《廣韻》標音相關資訊。 - -查詢某漢字之`[標音]`相關資訊, 需要以下欄位之資料: +參考《SDD-400_廣韻字典資料模型》。某漢字之`[標音]`相關資訊, 由以下欄位資料組合而成: 1. 來自 '字表' 資料表的以下欄位: @@ -25,19 +24,25 @@ 3. 來自 '切語上字表' 資料表的以下欄位: - 發音部位: text - - 聲母: text - 清濁: text - - 發聲收: text - - 聲母拼音碼: text + - 發送收: text - 切語上字集: text -4. 來自 '聲母對照表' 資料表的以下欄位: +4. 來自 '廣韻聲母對照表' 資料表的以下欄位: + + - 廣韻聲母: text + - 雅俗通聲母: text + +5. 來自 '聲母對照表' 資料表的以下欄位: - 聲母拼音碼: text - - 國際音標: text - - 十五音: text + - 聲母國際音標: text + - 白話字聲母: text + - 閩拼聲母: text + - 台羅聲母: text + - 方音聲母: text -5. 來自 '切語下字表' 資料表的以下欄位: +6. 來自 '切語下字表' 資料表的以下欄位: - 韻系列號: integer - 韻系行號: integer @@ -53,8 +58,16 @@ - 切語下字集: text - 等呼: text -6. 來自 '韻母對照表' 資料表的以下欄位: +7. 來自 '廣韻韻母對照表' 資料表的以下欄位: + + - 廣韻韻母: text + - 雅俗通韻母: text + +8. 來自 '韻母對照表' 資料表的以下欄位: - 韻母拼音碼: text - - 國際音標: text - - 十五音: text \ No newline at end of file + - 韻母國際音標: text + - 白話字韻母: text + - 閩拼韻母: text + - 台羅韻母: text + - 方音韻母: text diff --git "a/docs/diagrams/SDD-002_\345\273\272\347\253\213\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226.sql" "b/docs/SDD-421_\345\273\272\347\253\213\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226.sql" similarity index 100% rename from "docs/diagrams/SDD-002_\345\273\272\347\253\213\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226.sql" rename to "docs/SDD-421_\345\273\272\347\253\213\346\274\242\345\255\227\345\273\243\351\237\273\346\250\231\351\237\263\346\252\242\350\246\226.sql" diff --git a/docs/URS_003.md "b/docs/URS400_\345\217\215\345\210\207\351\233\231\345\255\227\346\237\245\346\250\231\351\237\263.md" similarity index 66% rename from docs/URS_003.md rename to "docs/URS400_\345\217\215\345\210\207\351\233\231\345\255\227\346\237\245\346\250\231\351\237\263.md" index e2b97c1..3ddba26 100644 --- a/docs/URS_003.md +++ "b/docs/URS400_\345\217\215\345\210\207\351\233\231\345\255\227\346\237\245\346\250\231\351\237\263.md" @@ -1,33 +1,30 @@ -# 使用者需求 +# 反切雙字查標音需求 -## 反切查拚音功能 +## 功能描述 -### 功能描述 - -用途:可以在終端機,使用 Python Code 查詢漢字的反切拚音。 +用途:使用者透過終端機,以反切之切語上、下字,查詢漢字之標音(或稱:拼音)。 指令格式: ```bash -py a300_反切查拼音.py [參數1:查詢漢字] [參數2:反切拼] +py a400_反切查拼音.py [參數1:切語雙字] ``` 參數: -1. 查詢漢字: 1 個中文字 -2. 反切拼音: 2 個中文字 - 2.1 反切上字:反切拼音參數的第 1 個中文字 - 2.2 反切下字:反切拼音參數的第 2 個中文字 +- 切語雙字: 2 個中文字 + (1) 反切上字:切語雙字參數的第 1 個中文字 + (2) 反切下字:切語雙字參數的第 2 個中文字 -### 執行流程 +## 執行流程 1. 在終端機輸入指令,如: ```bash -py a300_反切查拼音.py 東 德紅 +python a400_反切查拼音.py 德紅 ``` -2. a300_反切查拼音.py 的程式碼處理輸入的 2 個參數,完成後輸出如下格式資料: +2. 程式碼依據輸入的參數,進行處理,於完成後輸資料如下: ```bash 欲查詢拼音之漢字:[參數1:查詢漢字] @@ -36,9 +33,11 @@ py a300_反切查拼音.py 東 德紅 反切上字為:[反切上字] 反切下字為:[反切下字] +``` +## 處理羅輯 -## 反切查漢字讀音 +### 如何利切語上字及下字判定音調調號 1. 利用上字: (1) 查聲母的台羅拼音字母; diff --git "a/docs/diagrams/SDD-000_\345\273\272\347\253\213\346\252\242\350\246\226.md" "b/docs/diagrams/SDD-000_\345\273\272\347\253\213\346\252\242\350\246\226.md" deleted file mode 100644 index f854fcb..0000000 --- "a/docs/diagrams/SDD-000_\345\273\272\347\253\213\346\252\242\350\246\226.md" +++ /dev/null @@ -1,321 +0,0 @@ -# 建立檢視(View) - -## 查詢漢字拼音碼(注音) - -### 需求 - -查詢某漢字之`[拼音]`, 需要以下欄位之資料: - -1. 來自 '字表' 資料表的以下欄位: - - - 識別號: integer - - 字: text - - 同音字序: integer - - 切語: text - - 拼音: text - - 字義: text - -2. 來自 '小韻表' 資料表的以下欄位: - - - 小韻字: text - - 目次編碼: text - - 小韻字序號: integer - - 小韻字集: text - - 字數: integer - -3. 來自 '切語上字表' 資料表的以下欄位: - - - 發音部位: text - - 清濁: text - - 發送收: text - - 切語上字集: text - -4. 來自 '廣韻聲母對照表' 資料表的以下欄位: - - - 廣韻聲母: text - - 雅俗通聲母: text - -5. 來自 '聲母對照表' 資料表的以下欄位: - - - 聲母拼音碼: text - - 聲母國際音標: text - - 白話字聲母: text - - 閩拼聲母: text - - 台羅聲母: text - - 方音聲母: text - -6. 來自 '切語下字表' 資料表的以下欄位: - - - 韻系列號: integer - - 韻系行號: integer - - 韻目索引: text - - 目次: text - - 攝: text - - 韻系: text - - 韻目: text - - 調: text - - 呼: text - - 等: integer - - 韻母: text - - 切語下字集: text - - 等呼: text - -7. 來自 '廣韻韻母對照表' 資料表的以下欄位: - - - 廣韻韻母: text - - 雅俗通韻母: text - -8. 來自 '韻母對照表' 資料表的以下欄位: - - - 韻母拼音碼: text - - 韻母國際音標: text - - 白話字韻母: text - - 閩拼韻母: text - - 台羅韻母: text - - 方音韻母: text - -### SQL Script - -```sql -CREATE VIEW 漢字查標音 AS -SELECT - 字表.識別號 AS 字識別號, - 字表.字, - 字表.同音字序, - 字表.切語 AS 字切語, - 字表.拼音 AS 字拼音, - 字表.字義, - 小韻表.小韻字, - 小韻表.目次編碼, - 小韻表.小韻字序號, - 小韻表.小韻字集, - 小韻表.字數, - 切語上字表.發音部位, - 切語上字表.清濁, - 切語上字表.發送收, - 切語上字表.切語上字集, - 廣韻聲母對照表.廣韻聲母, - 廣韻聲母對照表.雅俗通聲母, - 聲母對照表.聲母拼音碼, - 聲母對照表.聲母國際音標, - 聲母對照表.白話字聲母, - 聲母對照表.閩拼聲母, - 聲母對照表.台羅聲母, - 聲母對照表.方音聲母, - 切語下字表.韻系列號, - 切語下字表.韻系行號, - 切語下字表.韻目索引, - 切語下字表.目次, - 切語下字表.攝, - 切語下字表.韻系, - 切語下字表.韻目, - 切語下字表.調, - 切語下字表.呼, - 切語下字表.等, - 切語下字表.韻母 AS 下切語韻母, - 切語下字表.切語下字集, - 切語下字表.等呼 AS 下切語等呼, - 廣韻韻母對照表.廣韻韻母, - 廣韻韻母對照表.雅俗通韻母, - 韻母對照表.韻母拼音碼, - 韻母對照表.韻母國際音標, - 韻母對照表.白話字韻母, - 韻母對照表.閩拼韻母, - 韻母對照表.台羅韻母, - 韻母對照表.方音韻母 -FROM - 字表 -JOIN - 小韻表 ON 字表.小韻識別號 = 小韻表.識別號 -JOIN - 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 -JOIN - 廣韻聲母對照表 ON 切語上字表.廣韻聲母識別號 = 廣韻聲母對照表.識別號 -JOIN - 聲母對照表 ON 廣韻聲母對照表.聲母識別號 = 聲母對照表.識別號 -JOIN - 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號 -JOIN - 廣韻韻母對照表 ON 切語下字表.廣韻韻母識別號 = 廣韻韻母對照表.識別號 -JOIN - 韻母對照表 ON 廣韻韻母對照表.韻母識別號 = 韻母對照表.識別號; - -``` - - - - - - -## 漢字查詢廣韻 - -```sh -CREATE VIEW 檢視測試 AS -SELECT - 識別號, - 字, - 同音字序, - 切語, - 拼音, - 字義 -FROM 字表 -``` - -## 建置小韻查詢 - -```sh -CREATE VIEW 小韻查詢 AS -SELECT - 小韻表.小韻字, - 小韻表.切語, - 小韻表.拼音, - 小韻表.目次編碼, - 小韻表.小韻字序號, - 小韻表.小韻字集, - 小韻表.字數, - 切語上字表.發音部位, - 切語上字表.聲母, - 切語上字表.清濁, - 切語上字表.發送收, - 切語上字表.聲母拼音碼 AS 聲母標音, - 切語上字表.切語上字集, - 切語下字表.韻系列號, - 切語下字表.韻系行號, - 切語下字表.韻目索引, - 切語下字表.目次, - 切語下字表.攝, - 切語下字表.韻系, - 切語下字表.韻目, - 切語下字表.調, - 切語下字表.呼, - 切語下字表.等, - 切語下字表.韻母, - 切語下字表.切語下字集, - 切語下字表.等呼, - 切語下字表.韻母拼音碼 AS 韻母標音 -FROM 小韻表 -JOIN 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 -JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號; -``` - -## 建置漢字查廣韻標音 - -```sh -CREATE VIEW 漢字查廣韻標音 AS -SELECT - 字表.識別號, - 字表.字, - 字表.同音字序, - 字表.切語, - 字表.拼音 AS 漢字標音, - 字表.字義, - 小韻表.小韻字, - 小韻表.目次編碼, - 小韻表.小韻字序號, - 小韻表.小韻字集, - 小韻表.字數, - 切語上字表.發音部位, - 切語上字表.聲母, - 切語上字表.清濁, - 切語上字表.發送收, - 切語上字表.聲母拼音碼 AS 上字標音, - 切語上字表.切語上字集, - 切語下字表.韻系列號, - 切語下字表.韻系行號, - 切語下字表.韻目索引, - 切語下字表.目次, - 切語下字表.攝, - 切語下字表.韻系, - 切語下字表.韻目, - 切語下字表.調, - 切語下字表.呼, - 切語下字表.等, - 切語下字表.韻母, - 切語下字表.切語下字集, - 切語下字表.等呼, - 切語下字表.韻母拼音碼 AS 下字標音 -FROM 字表 -JOIN 小韻表 ON 字表.小韻識別號 = 小韻表.識別號 -JOIN 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 -JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號; -``` - - - -```sql -CREATE VIEW 漢字查廣韻 AS -SELECT - 字表.識別號, - 字表.字, - 字表.同音字序, - 字表.切語, - 字表.拼音 AS 漢字標音, - 字表.字義, - 小韻表.小韻字, - 小韻表.目次編碼, - 小韻表.小韻字序號, - 小韻表.小韻字集, - 小韻表.字數, - 切語上字表.發音部位, - 切語上字表.聲母, - 切語上字表.清濁, - 切語上字表.發送收, - 切語上字表.切語上字集, - 廣韻聲母對照表.聲母拼音碼, - 廣韻聲母對照表.聲母國際音標, - 廣韻聲母對照表.雅俗通聲母, - 切語下字表.韻系列號, - 切語下字表.韻系行號, - 切語下字表.韻目索引, - 切語下字表.目次, - 切語下字表.攝, - 切語下字表.韻系, - 切語下字表.韻目, - 切語下字表.調, - 切語下字表.呼, - 切語下字表.等, - 切語下字表.韻母, - 切語下字表.切語下字集, - 切語下字表.等呼, - 廣韻韻母對照表.韻母拼音碼, - 廣韻韻母對照表.韻母國際音標, - 廣韻韻母對照表.雅俗通韻母 -FROM 字表 -JOIN 小韻表 ON 字表.小韻識別號 = 小韻表.識別號 -JOIN 切語上字表 ON 小韻表.上字表識別號 = 切語上字表.識別號 -JOIN 廣韻聲母對照表 ON 切語上字表.聲母識別號 = 廣韻聲母對照表.識別號 -JOIN 切語下字表 ON 小韻表.下字表識別號 = 切語下字表.識別號 -JOIN 廣韻韻母對照表 ON 切語下字表.韻母識別號 = 廣韻韻母對照表.識別號; -``` - - -## 廣韻韻母檢視 - -```sql -CREATE VIEW 廣韻韻母檢視 AS -SELECT - 廣韻韻母對照表.識別號, - 廣韻韻母對照表.廣韻韻母, - 廣韻韻母對照表.韻母拼音碼, - 廣韻韻母對照表.韻母國際音標, - 廣韻韻母對照表.雅俗通韻母, - 廣韻韻母對照表.舒促聲 -FROM 廣韻韻母對照表 -JOIN 韻母對照表 ON 廣韻韻母對照表.韻母識別號 = 韻母對照表.識別號 -``` - - - -## 廣韻聲母檢視 - -```sql -CREATE VIEW 廣韻聲母檢視 AS -SELECT - 廣韻聲母對照表.識別號, - 廣韻聲母對照表.廣韻聲母, - 廣韻聲母對照表.聲母拼音碼, - 廣韻聲母對照表.聲母國際音標, - 廣韻聲母對照表.雅俗通聲母 -FROM 廣韻聲母對照表 -JOIN 聲母對照表 ON 廣韻聲母對照表.聲母識別號 = 聲母對照表.識別號 -``` diff --git "a/mod_\345\273\243\351\237\273.py" "b/mod_\345\273\243\351\237\273.py" index 9e09d31..6315c92 100644 --- "a/mod_\345\273\243\351\237\273.py" +++ "b/mod_\345\273\243\351\237\273.py" @@ -1,10 +1,31 @@ import sqlite3 +def connect_to_db_by_context_manager_decorator(db_path): + def connect_to_db(func): + def wrapper(*args, **kwargs): + # 創建數據庫連接 + conn = sqlite3.connect(db_path) -def connect_to_db(db_name): + # 創建一個游標 + cursor = conn.cursor() + + # 執行函數 + result = func(cursor, *args, **kwargs) + + # 關閉數據庫連接 + conn.close() + + return result + + return wrapper + + return connect_to_db + + +def connect_to_db(db_path): # 創建數據庫連接 - conn = sqlite3.connect(db_name) + conn = sqlite3.connect(db_path) # 創建一個游標 cursor = conn.cursor() @@ -12,6 +33,16 @@ def connect_to_db(db_name): return conn, cursor +def connect_to_db2(db_path): + # 創建數據庫連接 + conn = sqlite3.connect(db_path) + + # 創建一個游標 + cursor = conn.cursor() + + return conn + + def close_db_connection(conn): # 關閉數據庫連接 conn.close()