[發明專利]非標準SQL語句的內外連接的轉化方法和轉化裝置有效
| 申請號: | 201611071273.0 | 申請日: | 2016-11-29 |
| 公開(公告)號: | CN106708954B | 公開(公告)日: | 2020-03-10 |
| 發明(設計)人: | 楊永亮 | 申請(專利權)人: | 北京華勝信泰數據技術有限公司;華勝信泰信息產業發展有限公司 |
| 主分類號: | G06F16/2452 | 分類號: | G06F16/2452 |
| 代理公司: | 北京友聯知識產權代理事務所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
| 地址: | 100192 北京市海淀區學*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 非標準 sql 語句 內外 連接 轉化 方法 裝置 | ||
1.一種非標準SQL語句的內外連接的轉化方法,其特征在于,包括:
在非標準SQL語句的語法解析樹中的過濾條件樹中,查找出所有的第一類型表達式和所有的第二類型表達式,其中,所述第一類型表達式僅包括一個被預設關鍵字修飾的表,所述第二類型表達式僅包括一個被預設關鍵字修飾的表和一個未被所述預設關鍵字修飾的表;
為每個所述第二類型表達式生成連接狀態樹節點;
將所有的所述連接狀態樹節點進行合并,得到連接狀態樹;
將每個所述第一類型表達式鏈接到所述連接狀態樹上的所述連接狀態樹節點的屬性中;
根據鏈接有所述第一類型表達式的連接狀態樹,對所述語法解析樹進行修改,以將所述非標準SQL語句的內連接轉化成外連接;
所述將所有的所述連接狀態樹節點進行合并,得到連接狀態樹的步驟,包括:
在將所有的所述連接狀態樹節點中的第一連接狀態樹節點和其右側的第二連接狀態樹節點進行合并時,將所述第一連接狀態樹節點作為目標節點,所述第二連接狀態樹節點作為參與節點,判斷所述目標節點和所述參與節點是否滿足左合并條件或右合并條件;
若所述目標節點和所述參與節點滿足所述左合并條件或所述右合并條件,則將所述參與節點向所述目標節點進行合并;
若所述目標節點和所述參與節點不滿足所述左合并條件和所述右合并條件,則將所述參與節點更改為第一連接狀態樹節點,將所述目標節點更改為第二連接狀態樹節點,判斷更改后的目標節點和參與節點是否滿足所述左合并條件或所述右合并條件;
若更改后的目標節點和參與節點滿足所述左合并條件或所述右合并條件,則將更改后的參與節點向更改后的目標節點進行合并;
若更改后的目標節點和參與節點不滿足所述左合并條件和所述右合并條件,則將更改后的目標節點和更改后的參與節點進行空合并。
2.根據權利要求1所述的非標準SQL語句的內外連接的轉化方法,其特征在于,
所述連接狀態樹節點的屬性包括:被所述預設關鍵字修飾的表、未被所述預設關鍵字修飾的表、被所述預設關鍵字修飾的表和未被所述預設關鍵字修飾的表之間的連接條件、所述連接狀態樹節點的左側連接狀態樹節點、所述連接狀態樹節點的右側連接狀態樹節點以及所述左側連接狀態樹節點和所述右側連接狀態樹節點是否為空連接。
3.根據權利要求2所述的非標準SQL語句的內外連接的轉化方法,其特征在于,所述將每個所述第一類型表達式鏈接到所述連接狀態樹上的所述連接狀態樹節點的屬性中的步驟,包括:
在所述連接狀態樹中查找出每個所述第一類型表達式對應的所述連接狀態樹節點,其中,所述第一類型表達式的被所述預設關鍵字修飾的表和所述第一類型表達式對應的所述連接狀態樹節點的被所述預設關鍵字修飾的表相同;
將每個所述第一類型表達式鏈接到其對應的所述連接狀態樹節點的所述連接條件中。
4.根據權利要求1至3中任一項所述的非標準SQL語句的內外連接的轉化方法,其特征在于,所述轉化方法還包括:
若在所述過濾條件樹中,查找出除所述第一類型表達式和所述第二類型表達式之外的其他類型的表達式,且所述其他類型的表達式中包括被所述預設關鍵字修飾的表,則提示用戶出現錯誤。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京華勝信泰數據技術有限公司;華勝信泰信息產業發展有限公司,未經北京華勝信泰數據技術有限公司;華勝信泰信息產業發展有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611071273.0/1.html,轉載請聲明來源鉆瓜專利網。





