随笔分类 - DB2
DB2数据库学习知识积累
摘要:数据库安装以后,db2报错如下: If 'db2' is not a typo you can run the following command to lookup the package that contains the binary: command-not-found db2bash: d
阅读全文
摘要:语法:NVL2(表达式1,表达式2,表达式3)如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值。例子:SELECT ID,NVL2(SEX,'非空','空值')FROM (VALUES(1,'男'),(2,'女'),(3,NULL)) AS T(ID,SEX)原始值转化后的值
阅读全文
摘要:此处以20180612为例子想得到上年末、上年同期、上月末这些时间点,只需要记住函数ADD_MONTHS、LAST_DAY、ADD_YEARS这些函数即可。上年末SELECT SUBSTR(TO_CHAR(ADD_YEARS(TO_DATE('20180612','YYYYMMDD'),-1) ,'YYYYMMDD'),1,4)||'1231' FROM SYSIBM.DUAL;上月末SELECT...
阅读全文
摘要:需求描述现在需要通过EXISTS中的语句来控制查询结果是否存在第一次实现SQLSELECT 1 AS ID,SUM(1) FROM(SELECT ID,NAME FROM (VALUES(1,'AA'),(2,'BB')) AS B(ID,NAME))WHERE EXISTS(SELECT 1 FROM SYSIBM.DUAL WHERE 1=2 )查询结果查询出来就发现会存在一条记录正确的写...
阅读全文
摘要:UTF-8 (8-bit Unicode Transformation Format) 是一种针对Unicode的可变长度字符编码,又称万国码,它包含全世界所有国家需要用到的字符,是国际编码,通用性强,是用以解决国际上字符的一种多字节编码。由Ken Thompson于1992年创建。UTF-8用1到4个字节编码UNICODE字符,它对英文使用8位/8Bit(即1个字节/1Byte),中文使用24位...
阅读全文
摘要:参考文献地址:https://blog.csdn.net/reaper1022/article/details/18601973Db2 的数据迁移,最常用的就是导入导出功能,而导入导出的命令貌似简单,实则内含玄机,千变万化,稍不留神,则错误百出,这儿就工作中常用到的命令,总结了一下,分享给大家!欢迎大家踊跃拍砖!J当然在这以前,我觉得有必要提及一点关于导入导出基础的知识! DEL:界定的ASCII...
阅读全文
摘要:需求描述例如:产品A01 2017-01-02到2017-01-03产品状态都是差,那么就是一条记录 但是在2017-01-04这天的状态不是差,到了5日这天又是差了 就是另外一条记录了 需求处理DROP TABLE tb;CREATE TABLE tb(product VARCHAR(100),dt TIMESTAMP,status VARCHAR(100));INSERT INTO tbSEL...
阅读全文
摘要:新建表DROP TABLE Industry;CREATE TABLE Industry(IndustryCode VARCHAR(40),IndustryName VARCHAR(100),ParentID VARCHAR(40))点击下载插入语句数据截图:现在数据是这个样子的,我们需要找出对应的层级关系,例如:实现SQL如下:SELECTA.IndustryCode AS CLASS01,A....
阅读全文
摘要:1.创建用户(切换到root用户下操作)useradd -g users -d /home/qinys -s /bin/bash -m qinys2.修改密码passwd qinys备注:此处修改的密码与用户名一致:qinys3.启动数据库Linux:/ # su db2inst1db2inst1@Linux:/> db2start02/07/2018 04:43:57 0 0 S...
阅读全文
摘要:1.启动数据库:db2start 2.创建数据库:create db TestDB using codeset gbk territory CN collate using identity 3.连接数据库:connect to TestDB user db2inst1 using db2inst1
阅读全文
摘要:切换到db2inst1用户下,执行db2命令报错如下: 解决办法: 首先进入到opt目录下查看bin的路径: 例如(这是我自己lInux的目录):/opt/ibm/db2/V9.7/bin export PATH=$PATH:/opt/ibm/db2/V9.7/bin 执行了以上语句后,再次输入db2命令,执行结果: 已经成功解决问题。
阅读全文
摘要:第一步:创建语法CREATE TABLE OLIVER_MAP(ID INT,COM_TYPE VARCHAR(100),COM_NAME VARCHAR(100),SR_UP DECIMAL(18,2),SR_LIM DECIMAL(18,2),RES VARCHAR(100));INSERT INTO OLIVER_MAP(ID,COM_TYPE,COM_NAME,SR_UP,SR_LIM,R...
阅读全文
摘要:摘选自:http://www.cnblogs.com/wanghonghu/archive/2012/05/25/2518604.html 1、db2可以通过SYSIBM.SYSDUMMY1、SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值。 2、CURRENT
阅读全文
摘要:1.数据环境准备 1.1 表CUST_INFO CST_ID CST_NM PASSWORD 1 郭啸天 123456 1.2 表CUST_INFO_DETAIL 2.各种连接 2.1 内联(inner join) 如果想把用户信息列写出来,那么一般这么写:SELECT * FROM CUST_IN
阅读全文
摘要:1.环境准备 CREATE TABLE DataInfo( ID_1 VARCHAR(10), ID_2 VARCHAR(10) ) INSERT INTO DataInfo VALUES('A','Oracle'); INSERT INTO DataInfo VALUES('B','sqlserver'); INSERT INTO DataInfo VALUES('C','DB2'); IN...
阅读全文
摘要:在DB2中建立存储过程时使用了隐式游标,在调用的时候报错如下: SQL0501N FETCH 语句或 CLOSE 语句中指定的游标尚未打开,或者游标标量函数引用中的游标变量尚未打开。 SQLSTATE=24501相关环境 ------表 CREATE TABLE GH(ID VARCHAR(100)); ----存储过程 CREATE PROCEDURE UP_GET_ALL BEGIN ...
阅读全文
摘要:场景描述: 数据库:DB_1,DB_2 现在在DB_1中建立NICKNAME为CST_INFO_NICK,并且该别名指向数据库DB_2的CST_INFO表,在DB_1中建立存储过程,该存储过程需要 INSER INTO CST_INFO表 原因分析: 在数据库DB_1中建立读操作还行,但是建立写操作的话,需要建立MAPPING,很麻烦,不推荐使用。...
阅读全文
摘要:1.准备测试数据 2.详解rank(),dense_rank(),row_number()的用法 2.1 rank()用法 2.1.1不分组进行排序查询 查询结果如下: 2.1.2对CST_NO分组后查询 查询结果如下: 2.2dense_rank()的用法 查询结果如下: 区别:dense_ran
阅读全文
摘要:1.登录数据库 2.进入db2top 进入到如下界面: 3.按下shift+u(图中U-Locks) 4.按下a键(小写的a) 接着输入上面红色圈住的ID,输入后回车 5.按F键 接着输入y,表就解锁了。
阅读全文
摘要:但是,当你在数据库中执行UPDATE语句的时候,上述表还是记录日志的,如果想不记录日志,请参照 https://www.cnblogs.com/OliverQin/p/10219108.html 1. DB2大数据处理不记录事务日志步骤: 建表需要添加属性“NOT LOGGED INITIALLY”
阅读全文