数据库与SQL

添加数据库

在设置中心的【外部数据】栏中【+数据库】,在表单中给此数据库起个简单好记的唯一名,并填写连接数据库必要的信息。可用点【测试连接】检查是否能连接得上。

能连上数据库了就可以在后端服务中调用$sql.数据库名(SQL语句, 占位值),但还不能在前端调用;SQL也只能是带参数的预编译语句,虽然无法依赖SQL选项提供动态化,依然可以自行动态拼装,但要注意SQL注入风险,不能信赖前端传进来的任何参数。

查看数据

点击左侧导航栏的【数据表】可以获取数据库的所有数据表并查询其中的数据。

添加SQL

点击【+SQL】添加SQL语句并起个简单好记的唯一名,不同数据库下的SQL也不能重名。前端后端都可以直接调用此SQL:$sql.SQL名(选项, 缓存, 回调)
缓存传入0时表示放弃浏览器缓存而总是从数据库中读取(后端调用时传入0无意义),大于0时(小时数,范围: 0.1 ~ 5)指示服务器把搜索结果放入缓存,以便下次快速读取。
前端取得数据后会执行回调表达式,$x是返回的数据。

SQL约定

数据操作语句(以INSERT/UPDATE/DELETE开头)只返回结果数组中的第一条数据。

COUNT语句如果只返回一条数据且只有一个数字,那将只返回此数字(无其它字段)。

如果查询语句有明确指明只查一条数据时(含有LIMIT 1TOP 1)则只返回第一条数据。
{limit}占位符:
limit时表示数据量不大,希望一次性取得所有数据,此时返回的是数据数组;
limit = 1时只返回一条数据对象(或404);
limit > 1时表示数据量比较大,后续希望通过自定义查询/翻页进一步过滤数据,此时返回的是复合数据结构:

{
    arr: 数据数组,
    all: 多次查询结果合并后的数组, 数据表格的无限滚动会用到,
    count: 数据总数,
    O: 选项,
    limit: 限定返回的数据数,
    skip: 查询跳过的条数,
    find: 再次查询的简便函数。
}

$v.变量.find(Q, O):选项O会跟原O合并,查询条件Q会跟O.where合并,如果都不填则用原O重新查询(绕开前端缓存);O默认是{ skip: 0 },即从头重搜。

由众触低代码平台生成和驱动