设为首页 收藏本站
查看: 849|回复: 0

[经验分享] DB2数据库、事务控制语言、系统控制语言、函数、嵌入式SQL(SQLJ)

[复制链接]

尚未签到

发表于 2016-11-17 08:16:32 | 显示全部楼层 |阅读模式
事务控制语言

1.事务提交命令: Commit;
2.事务回退命令: Rollback;
系统控制语言
1. 取消自动提交:
Update command options using c off;
2. 连接数据库:
Connect to 数据库名 user 用户 using 密码
3. 断开数据库连接:
Connect reset
Disconnect 数据库名
4. 列出数据库中的所有表:
  List tables for all
5. 列出数据库中的模式名为schema_name的所有表:
List tables for schema schema_name
6.查看表结构
Describe table 模式名.表名
Describe select * from 模式名.表名
7.查看表的索引
Describe indexes for table 模式名.表名
函数
(一) 列函数
列函数对列中的一组值进行运算以得到单个结果值。
1.AVG
返回某一组中的值除以该组中值的个数的和
2.COUNT (*)
返回非空列值的行数。
3.MAX
返回一组值中的最大值
4.MIN
返回一组值中的最小值
5. MOD
求余
(二) 标量函数
标量函数对值进行某个运算以返回另一个值。下列就是一些由DB2通用数据库提供的标量函数的示例。
1.ABS
返回数的绝对值
2.HEX
返回值的十六进制表示
3.LENGTH
返回自变量中的字节数(对于图形字符串则返回双字节字符数。)
4.YEAR
抽取日期时间值的年份部分
5.NULLIF(a,b)
如果a=b则值为空,否则值为a
6.COALESCE(a,b,c)
:返回第一个具有非空值的参数的值
7.UCASE(str)
小写字符转换成大写字符
8.ICASE(str)
大写字符转换成小写字符
9.LOCAT(str1,str2,n)
返回从第n个字符起,在str1中str2第一次出现的位置
10.SUBSTR(str,m,n)
返回从第m个字符起,,在str中的n个字符串
嵌入式SQL(SQLJ)
将SQL语句嵌入应用程序时,必须按以下步骤预编译应用程序并将其与数据库联编:
1.创建源文件,以包含带嵌入式 SQL 语句的程序
格式: # SQL{ SQL语句 } 。
2.连接数据库,然后预编译每个源文件。
语法: SQLJ 源文件名
例:
import java.sql.*;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;
#sql iterator App_Cursor1 (String empno, String firstnme) ;
#sql iterator App_Cursor2 (String) ;
class App
{
static
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
}
catch (Exception e)
{
e.printStackTrace();
  }
}
public static void main(String argv[])
{
try
{
App_Cursor1 cursor1;
App_Cursor1 cursor2;
String str1 = null;
String str2 = null;
int count1;
Connection con = null;
  String url = "jdbc:odbc:tese2";
DefaultContext ctx = DefaultContext.getDefaultContext();
if (ctx == null) {
try {
if (argv.length == 0) {
String userid ="tdl";
String passwd ="user";
con = DriverManager.getConnection(url, userid, passwd);
}
else if (argv.length == 2) {
// connect with default id/password
con = DriverManager.getConnection(url);
  }
else {
System.out.println("Usage: java App [username password]");
System.exit(0);
}
con.setAutoCommit(false);
ctx = new DefaultContext(con);
}
catch (SQLException e) {
System.out.println("Error: could not get a default context");
System.err.println(e) ;
System.exit(1);
}
DefaultContext.setDefaultContext(ctx);
}
  #sql cursor1 = { SELECT empno, firstnme from db2admin.employee };

System.out.println("Received results:");
while (cursor1.next()) {
str1 = cursor1.empno();
str2 = cursor1.firstnme();
System.out.print (" empno= " + str1);
System.out.print (" firstname= " + str2);
System.out.print ("");
}
cursor1.close();
#sql cursor2 = { SELECT firstnme from db2admin.employee where empno = :str1 };
System.out.println("Received results:");
while (true) {
#sql { FETCH :cursor2 INTO :str2 };
if (cursor2.endFetch()) break;
System.out.print (" empno= " + str1);
System.out.print (" firstname= " + str2);
System.out.print ("");
}
cursor2.close();
// rollback the update
System.out.println("Rollback the update...");
#sql { ROLLBACK work };
System.out.println("Rollback done.");
}
catch( Exception e )
{
e.printStackTrace();
}
}
}
注:本程序采用JDBCODBC桥的方式访问数据库,必须配置ODBC数据源。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301391-1-1.html 上篇帖子: 【郭林专刊】DB2数据库优化需要掌握的几条基本策略 下篇帖子: 示例:交互式 SQL 和等价的 DB2 UDB CLI 函数调用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表