本章介绍$(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 |
查找EID为1的雇员信息 |
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数据源,更新family中Eid为2的成员姓名 |
相关概念:
描述:
利用集算器jdbc,在数据库中执行指定的sql语句,返回结果集。
语法:
$(db)sql;…
备注:
在指定数据库db中,执行sql语句,分号后面的…为使用的参数,执行后返回结果集。执行时,用st. executeQuery()执行,并返回结果集。注意数据库db需要已经连接。语句中的参数,固定以arg开头,可能没有。
在JDBC中以select或with开头的字串被解释为简单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。外部数据可以类似普通序表一样用来查询,称为外部表。
目前支持的外部表包括:txt、csv、xlsx、xls、btx(集文件)、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 |
去重复值查询 |