DB2数据库操作日常记录

IBIM的数据库

1、DB2 修改列属性 设置默认值

1.更改类型(设置为主键的列不能更改类型)

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DATA TYPE VARCHAR(32);  

2.更改默认值

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DEFAULT 'ABC';  

系统默认值:

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DEFAULT; --设置默认值  
ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" DROP DEFAULT; --删除默认

3.更改是否允许空值

ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET NOT NULL;  
ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" DROP NOT NULL;  

更改列类型,是否允许空值后,需要执行REORG TABLE “TABLENAME”;
更改默认值后,通常需要执行

UPDATE "SCHEMA"."TABLENAME" SET "COL" = DEFAULT WHERE "COL" IS NULL; 

4.sum

SELECT MANUFACTORY_ID as "manuFactoryId",
       DEVICE_ID       as "deviceId",
       DEVICE_NAME     as "deviceName",
       SUM(QTYD_01)    as "qtyd01",
       SUM(QTYD_02)    as "qtyd02",

  group by MANUFACTORY_ID,DEVICE_ID,DEVICE_NAME;

5.decimal

官网

    decimal(SUM(QTYD_01),2)    as  "qtyd01",

6.版本查看

-- 查看版本
 SELECT service_level, fixpack_num FROM TABLE(sysproc.env_get_inst_info()) as INSTANCEINFO

7.CASE WHEN

CASE WHEN QTYD_01  = 0 THEN 1 END


8.格式化字符日期格式

-- START_DATE = YYYYMMDDHH24
to_date(START_DATE, 'YYYY-MM-DD HH24')

9字符串转DB2日期格式

  TIMESTAMP_FORMAT(START_DATE, 'YYYYMMDDHH24')
  -- 日期格式可以直接加减日期值
START_DATE + 1 DAY - HOUR(START_DATE) HOURS

10.时间格式只保留日期

 DATE (START_DATE) as START_DATE,  
 --   2023-11-01 00:00:00.000000 转为2023-11-01

11. substr的不同

substr是没有为0的下标的,是从1开始的
在这里插入图片描述

12. 拼接两个字段并添加中间字符 || 运算符

也可以添加

    PACKING_TYPE || '_' ||PACKING_SPECIFICATION as "packageType"
SELECT CONCAT(field1, ' ', field2) as combinedField
FROM yourTable;

参考文章

个人笔记,不同意见,望有交流
直接可以点击跳转连接

作者: RyanDYJ

参考文章

个人笔记,不同意见,望有交流
直接可以点击跳转连接

作者

posted @ 2023-11-29 11:12  啧啧啧|(* ̄ ̄*)  阅读(43)  评论(0)    收藏  举报  来源