作为后端开发者,编写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公众号的系列课程,从认识低代码到参与到低代码开发的潮流中,共同推动低代码时代的繁荣发展。
易搜网络技术公司 » YonBuilder低代码实战:YonQL数据查询小Case,让SQL查询变简单