DB2数据库
春秋战国程序猿
仓廪实而知礼节,衣食足而知荣辱
展开
-
DB2数据库常用SQL命令学习总结汇总
DB2数据库常用SQL命令学习总结汇总DB2修改表中字段长度:ALTER TABLE STUDENT ALTER NAME SET DATA TYPE VARCHAR(500);DB2查询表结构:SELECT * FROM SYSIBM.COLUMNS WHERE TABLE_NAME='STUDENT' AND COLUMN_NAME='NAME';SELECT原创 2016-05-12 18:58:50 · 2090 阅读 · 0 评论 -
SQL技巧:如何统计博客每天的总点击量和每天的总点击人数
最近由于工作安排,需要统计一篇火爆的博客每天的总点击量和每天的总点击人数。其实主要考验的就是编写SQL的能力。这里我们需要用到GROUP BY 和 COUNT关键字,关于这2个关键字的用法,网上有很多,这里不再赘述。-- 分组统计每天的总点击量SELECT DISTINCT to_char(TB.CRT_TIME, 'yyyy-MM-dd') DATE, COU原创 2017-08-02 16:54:18 · 8511 阅读 · 0 评论 -
DB2-407报错中如何快速定位问题 SQLCODE: -407, SQLSTATE: 23502
SQLCODE: -407, SQLSTATE: 23502:这个报错的准确描述是这样的,不能把NULL值插入到定义为NOT NULL的列中。也就是违反了完整性约束异常。在开发中,这个报错,我们会经常遇到。问题也很简单,就是“不能为空的列,空了”。对于一个字段个数很多的表来说,排查起来有难度。如何精准定位呢?其实也很简单。 我们可以从报错信息中了解更多详情,这些详情可以帮原创 2017-08-02 15:54:06 · 55402 阅读 · 0 评论 -
DB2数据库查询自增长序列的2种方式
前言:虽然SQL有一套公共的标准,但是不同的数据库生产商在实现上还是存在较大差异,以序列为例,如果查询序列,ORACLE和DB2就存在较大差异。这种差异,对于开发人员或者运维人员来说,是很痛苦的。最直接的影响就是,我们每次使用时都要百度或者谷歌一下。-- 首先,我们创建一个名称为SEQUENCE_AUTO_INCREMENT的序列DROP SEQUENCE SEQUEN原创 2017-06-07 11:59:22 · 12112 阅读 · 0 评论 -
(干货)DB2中关于百分号%的转义处理问题
(干货)DB2中关于百分号%的转义处理问题 网上有很多关于DB2转义字符的说明,不过都不是拿来就可以用的。周围的同时遇到这个问题了,然后去网上查了以后,还是解决不了,我很纳闷。于是我也去搜了一下,果然,网上的说法基本上都是这种:select * from table where name like '%\%%' escape '\'; 然而,我们通常都是从前原创 2017-05-06 20:48:08 · 2837 阅读 · 0 评论 -
left join连接2个查询结果集的用法
首先,可以确切的告诉大家,left join可以连接2个查询结果集。我们通常的用法是,在left join的左边是一个查询结果集,然后右边是一个单表。如下:SELECT S.STUDENT_NAME STUDENT_NAME, S.STUDENT_NO STUDENT_NO, F.ADDRESS ADDRESSFROM( SELECT G.GRADE_NO GRADE原创 2017-03-26 14:07:54 · 40227 阅读 · 4 评论 -
数据库查询常用关键字JOIN与LEFT JOIN/UNION与UNION ALL/GROUP BY
今天来回顾一下数据库查询中,常用的几个关键字。关注这些细节,对于我们写出高效的SQL语句,还是有帮助的。 1,JOIN 与 LEFT JOINJOIN,等价于INNER JOIN,是强关联。JOIN只查询出左表能够在右表中匹配到记录的行。也就是说,左边的记录,只有在能够匹配到右边中记录的情况下,才会显示。LEFT JOIN,是弱关联。LEFT JOIN会查询出左原创 2017-03-11 15:38:16 · 3129 阅读 · 1 评论 -
写高效的SQL语句
SQL优化总结1,where的条件顺序影响查询速度 WHERE子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。2,SELECT * FROM TABLENAME WHERE A = "A" AND 1=1如何优化?3,不要S转载 2017-02-19 17:49:23 · 3898 阅读 · 0 评论 -
使用数据库序列生成主键
一,什么是序列 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下: CREATE SEQUENCE 序列名 [INCREMENT BY n转载 2017-02-19 17:29:59 · 9982 阅读 · 0 评论 -
mybatis + DB2数据库常见报错:jdbc type 0 not yet supported
mybatis + DB2数据库常见报错:jdbc type 0 not yet supported。 最近做项目,我也遇到了这个问题,并且多次遇到了,有时候改改这里,动动那里,问题也解决了,但是不搞清楚这个问题的根本原因,还是不放心。我的情况是这样的:进行一个数据库查询操作,会向后台传递一个参数,SQL大致是这样的:SELECT PRODUCT_NA原创 2017-02-19 16:42:54 · 4025 阅读 · 0 评论 -
关于Execl导入大数据量文件的处理思路(实战经验)
关于Execl导入大数据量文件的处理思路(实战经验)Execl作为微软的早期产品,功能强大的同时,性能也相应的差很多,处理大数据量时尤其明显。最近项目中有一个需求,要求导入人员信息,Execl的数据量大概5000左右,但是会关联其他表,查询出100万级别的数据量,插入到值表。并且这个过程是系统管理人员每月不定期在页面导入的。系统设计的要求是10秒内完成。简单说一下我们的原创 2017-12-16 15:39:35 · 6252 阅读 · 1 评论