2009-12-9

一:基本DML操作: 

COMMENT ON   COLUMN TABLENAME.COLNAME  is  ‘注释’;

 

 

用insert into插入两条数据: insert into table (columnname……) values ( ……) union  values ( ……)

修改跟新两处联合写 : 例:

  update STMA_CIGARETTE set(CIG_PACKAMOUNT,CIG_NICOTINIC)=(12,100.21) where ID=1

二:基本DB2理解: 

理解编目(catalog),编目就是在本地或远程建立客户端到服务器的数据库连接的目的。

db2 catalog tcpip node node_14  remote 192.168.25.14  server 50000

 

 注释:192.168.25.14  为远程ip地址;      node_14  为新建节点名。 

catalog db remoteDBName as localDBName at node testLocal

 

 

      DB2 LOB 大对象 使用

我们将创建一对表,分别存储一个 BLOB 和一个 CLOB:
  db2 => create table bookcovers (bookisbn varchar(10) not null, bookcover blob (100K) not null, primary key(bookisbn))

上面语句中的 100K 是声明我们需要存储的 LOB 的最大长度。此长度可以在 1B 到 2GB 中变化。当 LOB 被具体化时,应用程序将通过这个最大长度信息分配一个大小合适的缓冲区来容纳数据。
  您可以使用下面的后缀来表示长度的字节数目:
  K: 千字节 (1,024 个字节)
  M: 兆字节 (1,048,576 个字节)
  G: 千兆字节 (1,073,741,824 个字节)
  在我们的两个表中,书是通过主键 bookishn 来区分的。bookisbn 这列就是表示书的 ISBN 编号。
  创建一个表时,您可以指定 COMPACT 或 NOT COMPACT 选项。如果指定了 COMPACT 选项,您所存储的 LOB 数据所占空间将最小。然而,如果您向 LOB 列执行更新操作且该操作会增加该 LOB 的大小,则会有性能损失。另一方面,如果您指定 NOT COMPACT 选项(默认值),实质上您的 LOB 值就可以有增长的余地。
  如果您指定了 LOGGED 选项,那么 LOB 列上的更新都将被记录在系统日志中。指定 LOGGED 选项可以为存储的数据提供最大保护。这样就可以通过向前恢复过程来重建数据以防发生介质故障。然而这是以牺牲磁盘空间为代价的(更不用说写到磁盘所付出的时间代价了)。如果您没有指定一个选项,则默认选中 LOGGED 选项。
  通过 Java 插入 BLOB 十分简单。请看下面的代码样本:
  "INSERT INTO BOOKCOVERS VALUES(?,?)");File imageFile = new File("c:redbookcover.jpg");InputStream inputStream = new FileInputStream(imageFile);preparedStatement.setString(1," 0738425826");preparedStatement.setBinaryStream(2,inputStream,(int)(imageFile.length()));preparedStatement.executeUpdate();
  上面这个简短的代码片断从 C 盘根目录下取出名为 redbookcover.jpg 的文件并将其存储到数据库中。请注意我们是怎样将文件与一个 InputStream 相关联的。 此 InputStream 对象被用来填充针对 BLOB 列而存在的准备好的语句的值。此代码和本文中的其他代码都能够在本文对应的项目 zip 文件中找到。
  CLOB 的插入与以上所示 BLOB 的插入几乎一模一样。您可以参阅名为 ClobInsertion.java 的项目文件。您将在此文件中看到我们是以 CLOB 的形式来存储书的摘要的。而摘要是从名为 redbookabstract.txt 的文本文件中抓取的。
  我们已经插入了一些 LOB。现在我们怎样在 Java 中检索它们呢?这也是个很简单的过程。
  "SELECT BOOKCOVER FROM BOOKCOVERS WHERE BOOKISBN=?");preparedStatement.setString(1, "0738425826");ResultSet resultSet = preparedStatement.executeQuery();while (resultSet.next()) {// materialization of the BlobBlob blob = resultSet.getBlob(1);InputStream inputStream = blob.getBinaryStream();File fileOutput = new File("C:clonedredbookcover.jpg");FileOutputStream fo = new FileOutputStream(fileOutput);int c;while ((c = inputStream.read()) != -1)fo.write(c);fo.close();System.out.println("Blob retrieved");
  上面的代码段中,我们执行了一个准备好的语句,我们在该语句中选择了在前面代码段中插入的那个 BLOB。需要注意的一个要点就是直到下面这行代码之后,真正的 BLOB 才被具体化:
  InputStream inputStream = blob.getBinaryStream();
  我们使用输入流来将检索到的 BLOB 存储在一个名为 clonedredbookcover.jpg 的文件中。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值