$(db)sql;…

阅读(412) 标签: dbsql,

本章介绍$(db)sql;...函数的多种用法。

$(db)sql;…

描述:

在数据源中执行指定的sql语句,返回结果集。

语法:

$(db)sql;…

备注:

在数据源db中执行指定的SQL,返回SQL的执行结果,其中db为数据库连接,(db)省略使用前一个语句指定的数据源,如果之前没有指定则从当前已连接的数据源中任意取一个使用。

参数:

sql

sql 语句. 例如,select * from table;sql必须为select/insert/delete/update语句

(db)

数据源名称

sql中参数值

返回值:

sql执行结果组成的序表

示例:

Ø  select语句

 

A

 

1

$select * from EMPLOYEE

报错:数据库连接工厂不存在

2

$( demo)select * from EMPLOYEE where EID=?;1

查找EID1的雇员信息

3

$select * from EMPLOYEE where EID in (?) or GENDER=?;[1,3,5,7],"M"

查找EID分别为[1,3,5,7],性别为M的雇员

 

Ø  insert语句

 

A

B

 

1

$(demo)insert into EMPLOYEE (EID, NAME) values(?,?);100,"test"

 

2

[51,52,53,54]

 

3

for A2

 

 

4

 

$insert into STATECAPITAL (STATEID) values(?);A3

 

 

Ø  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'

 

 

Ø  update语句

 

A

 

1

$(demo)update EMPLOYEE set NAME=?, GENDER=?

where EID=?;"testnew","M",100

 

2

$update EMPLOYEE set NAME='Peter' where EID=10

 

3

$(sql)update Family set Name='Rose' where Eid=?;2

使用sql数据源,更新familyEid2的成员姓名

相关概念:

db.query()

$(db)sql;…

描述:

利用集算器jdbc,在数据库中执行指定的sql语句,返回结果集。

语法:

$(db)sql;

备注: 

在指定数据库db中,执行sql语句,分号后面的为使用的参数,执行后返回结果集。执行时,用st. executeQuery()执行,并返回结果集。注意数据库db需要已经连接。语句中的参数,固定以arg开头,可能没有。

JDBC中以selectwith开头的字串被解释为简单SQL去执行,如果字串后面有()则被解释为dfx文件名。例如:selectTab() 这样则表示dfx文件名。

参数:

sql

sql 语句. 例如,select * from table;sql必须为select/insert/delete/update语句

(db)

数据源名称

sql中参数值

返回值:

结果集

示例:

public void testDataServer() {

Connection con = null;

java.sql.Statement st;

try{

Class.forName("com.esproc.jdbc.InternalDriver");

con= DriverManager.getConnection("jdbc:esproc:local://"); 

st=con.createStatement();

//查询demo数据库student表中年龄大于16的学生信息

ResultSet set = st.executeQuery("$(demo)select * from STUDENTS where AGE>?;16");

printRs(set);

}

catch(Exception e){

System.out.println(e);

}

finally{

//关闭连接

if (con!=null) {

try {

con.close();

}

catch(Exception e) {

System.out.println(e);

}

}

}

}

$()sql;…

描述:

通过简单sql语句查询外部表数据。

语法:

$()sql; 

备注:

从外部数据文件中查询数据;外部数据文件可以直接以【文件名.后缀名】作为表名来使用,使用的语法类似于从数据库中查询用的SQL语句,称为简单SQL。外部数据可以类似普通序表一样用来查询,称为外部表。

目前支持的外部表包括:txtcsvxlsxxlsbtx(集文件)ctx(组表文件)。外部表文件均认为有标题,查询外部表时既可以用相对路径也可以用绝对路径,相对路径相对于集算器主目录。

关于简单SQL支持的所有语法,请参考函数db.query(sql)中的介绍。

参数: 

sql

简单sql 语句. 例如,select * from filename.txt

简单sql中的参数值

注:$()sql;…中的括号可以省略。

返回值:

序表

示例:

 

A

 

1

$()select * from Persons.txt

查询外部表Persons.txt中的数据,结果返回序表

2

$select * from D:/Orders.txt

使用绝对路径方式查询,结果返回序表

3

$select * from Persons.csv where Id_P=? or Id_P>?;2,2

查询Id_P大于2或等于2的数据

4

$select  *  from Persons.txt  P  join Orders.txt  O  on P.Id_P = O.Id_P

多表联合查询

 

5

$select  distinct(Id_P)  from Orders.btx

去重复值查询