在DB2中如何實現Oracle的相關功能(四)

类别:数据库 点击:0 评论:0 推荐:

 在DB2中如何實現Oracle的相關功能(四)
作者﹕CCBZZP
        在現實的應用中大家可能經常會遇到在DB2中如何實現Oracle的某些功能﹐
在此我簡單地總結一下﹐實現某一功能可能會有很多種方法﹐在此就沒有全部列出﹐
歡迎大家繼續﹐以便和大家共享﹐共同探討﹐共同近步﹗(以下主要以Oracle
8I,9I和DB2 7.X為例)。
1.如何實現分頁顯示的Oracle和DB2的寫法
  Oracle 可以這樣實現﹕
  SQL>select rownum,* from BSEMPMS where rownum >=5 and rownum <=100;
  DB2 可以這樣實現﹕
  select * from (select ROW_NUMBER() over() as a, db2admin.bsempms.* from
  db2admin.bsempms) as temp where a>=5 and a<=100 ;
2.利用別的表創建表的Oracle和DB2的寫法
  Oracle 可以這樣實現﹕
  SQL>create table a as select * from b ;
  DB2 可以這樣實現﹕
  create table a like b ;
3.如何更改用戶密碼的Oracle和DB2的寫法
  Oracle 可以這樣實現﹕
  SQL>alter user user123 identified by password_new;
  DB2 可以這樣實現﹕
  connect to dbname user db2admin using oldpassw new newpassw confirm newpassw ;
4.如何增加用戶的Oracle和DB2的寫法
  Oracle 可以這樣實現﹕
  SQL>create user user123 identified by password_new;
  DB2 可以這樣實現﹕
  添加用户:
 “开始/设置/控制面板/用户”添加一个用户名(例:db2admin)
  分配权限:
  grant dbadm on database to user 用户名
5.兩個結果集互減的函數的Oracle和DB2的寫法
  Oracle 可以這樣實現﹕
  SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW;
  DB2 可以這樣實現﹕
  SELECT * FROM BSEMPMS_OLD EXCEPT SELECT * FROM BSEMPMS_NEW;
  SELECT * FROM BSEMPMS_OLD EXCEPT ALL SELECT * FROM BSEMPMS_NEW;
6.兩個結果集互加的函數的Oracle和DB2的寫法
  Oracle 可以這樣實現﹕
  SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW;
  SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW;
  SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW;
  DB2 可以這樣實現﹕
  SELECT * FROM  DB2ADMIN.BSEMPMS
  UNION
  SELECT * FROM  DB2ADMIN.BSEMPMS ;
  SELECT * FROM  DB2ADMIN.BSEMPMS
  UNION  ALL
  SELECT * FROM  DB2ADMIN.BSEMPMS ;
7.如何找数据库表的主键字段的名称的Oracle和DB2的寫法
  Oracle 可以這樣實現﹕
  SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and   table_name='TABLE_NAME';
  DB2 可以這樣實現﹕
  select colnames from syscat.indexes where tabname='TABLE_NAME' ;

  待續...

 

 


 

本文地址:http://com.8s8s.com/it/it21196.htm