$(db)sql;…

阅读(1555) 标签: 数据源, sql, 序表,

描述:

在数据源中执行指定的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的雇员。

Ø  insert语句

 

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部门员工的临时查询结果,再筛选其中的男性员工,结果返回游标。

 

相关概念:

db.query()