本技術(shù)涉及計算機(jī),尤其涉及一種數(shù)據(jù)查詢方法、電子設(shè)備、存儲介質(zhì)及程序產(chǎn)品。
背景技術(shù):
::1、隨著計算機(jī)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫的應(yīng)用也越來越廣泛,在一些特定的業(yè)務(wù)場景下,需要查詢數(shù)據(jù)庫中的數(shù)據(jù)表,以對數(shù)據(jù)表執(zhí)行相關(guān)操作。2、當(dāng)前查詢數(shù)據(jù)表,一般是由用戶按照習(xí)慣的順序,將需要針對某個數(shù)據(jù)表執(zhí)行的多項操作依次輸入至alter?table語句中,那么數(shù)據(jù)庫響應(yīng)于接收到上述alter?table語句,獲取其中包含的多項操作,并按照用戶的輸入順序,對相應(yīng)的數(shù)據(jù)表執(zhí)行相關(guān)操作。其中,alter?table語句在sql標(biāo)準(zhǔn)中被定義為數(shù)據(jù)庫數(shù)據(jù)表的屬性修改語句。3、但是用戶的輸入順序可能存在邏輯上的錯誤,使得數(shù)據(jù)庫在執(zhí)行相關(guān)操作時,會因上述錯誤執(zhí)行異常,降低數(shù)據(jù)表查詢的效率和成功率。技術(shù)實現(xiàn)思路1、本技術(shù)實施例提供數(shù)據(jù)查詢方法、電子設(shè)備、存儲介質(zhì)及程序產(chǎn)品,用以達(dá)到避免因輸入順序的邏輯錯誤導(dǎo)致執(zhí)行異常,提高數(shù)據(jù)表查詢的效率和成功率。2、第一方面,本技術(shù)實施例提供一種數(shù)據(jù)查詢方法,所述方法包括:接收終端發(fā)送的查詢語句,所述查詢語句包含針對同一數(shù)據(jù)表的多個命令;3、從各所述命令中解析出數(shù)據(jù)表標(biāo)識及各所述命令的類型,并獲取預(yù)設(shè)策略,根據(jù)所述預(yù)設(shè)策略以及各所述命令的類型,確定各所述命令的執(zhí)行順序;所述預(yù)設(shè)策略包括多個預(yù)設(shè)類型及各預(yù)設(shè)類型的正確執(zhí)行順序;4、判斷各所述命令的執(zhí)行順序是否與對應(yīng)的原始順序相同,若否,則構(gòu)建鏈表數(shù)組,并按照所述執(zhí)行順序依次將各所述命令添加至所述鏈表數(shù)組中;5、根據(jù)所述數(shù)據(jù)表標(biāo)識獲取數(shù)據(jù)表,并基于添加命令后的鏈表數(shù)組和所述數(shù)據(jù)表獲取查詢結(jié)果。6、在一種可能的實施方式中,所述從各所述命令中解析出數(shù)據(jù)表標(biāo)識及各所述命令的類型,包括:讀取各所述命令所在的字段;根據(jù)讀取結(jié)果獲取其包含的數(shù)據(jù)表標(biāo)識,以及,查詢字段;根據(jù)所述查詢字段反映的具體操作方式,確定各所述命令的類型。7、在一種可能的實施方式中,所述根據(jù)所述預(yù)設(shè)策略以及各所述命令的類型,確定各所述命令的執(zhí)行順序,包括:在所述預(yù)設(shè)策略中查找與各所述命令的類型相同的預(yù)設(shè)類型;將所述相同的預(yù)設(shè)類型的正確執(zhí)行順序,確定為各所述命令的第一執(zhí)行順序;判斷是否存在至少兩個命令的第一執(zhí)行順序相同;若否,則將所述第一執(zhí)行順序確定為各所述命令的執(zhí)行順序;若是,則確定所述至少兩個命令的原始順序;將所述原始順序確定為所述至少兩個命令的第二執(zhí)行順序;將對應(yīng)的第二執(zhí)行順序作為對應(yīng)的第一執(zhí)行順序的子順序,以獲得所述至少兩個命令的執(zhí)行順序;將對應(yīng)的第一執(zhí)行順序確定為其他命令的執(zhí)行順序。8、在一種可能的實施方式中,所述鏈表數(shù)組包含多個鏈表;各所述鏈表用于存儲不同類型的至少一個命令;所述構(gòu)建鏈表數(shù)組,包括:根據(jù)各所述命令的類型構(gòu)建不同類型的鏈表,并基于所述不同類型的鏈表構(gòu)建所述鏈表數(shù)組。9、在一種可能的實施方式中,所述按照所述執(zhí)行順序依次將各所述命令添加至所述鏈表數(shù)組中,包括:按照第一執(zhí)行順序,依次將各所述命令添加至各所述鏈表中;響應(yīng)于存在至少兩個命令所在的鏈表相同,按照第二執(zhí)行順序,在所述所在的鏈表中對所述至少兩個命令排序。10、在一種可能的實施方式中,所述基于添加命令后的鏈表數(shù)組和所述數(shù)據(jù)表獲取查詢結(jié)果,包括:判斷所述鏈表數(shù)組中是否存在包含至少兩個命令的鏈表;若否,則按照添加命令的先后順序,依次根據(jù)各所述鏈表中命令反應(yīng)的具體操作方式,對所述數(shù)據(jù)表執(zhí)行具體操作;若是,則在所述先后順序的基礎(chǔ)上,響應(yīng)于某個鏈表包含至少兩個命令,按照所述至少兩個命令的排序順序依次對所述數(shù)據(jù)表執(zhí)行具體操作;將針對所述數(shù)據(jù)表執(zhí)行具體操作的結(jié)果確定為所述查詢結(jié)果。11、在一種可能的實施方式中,所述接收終端發(fā)送的查詢語句之前,還包括:按照各所述預(yù)設(shè)類型之間的依賴關(guān)系,確定各所述預(yù)設(shè)類型的優(yōu)先級;按照所述優(yōu)先級確定各所述預(yù)設(shè)類型的正確執(zhí)行順序;在各所述預(yù)設(shè)類型和各所述預(yù)設(shè)類型的正確執(zhí)行順序之間構(gòu)建映射關(guān)系,以獲得預(yù)設(shè)策略。12、第二方面,本技術(shù)實施例提供一種數(shù)據(jù)查詢裝置,包括:接收模塊,用于接收終端發(fā)送的查詢語句,所述查詢語句包含針對同一數(shù)據(jù)表的多個命令;13、解析模塊,用于從各所述命令中解析出數(shù)據(jù)表標(biāo)識及各所述命令的類型;14、獲取模塊,用于獲取預(yù)設(shè)策略;15、確定模塊,用于根據(jù)所述預(yù)設(shè)策略以及各所述命令的類型,確定各所述命令的執(zhí)行順序;所述預(yù)設(shè)策略包括多個預(yù)設(shè)類型及各預(yù)設(shè)類型的正確執(zhí)行順序;16、判斷模塊,用于判斷各所述命令的執(zhí)行順序是否與對應(yīng)的原始順序相同;17、構(gòu)建模塊,用于若否,則構(gòu)建鏈表數(shù)組;18、添加模塊,用于按照所述執(zhí)行順序依次將各所述命令添加至所述鏈表數(shù)組中;19、所述獲取模塊,還用于根據(jù)所述數(shù)據(jù)表標(biāo)識獲取數(shù)據(jù)表,并基于添加命令后的鏈表數(shù)組和所述數(shù)據(jù)表獲取查詢結(jié)果。20、在一種可能的實施方式中,所述解析模塊,在所述從各所述命令中解析出數(shù)據(jù)表標(biāo)識及各所述命令的類型時,具體用于:21、讀取各所述命令所在的字段;根據(jù)讀取結(jié)果獲取其包含的數(shù)據(jù)表標(biāo)識,以及,查詢字段;根據(jù)所述查詢字段反映的具體操作方式,確定各所述命令的類型。22、在一種可能的實施方式中,所述確定模塊,在所述根據(jù)所述預(yù)設(shè)策略以及各所述命令的類型,確定各所述命令的執(zhí)行順序時,具體用于:23、在所述預(yù)設(shè)策略中查找與各所述命令的類型相同的預(yù)設(shè)類型;將所述相同的預(yù)設(shè)類型的正確執(zhí)行順序,確定為各所述命令的第一執(zhí)行順序;判斷是否存在至少兩個命令的第一執(zhí)行順序相同;若否,則將所述第一執(zhí)行順序確定為各所述命令的執(zhí)行順序;若是,則確定所述至少兩個命令的原始順序;將所述原始順序確定為所述至少兩個命令的第二執(zhí)行順序;將對應(yīng)的第二執(zhí)行順序作為對應(yīng)的第一執(zhí)行順序的子順序,以獲得所述至少兩個命令的執(zhí)行順序;將對應(yīng)的第一執(zhí)行順序確定為其他命令的執(zhí)行順序。24、在一種可能的實施方式中,所述鏈表數(shù)組包含多個鏈表;各所述鏈表用于存儲不同類型的至少一個命令;25、相應(yīng)地,所述構(gòu)建模塊,在所述構(gòu)建鏈表數(shù)組時,具體用于:26、根據(jù)各所述命令的類型構(gòu)建不同類型的鏈表,并基于所述不同類型的鏈表構(gòu)建所述鏈表數(shù)組。27、在一種可能的實施方式中,所述添加模塊,在所述按照所述執(zhí)行順序依次將各所述命令添加至所述鏈表數(shù)組中時,具體用于:28、按照第一執(zhí)行順序,依次將各所述命令添加至各所述鏈表中;響應(yīng)于存在至少兩個命令所在的鏈表相同,按照第二執(zhí)行順序,在所述所在的鏈表中對所述至少兩個命令排序。29、在一種可能的實施方式中,所述獲取模塊,在所述基于添加命令后的鏈表數(shù)組和所述數(shù)據(jù)表獲取查詢結(jié)果時,具體用于:30、判斷所述鏈表數(shù)組中是否存在包含至少兩個命令的鏈表;若否,則按照添加命令的先后順序,依次根據(jù)各所述鏈表中命令反應(yīng)的具體操作方式,對所述數(shù)據(jù)表執(zhí)行具體操作;若是,則在所述先后順序的基礎(chǔ)上,響應(yīng)于某個鏈表包含至少兩個命令,按照所述至少兩個命令的排序順序依次對所述數(shù)據(jù)表執(zhí)行具體操作;將針對所述數(shù)據(jù)表執(zhí)行具體操作的結(jié)果確定為所述查詢結(jié)果。31、在一種可能的實施方式中,所述確定模塊,還用于在所述接收模塊所述接收終端發(fā)送的查詢語句之前,按照各所述預(yù)設(shè)類型之間的依賴關(guān)系,確定各所述預(yù)設(shè)類型的優(yōu)先級;按照所述優(yōu)先級確定各所述預(yù)設(shè)類型的正確執(zhí)行順序;所述構(gòu)建模塊,還用于在各所述預(yù)設(shè)類型和各所述預(yù)設(shè)類型的正確執(zhí)行順序之間構(gòu)建映射關(guān)系,以獲得預(yù)設(shè)策略。32、第三方面,本技術(shù)實施例提供一種電子設(shè)備,包括:存儲器,處理器;33、所述存儲器存儲計算機(jī)執(zhí)行指令;34、所述處理器執(zhí)行所述存儲器存儲的計算機(jī)執(zhí)行指令,使得所述處理器執(zhí)行如上第一方面和/或第一方面各種可能的實施方式。35、第四方面,本技術(shù)實施例提供一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)中存儲有計算機(jī)執(zhí)行指令,所述計算機(jī)執(zhí)行指令被處理器執(zhí)行時用于實現(xiàn)如上第一方面和/或第一方面各種可能的實施方式。36、第五方面,本技術(shù)實施例提供一種計算機(jī)程序產(chǎn)品,包括計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如上第一方面和/或第一方面各種可能的實施方式。37、本技術(shù)實施例提供的數(shù)據(jù)查詢方法、電子設(shè)備、存儲介質(zhì)及程序產(chǎn)品,由于預(yù)先確定了命令的全部預(yù)設(shè)類型,并為各預(yù)設(shè)類型設(shè)定了對應(yīng)的正確執(zhí)行順序,形成了預(yù)設(shè)策略,所以通過接收終端發(fā)送的,包含有針對同一數(shù)據(jù)表的多個命令的查詢語句,就可從中獲取到多個命令,并可從各所述命令中解析出數(shù)據(jù)表標(biāo)識及各所述命令的類型。并通過獲取包含有多個預(yù)設(shè)類型及各預(yù)設(shè)類型的正確執(zhí)行順序的預(yù)設(shè)策略,就可根據(jù)所述預(yù)設(shè)策略以及各所述命令的類型,確定出各所述命令的執(zhí)行順序。從而通過判斷各所述命令的執(zhí)行順序是否與對應(yīng)的原始順序相同,就可兩者不同時構(gòu)建鏈表數(shù)組,并可按照所述執(zhí)行順序依次將各所述命令添加至所述鏈表數(shù)組中。進(jìn)而通過根據(jù)所述數(shù)據(jù)表標(biāo)識獲取數(shù)據(jù)表,就可基于添加命令后的鏈表數(shù)組和所述數(shù)據(jù)表獲取查詢結(jié)果。由此避免因輸入順序的邏輯錯誤導(dǎo)致執(zhí)行異常,提高數(shù)據(jù)表查詢的效率和成功率。當(dāng)前第1頁12當(dāng)前第1頁12