描述:
在数据源中执行指定的sql语句,返回结果集。
语法:
$(db)sql;…
备注:
在数据源db中执行指定的SQL,返回SQL的执行结果,其中db为数据源名称,(db)省略使用前一个语句指定的数据源,如果前一个语句没有指定,则从当前已连接的数据源中任意取一个使用。
当数据源名称为空时,认为该语句为简单SQL。
参数:
|
db |
数据源名称。 |
|
sql |
sql 语句, sql必须为select / insert / delete / update / with / cursor for select / cursor for with语句中的一种; cursor for select / cursor for with语句时返回游标。 sql中支持用?x表示引用外部单元格或变量x。 |
|
… |
sql中的参数值。 |
返回值:
序表/游标
示例:
Ø select语句
|
|
A |
|
|
1 |
$select * from EMPLOYEE |
(db)省略,不存在前一个语句指定的数据源,若当前没有已连接的数据源,则会报错 |
|
2 |
$(demo)select * from EMPLOYEE where EID=?;1 |
在demo数据源中查找EID为1的雇员信息。 |
|
3 |
$select * from EMPLOYEE where EID in (?) or GENDER=?;[1,3,5,7],"M" |
(db)省略,使用前一个语句中指定的数据源demo,查找EID分别为[1,3,5,7],性别为M的雇员。 |
|
|
A |
B |
|
|
1 |
$(demo)insert into EMPLOYEE (EID, NAME) values(?,?);100,"test" |
|
Insert语句。
|
|
2 |
[51,52,53,54] |
|
|
|
3 |
for A2 |
|
|
|
4 |
|
$insert into STATECAPITAL (STATEID) values(?);A3 |
(db)省略,使用前一个语句中指定的数据源demo,循环将A2序列中的成员作为参数传到B4语句中。 |
Ø delete语句
|
|
A |
|
|
1 |
$(demo)delete from EMPLOYEE where EID=? or EID=?;100,101 |
|
|
2 |
$delete from EMPLOYEE where EID in(?);[1,5,7,9] |
|
|
3 |
$delete from EMPLOYEE where NAME='Rebecca' |
(db)省略,并且不存在前一个语句指定的数据源,故从当前已连接的数据源中任意取一个使用。 |
Ø update语句
|
|
A |
|
|
1 |
$(demo)update EMPLOYEE set NAME=?, GENDER=? where EID=?;"testnew","M",100 |
|
|
2 |
$update EMPLOYEE set NAME='Peter' where EID=10 |
(db)省略,则使用前一个语句的指定数据源;将EID为10的雇员NAME更新为Peter。 |
|
3 |
$(sql)update Family set Name='Rose' where Eid=?;2 |
使用sql数据源,更新family中Eid为2的成员姓名。 |
Ø 引用外部单元格和变量
|
|
A |
|
|
1 |
>dept="HR" |
定义变量,变量名为dept,变量值为HR。 |
|
2 |
F |
A2格值为F。 |
|
3 |
$('demo')select EID,NAME,GENDER,DEPT from employee where DEPT=?dept and GENDER=?A2 |
通过?引用变量dept和单元格A2的值,返回结果如下:
|
Ø with语句
|
|
A |
|
|
1 |
$('demo')with HR_dept as(select * from employee where DEPT='HR') select * from HR_dept where GENDER = 'M' |
查询HR部门的男性员工信息。 |
|
2 |
$('duckdb')with t1 AS ( SELECT * FROM employee WHERE DEPT='HR' and SALARY< 5000) update employee set SALARY = SALARY*1.2 where EID in (select EID from t1) |
将HR部门工资低于5000的员工薪资调整为原来的1.2倍。 |
Ø cursor语句
|
|
A |
|
|
1 |
$('demo')cursor for select * from employee |
读取employee表数据,返回游标。 |
|
2 |
$('demo')cursor for with HR_dept as(select * from employee where DEPT='HR') select * from HR_dept where GENDER = 'M' |
先通过with定义HR部门员工的临时查询结果,再筛选其中的男性员工,结果返回游标。 |
相关概念: