db2中表的一些常用操作语句。

下面为工作中有时候遇到的基础的数据库语句,感觉有用的话,点下赞,没用的话,勿喷。

1.表中添加字段:

alter table 表名 add column 字段名 字段类型

2.给表中的字段重新命名:

altet table 表名 rename column 原字段名 to 现字段名; 

3.修改表名:

rename table  旧表名  to 新的表名;

4.添加联合主键:

alter table 表名 add constraint  联合主键名称   primary key(主键1,主键2);

5.删除表中的主键:

alter table 表名 drop primary;

添加主键:

ALTER TABLE WFI_JOIN ADD CONSTRAINT pk_id_value PRIMARY KEY (INSTANCEID,PK_VALUE);

6.修改表中的字段类型或者长度:

       alter table 表名 alter column 字段名 set data type 字段类型(或字段长度);

7.创建联合索引:

 CREATE INDEX    IDX_RPT_SDSX_XDHS_01 ON     RPT_SDSX_XDHS    (  STAT_MON ASC,    MAIN_BCH ASC,MAIN_USR  ASC )    ALLOW REVERSE SCANS;

删除索引:ALTER TABLE NCMIS.WFI_JOIN DROP CONSTRAINT SQL170704023230710;

7.添加索引

create index 索引名称 on 表名(字段名称);//给表中的某个字段加上索引(索引名称要见名知意,index_XX)

8.重构表

        db2 reorg table 表名;

9.字段加上注释

        comment on column 表名.字段名   is   '注释名'

7.创建联合索引:

 CREATE INDEX    IDX_RPT_SDSX_XDHS_01 ON     RPT_SDSX_XDHS    (  STAT_MON ASC,    MAIN_BCH ASC,MAIN_USR  ASC )    ALLOW REVERSE SCANS;

删除索引:ALTER TABLE NCMIS.WFI_JOIN DROP CONSTRAINT SQL170704023230710;

5.添加联邦:     

          select * from syscat.servers;-查看库所使用的联邦

          CREATE NICKNAME YCLOANS.MONTH_REPORT FOR YCSER.NCMIS.MONTH_REPORT; 

           ALTER NICKNAME NCMIS.MONTH_REPORT ADD PRIMARY KEY (loan_no);

            select * from YCSER.YCLOANS.MONTH_REPORT;-- 用这个查一下能不能连上

6.runstat/REORG表

 call Sysproc.admin_cmd('runstats on table NCMIS.ACC_LOAN_ZX_CP with distribution and detailed indexes all');

call Sysproc.admin_cmd('reorg table ncmis.wfi_join');

                        db2 "load query table RPT_SDSX_SXNX"; 此时提示
                        Tablestate:
                        Load Pending
                       只需执行命令:db2 "load from /dev/null of del terminate into RPT_SDSX_XD" 解挂即可

7.全库runstate :select 'RUNSTATS ON TABLE ' || table_schema||'.'||table_name ||';' from sysibm.tables where table_schema='NCMIS';

8.执行存储过程:

             db2 -td@ -f 执行的文件名称

9.--保留两位小数 select CAST('10000000.23' AS DECIMAL(16,2)) AMT from SYSIBM.dual;

10.在db2中想获取前几行:select * from s_com_cde where com_typ ='STD_ZB_TEMPLET_TYPE' fetch first 100 rows only;

11.添加联合主键:alter table XXX add constraint  pk_XXXX primary key (A,B);

                                 ALTER TABLE NCMIS.WFI_JOIN DROP CONSTRAINT SQL171204125113680;

                                 ALTER TABLE NCMIS.WFI_JOIN ALTER COLUMN PK_VALUE SET NOT NULL;

12.导入导出文件del

db2 "export to    ./CCR_RULE_INFO.del of del modified by codepage=1208 select * from ncmis.CCR_RULE_INFO";

db2 "load from  /home/ncmis/s_usr.del of del modified by codepage=1208  delprioritychar  usedefaults  insert into ncmis.s_usr nonrecoverable"---数据量大使用此导入

  db2 "import from prd_rul_set.del of del MODIFIED BY DELPRIORITYCHAR  commitcount 1000000 insert into ncmis.prd_rul_set"

13.--导出联邦DDl    

        db2look -d xdyydb -e -o dbfile20180508 -i ncmis -w ncmis -z ncmis

14.--导出sequenceDDl  

          db2look -l xdyydb -e -o dbfile20180508 -i ncmis -w ncmis -z ncmi

15.--导出表结构

          db2look -d xdyydb -e -t temp_cus_blk1 -o temp1.dml

16.创建序列

CREATE SEQUENCE "NCMIS   "."CMIS_SEQ_4001_1008" AS INTEGER

     MINVALUE 1 MAXVALUE 99999999

     START WITH 301 INCREMENT BY 1

     CACHE 100 CYCLE NO ORDER;

    序列号:VALUES(nextval for SEQ_CAL_PK), VALUES(nextval for CMIS_SEQ_6001_1028)

    举例:select  ('A294F301092018051412121212'||nextval for SEQ_CAL_PK) pk_id, c.RULE_NO  from  S

    重置序列号:ALTER SEQUENCE LS_0001  RESTART WITH 1

17.建表使用表空间: IN  XDYYDB_DAT01_TBS INDEX IN XDYYDB_IDX01_TBS   ORGANIZE BY ROW;

18.//空备数据

 连接数据库: db2 connect to xdhsdb

         查看表空间状态: db2 list tablespaces show detail

     正常状态为 0x0000

   处于 0x0004 停顿的独占

      解决: db2=》select tabname from syscat.tables where tablid=50 通过锁住的id号找出那个 tabName

         db2=》 quiesce tablespaces for table tabName reset 执行该命令清除状态

   处于 0x0020  备份暂挂

       db2 backup database dbName tablespace tabSpaceName online to /dev/null 

db2 list tablespaces show detail

db2 backup database XDYYDB tablespace XDYYDB_IDX01_TBS online to /dev/null

 

19.查看端口正常否:

netstat -an|grep 9080          --

netstat -tunlp| grep 9101

20.db2top -d cmisdb

db2 "force application()"//杀死单个进程

db2 "force application all"//杀死全部进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值