数据库常忽略小问题汇总

1.数据库查找信息--找不到该信息

使用情况:在使用数据库时,在用sql进行查询时,需要注意数据库字段下的关键字的大小写,不匹配可能查不到(需要多了解各数据库知识-是否支持大小写不敏感);

2.数据库sql插入数据失败

需要注意数据库的主键,否则插入会出错,查询也会出错

3.截取字符串函数substr的使用(区别于java中的substring方法,容易混淆)

如下,这里需要注意第三个参数的含义,是截取的位数,而不是位置;

函数中各参数含义:substr(要截取的字符串,截取的起始位置,截取的位数);

举例:substr('1234',1,3)='123';  substr('123456789',3,4)='3456';如图:

4.sql中的leftjoin关键字

left join 是left outer join的简写,left join默认是outer属性的

5.在oracle中对某一列进行排序并且取第一条

可以使用:select code from (select * from table a order by id desc) where rownum=1;

但是这里容易报错:如果在table 的查询过程中,使用了外面一层的字段,则会报错;

update table b set b.x1 = (select x1 from (select * from table a where b.xs = a.xs order by a.id desc) where rownum=1);

一般的解决问题方法就是使用max等函数直接取到排序后相应的第一条记录:

update table b set b.x1 = (select max(x1) from (select * from table a where b.xs = a.xs));

6.关键字判断case when的使用

进行判断的时候,使用exists会发生错误:case when (select 1 from xxx where exists ..);这种方式会报错,需要判断直接放置判断逻辑就可以;

posted @ 2017-01-23 11:41  无言火  阅读(99)  评论(0编辑  收藏  举报