[發明專利]數據庫查詢語句的生成方法及裝置有效
| 申請號: | 201410773953.1 | 申請日: | 2014-12-12 |
| 公開(公告)號: | CN104462429B | 公開(公告)日: | 2017-12-22 |
| 發明(設計)人: | 李亞東 | 申請(專利權)人: | 北京國雙科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京康信知識產權代理有限責任公司11240 | 代理人: | 李志剛,吳貴明 |
| 地址: | 100086 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據庫 查詢 語句 生成 方法 裝置 | ||
技術領域
本發明涉及計算機領域,具體而言,涉及一種數據庫查詢語句的生成方法及裝置。
背景技術
在對關系數據庫進行數據查詢時,需要利用數據庫查詢語句,例如結構化查詢語句(Structured Query Language,簡稱為SQL),展開相應的數據查詢。目前,利用數據庫查詢語句進行數據查詢的方法主要有兩種:一種是靜態查詢,這類查詢中與查詢條件相關的數據是固定的;另外一種是動態查詢,這類查詢中與查詢條件相關的數據是變化的。靜態查詢方式可以進行預編譯,然后放至存儲過程或者視圖中。動態查詢則需要根據用戶需求的不同,指定不同的查詢內容。
對于動態查詢,在執行查詢之前需要動態構造查詢內容。現有方法是針對不同的查詢內容,將數據庫查詢語句進行字符串的拼接,然后再執行查詢。該方法對編程人員來說極不友好,在拼接時容易出錯,并且之后的維護也較難展開。
針對相關技術中生成數據庫查詢語句時準確性差的問題,目前尚未提出有效的解決方案。
發明內容
本發明的主要目的在于提供一種數據庫查詢語句的生成方法及裝置,以解決生成數據庫查詢語句時準確性差的問題。
為了實現上述目的,根據本發明的一個方面,提供了一種數據庫查詢語句的生成方法。
根據本發明的數據庫查詢語句的生成方法包括:獲取多個預設查詢對象,其中,多個預設查詢對象包括根查詢對象和多個葉查詢對象;從多個葉查詢對象中獲取目標葉查詢對象;確定查詢列,其中,查詢列用于表示待查詢內容對應的列;將查詢列和目標葉查詢對象添加到根查詢對象中,得到目標查詢對象;根據目標查詢對象生成目標數據庫查詢語句。
進一步地,將查詢列和目標葉查詢對象添加到根查詢對象中,得到目標查詢對象包括:獲取預設查詢代碼,其中,預設查詢代碼為表示查詢條件的代碼;將查詢列、預設查詢代碼和目標葉查詢對象添加到根查詢對象中,得到目標查詢對象。
進一步地,獲取多個預設查詢對象包括:獲取預設數據庫查詢語句;將預設數據庫查詢語句按照預設規則進行拆分,獲取多個拆分結果;將多個拆分結果分別作為多個預設查詢對象。
進一步地,將預設數據庫查詢語句按照預設規則進行拆分包括:確定預設數據庫查詢語句的語句結構;按照語句結構,劃分出預設數據庫查詢語句的根節點和葉節點;按照預設數據庫查詢語句的根節點和葉節點對預設數據庫查詢語句進行拆分。
進一步地,按照語句結構,劃分出預設數據庫查詢語句的根節點和葉節點包括:將預設數據庫查詢語句中包含的物理表、聯接表、邏輯表和子查詢表作為預設數據庫查詢語句的葉節點;將預設數據庫查詢語句中的查詢實體作為預設數據庫查詢語句的根節點。
進一步地,多個葉查詢對象用于嵌套在根查詢對象中,根據目標查詢對象生成目標數據庫查詢語句包括:獲取根查詢對象和目標葉查詢對象的預設嵌套關系,其中,嵌套在內部的查詢對象先于嵌套在外部的查詢對象生成目標數據庫查詢語句;根據預設嵌套關系和目標查詢對象生成數據庫查詢語句。
為了實現上述目的,根據本發明的另一方面,提供了一種數據庫查詢語句的生成裝置。
根據本發明的數據庫查詢語句的生成裝置包括:第一獲取單元,用于獲取多個預設查詢對象,其中,多個預設查詢對象包括根查詢對象和多個葉查詢對象;第二獲取單元,用于從多個葉查詢對象中獲取目標葉查詢對象;確定單元,用于確定查詢列,其中,查詢列用于表示待查詢內容對應的列;添加單元,用于將查詢列和目標葉查詢對象添加到根查詢對象中,得到目標查詢對象;生成單元,用于根據目標查詢對象生成目標數據庫查詢語句。
進一步地,添加單元包括:第一獲取模塊,用于獲取預設查詢代碼,其中,預設查詢代碼為表示查詢條件的代碼;添加模塊,用于將查詢列、預設查詢代碼和目標葉查詢對象添加到根查詢對象中,得到目標查詢對象。
進一步地,第一獲取單元包括:第二獲取模塊,用于獲取預設數據庫查詢語句;拆分模塊,用于將預設數據庫查詢語句按照預設規則進行拆分,獲取多個拆分結果;確定模塊,用于將多個拆分結果分別作為多個預設查詢對象。
進一步地,拆分模塊包括:確定子模塊,用于確定預設數據庫查詢語句的語句結構;劃分子模塊,用于按照語句結構,劃分出預設數據庫查詢語句的根節點和葉節點;拆分子模塊,用于按照預設數據庫查詢語句的根節點和葉節點對預設數據庫查詢語句進行拆分。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京國雙科技有限公司,未經北京國雙科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410773953.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種分組名分類方法及裝置
- 下一篇:搜索建議的展示方法和裝置





