WEB开发网
开发学院数据库DB2 DB2 9 应用开发(733 考试)认证指南,第 2 部分 阅读

DB2 9 应用开发(733 考试)认证指南,第 2 部分

 2009-01-13 16:39:48 来源:WEB开发网   
核心提示: SELECT UNIT_PRICE, CURRENCY('UK',UNIT_PRICE) FROM PRODUCT WHERE PRODUCT_ID = ?FENCED 和 NOT-FENCED 模式可以用 C/C++、Java 语言或 OLE 创建函数,函数可以以 FEN

SELECT UNIT_PRICE, CURRENCY('UK',UNIT_PRICE) FROM PRODUCT WHERE PRODUCT_ID = ?

FENCED 和 NOT-FENCED 模式

可以用 C/C++、Java 语言或 OLE 创建函数。函数可以以 FENCED 或 NOT-FENCED 模式运行。在迁移到 NOT-FENCED 模式之前,应该用 FENCED 模式开发函数。NOT-FENCED 进程更快一些,因为它使用 DB2 代理内存,而 FENCED 进程在它自己的 db2udf 进程中运行。FENCED 进程使用共享内存与调用代理通信。FENCED 函数存储在 sqllib/function 中,而 NOT-FENCED 则存储在 sqllib/unfenced 中。

DB2 提供的 SQL 函数

现在来看一些 SQL 函数的例子。第一个例子从一个表中选择所有书的标题和价格。如果该书的价格为 NULL,则将其价格显示为 0.00。

SELECT TITLE, COALESCE(PRICE, 0.00) AS PRICE
FROM TITLES;

接下来的例子返回的结果是公司的名称以及公司名称中所含的字符数:

SELECT COMPANYNAME, LENGTH(COMPANYNAME)
FROM CUSTOMERS

现在看看如何返回每个作者的名字(first name)最右边的 5 个字符:

SELECT RIGHT(AU_FNAME, 5)
FROM AUTHORS

下一个例子使用 project 表,将宿主变量 AVERAGE (decimal(5,2)) 设置为名为 D11 的部门(DEPTNO)中项目的平均工资水平(PRSTAFF)。

SELECT AVG(PRSTAFF)
INTO :AVERAGE
FROM PROJECT
WHERE DEPTNO = 'D11'

DB2 SQL Reference 手册中还定义了很多其他的 SQL 函数。如果 DB2 没有提供适当的函数,您总是可以编写自己的 SQL 函数。

使用公共表表达式

公共表表达式 是一个本地临时表,可以在一条 SQL 语句中引用多次。这个临时表只能存在于定义它的 SQL 语句的生命周期内。每次公共表表达式被引用时,其结果都是相同的。临时表是在 SQL 语句中用 WITH 子句定义的。下面是具体的语法:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:DB 应用开发 考试

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接