YonBuilder低程式碼實戰:YonQL資料查詢小Case,讓SQL查詢變簡單

YonBuilder發表於2021-12-22

     作為後端開發者,編寫 SQL 語句對資料庫操作是家常便飯,時不時各種 SQL 語句滿天飛。在低程式碼時代,資料維護有沒有更高效的方法? YonBuilder 低程式碼開發平臺提供了 YonQL 能力,本文通過 YonQL 查詢帶大家領略 YonBuilder 資料維護的奧祕。

YonQL是啥?和SQL啥關係?

提到YonQL,大家本能的想到這是啥,和SQL有啥關係。首先,YonQL 是YonBuilder標準版開發者查詢資料的橋樑。YonBuilder標準版是基於公有云開發,標準版建立的資料表在平臺的系統庫中,開發者不能直接運算元據庫資料,所以有了 YonQL  

另外,YonQL和SQL有很深的關聯。YonQL的語法類似於主流資料庫 My SQL, 有My SQL基礎的開發者可以輕鬆上手,對於沒有資料庫開發基礎的開發者也可以輕鬆掌握YonQL。

五個常見查詢語法詳解YonQL和SQL的區別

本文主要講解了YonQL的五個查詢語法:簡單查詢、分頁查詢、子查詢、關聯查詢、組合查詢。緊接著通過一個使用場景,讓開發者直觀感受YonQL的用法。

首先建立主、子、孫三個實體,包括了主、子、孫三張後設資料,每個後設資料裡各分別建立兩個屬性:一個是code,一個是name,通過後端函式學習YonQL的語法。

建立主、子孫3個實體

第一個語法:簡單查詢,語法與MySQL基本一致。 通過select 指定表裡的一些屬性,然後from這張表,這個表來自於主實體的URI,對應MySQL資料庫的表名,通過這張表非常方便的查詢。

圖:簡單查詢語句

YonQL和MySQL語法的區別是like 模糊查詢,MySQL可能只有一個like ,如果是雙側某個查詢,左右各加一個百分號 % 。如果是左側某個查詢,就在左側加1個百分號,同理,右側查詢也一樣。YonQL 把like 劃分的更細緻,分為left like(左查詢)和right like(右查詢),like關鍵字中不需要左右新增百分號,like就表示左右都是模糊查詢。

第二個語法:分頁查詢: 和MySQL的用法大同小異,也是select * from實體的URI代表的表名,排序、分組和MySQL的語法也是一樣的。區別點在於limit,MySQL中的limit第一個引數代表資料下標,第二個引數代表下標後面返回幾條資料。YonQL的Limit第一個引數代表底層已經計算好的分頁,2就是返回的頁數,後面第二個引數就是每頁要返回的數量。比如,limit 2,6,意思是計算完之後一頁有6條資料,一共有2頁 。2、6 相當於返回第二頁的資料,這樣開發人員不用寫一個演算法計算這個分頁。

圖:分頁查詢語句

第三個語法:子查詢 , 語法和MySQL一樣的,就是兩個簡單查詢的一個組合。它的where條件就是一個子查詢,把這個子查詢的一個結果集作為外面這個表查詢的一個條件,進行資料過濾。

圖:子查詢語句

第四個語法:關聯查詢, 邏輯思想和MySQL一樣,兩個後設資料有關聯關係的,比如主子表,還有單選引用,A實體單選引用B實體,才可以使用YonQL的關聯查詢,通過On關鍵字進行關聯,返回的select欄位,孫表和子表根據業務需求返回。

圖:關聯查詢語句

第五個語法:組合查詢, 亮點是可以直接返回樹形結構的資料,比MySQL有優勢。MySQL查詢資料時只能把所有欄位按照平級結構返回。如果頁面需要樹形結構,需要開發人員通過程式碼實現,比如,把所有返回的資料進行遞迴,構造想要的樹形結構。YonQL組合查詢可以通過一條SQL去返回想要的樹形結構。

下面程式碼中,Select from這張主表,Where條件是邏輯過濾,dr=0表示邏輯刪除,0代表有效資料,是業務庫裡共同的屬性。

圖:組合查詢語句

查詢主表時先返回主表的id、Code和name,子表的資料是一個list物件和主表的欄位是並列關係。需要在select結果集裡面寫一個子查詢(不是真正的子查詢,是查詢子表中的屬性,放到主表中呈現樹形結構)。

 

圖:主、子、孫表的引用關係

如上圖所示,在主表下面建立一個子表的時候,子表儲存併發布後,在主表中多出一個sonlist屬性。Sonlist有兩層含義:一個是作為主表中的一個屬性欄位;另外可以作為子表的物件(也可以認為是一個邏輯子表),帶出子表的資料。孫子表的邏輯關係和主子表一樣,孫子表返回的屬性和子表的欄位並列,呈現子孫結構。

圖:API測試

建立一個API函式,做一個API測試,模擬查詢一個SQL返回的結果集,給大家演示一下主子孫的資料結構。

應用場景: 返回主子孫的資料展現到另外一個主子孫的單據上,用到這種組合查詢方式。

掌握了上述五中查詢方式的語法規則,即便是複雜的業務查詢,也可以靈活運用這5中查詢方式實現業務需求。

YonQL 關聯查詢語法案例演示

通過YonQL關聯查詢資料表返回一個結果集,這個結果集對其他的微服務模組都能用到,所以傾向於釋出成一個API,方便大家呼叫,不用再編寫裡面的邏輯。

首先關聯兩張表,建立黨員和黨組織兩條測試後設資料,黨組織作為一個參照進行了釋出,在黨員屬性中有一個欄位單選引用了黨組織,建立了單選引用關係。

建立黨員和黨組織兩條後設資料

通過下方程式碼可以看到YonQL的語法規則,如,select加上一些欄位from剛剛建立的黨員表(查黨員的資料),用left join左關聯黨組織表,通過On關鍵字把黨組織ID和黨員ID進行關聯,這個介面需要傳入引數(引數是黨組織名稱,通過where條件對資料進行過濾),通過request獲取到傳入的黨組織引數。

圖:黨員和黨組織關聯查詢語句

為了做一個例項演示,提前建立了一個API函式測試呼叫SQL。

建立API測試函式

 

圖:輸入查詢的引數“三里屯黨組織”,右側顯示返回該組織下的黨員資料結果

通過上面的案例,重點給大家介紹了YonQL的用法,YonQL是後端函式的一個能力,使用的場景非常多,凡是用到後端函式的地方都可以使用YonQL。比如,在卡片的系統按鈕中新增一個規則,新增按鈕校驗資料庫中的欄位手機和郵箱必填其一,需要一個查詢校驗,就可以根據校驗規則寫一個YonQL。

還有一種情況,可以在新新增的按鈕上建立後端函式,實現自己想要實現的能力。至此,本次YonQL查詢語法已經講解完畢。

開發者轉型的心得體會

從一個傳統後端開發者到低程式碼技術支援專家,對於低程式碼開發有三點體會:

1、受眾人群不同。低程式碼開發平臺面向的是更廣泛的人群,任何沒有程式設計基礎的都可以學會使用,不侷限於專業的程式設計師,企業的運營、銷售、產品、實施、管理者都可以在短時間內學會搭建一個應用系統。

    2、開發模式不同。低程式碼開發平臺最主要的作用就是搭建軟體系統的效率較快,不需要開發團隊完成基礎的框架設計,比傳統程式設計開發速度提升很多倍。

    3、成本不同。對於一些規模較小,且沒有很大的技術團隊,或者公司某個業務部門不能 及時得到 IT部門協助,又需要 快速構建 應用程式來響應自己的需求,低程式碼 是一個 不錯的方案。

    總之,合理並且有效地運用低程式碼,不僅可以讓我們工作更加高效,還能最大程度保證團隊目標的達成。

歡迎廣大開發者搜尋並關注YonBuilder公眾號的系列課程,從認識低程式碼到參與到低程式碼開發的潮流中,共同推動低程式碼時代的繁榮發展。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970284/viewspace-2848841/,如需轉載,請註明出處,否則將追究法律責任。

相關文章