![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
熊猫大侠1920
带你装逼带你飞
展开
-
Mysql order by与limit混用陷阱
问题:在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题。解决方案:如果想在Limit存在或不存在的情况下,都保证排序结果相同,可以额外加一个排序条件。例如id字段是唯一的,可以考虑在排序字段中额外加个id排序去确保顺序稳定。例如:order b原创 2020-12-09 17:31:24 · 190 阅读 · 0 评论 -
union all的效率问题
union all 是将查出来的结果合并起来,如果单纯只是2张表的查询合并,那效率就等同于查两张表各自查询所需要的时间相加,因为合并这个动作没有涉及到计算如果使用union all 之后使用了order by,limit等操作,(排序)其实是涉及到了大量的运算,所以会存在效率问题,而且是将合并起来的所有数据进行排序如果合并后的数据量很大,排序字段又没有索引的话,就会存在很大的效率问题,这里的效率问题其实就是由大量数据排序引起的,跟union all其实没有本质关系...原创 2020-12-07 15:52:01 · 7187 阅读 · 0 评论 -
oracle跨数据库查询数据并插入
场景:一个正式库,一个测试库,两个库的表结构都一模一样,因为正式库中有数据,测试库中没有,现在想要把正式库中相关表的数据复制到测试库中的相关表中下面是两个数据库在tnsnames.ora文件中的配置,用户名和密码都设置成了一样,例如都是用户名:aaa 密码:bbb测试库psc_aaa = (DESCRIPTION = (ADDRESS_LIST = (AD原创 2017-06-30 11:01:38 · 4863 阅读 · 2 评论 -
oracle中wm_concat()函数
select a.PXH,m.admission_code,sysdate print_date,m.delivery_code,m.supplier_code,b.platform_action_text,c.confirm_point_text,d.supplier_textFROM wm_platform_delivery m left join wm_platform_confir原创 2017-09-08 09:22:39 · 919 阅读 · 0 评论 -
mybatis+oracle+foreach list 批量插入数据
背景:在list中存放对象,本来可以遍历list得到每一个对象,然后将每个对象插入数据库,但是这样做的话没遍历得到一个对象就要操作一次数据库,如果数据少的话还好,如果是成千上万的数据,就会使开销大大增加和性能大大降低,为了解决这个,就需要将之前的每次插入换成批量插入直接上sql insert into JK_MATNRDTL_FROM_SRM (ID, RUNSHEE原创 2017-07-26 17:35:18 · 3200 阅读 · 0 评论 -
oracle报错提示原因及解决
oracle 提示"无效字符"------------一般来说是哪里多了分号 ";"原创 2017-07-26 17:59:20 · 486 阅读 · 0 评论 -
MyBatis在Oracle数据库下用concat函数模糊查询之参数个数无效错误
Oracle拼接字符串concat需要注意的小事项在用ssm框架编写代码的时候,因为数据库换成了Oracle,在模糊查询数据的时候突然发现报错了select * from SYS_MENU where url like concat('%',#{roleName},'%')一直报错参数个数无效,在网上查找资料发现模糊查询的sql语句还是concat('%','s','%')这样写的转载 2017-07-14 17:33:39 · 9544 阅读 · 3 评论 -
mybatis 中 foreach collection的值
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。 item表示集合中每一个元素进行迭代时的别名, index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置, open表示该语句以什么开始, s原创 2017-05-23 11:21:11 · 3583 阅读 · 0 评论 -
sql中join问题
INNER JOIN 等价于 JOIN你可以理解为 JOIN 是 INNER JOIN 的缩写LEFT JOIN 等价于 LEFT OUTER JOINRIGHT JOIN 等价于 RIGHT OUTER JOINinner join:理解为“有效连接”,两张表中都有的数据才会显示left join:理解为“有左显示”,比如on a.fiel原创 2017-07-06 10:23:09 · 328 阅读 · 0 评论 -
oracle的substr()方法
select substr('2017-06-21',0,7)||'-01' from dual 执行结果:前面执行出来是2017-06,然后再并上‘-01’,最后结果就是2017-06-01这个是处理字符串格式的日期取当月的第一天包前不包后,就是含[0],不包含[7]2 0 1 7 - 0 6 - 2 10 1 2 3 4 5 6 7原创 2017-06-29 15:28:05 · 229 阅读 · 0 评论 -
oracle查看数据库名、数据库实例名和db link
查看数据库名SQL> select name from v$database;查看实例名SQL> select instance_name from v$instance;查看存在的database linkSQL> select * from dba_db_links;删除db linkSQL> drop database link 连接名称;原创 2017-06-30 15:37:47 · 1268 阅读 · 0 评论 -
to_char()和to_date()的用法
TO_CHAR 是把日期或数字转换为字符串使用TO_CHAR函数处理日期:TO_CHAR(date,’格式’); TO_CHAR(newdate,’yyyy-mm-dd’) 遇见两边类型不一样报错或者格式不一样查不到数据可以使用如下方法,把两边的格式转成一样就ok了数据库查询条件where to_char(a.REQUIRED_TIME,'yyyyMMdd')原创 2017-05-26 14:11:47 · 1563 阅读 · 0 评论 -
Mybatis Generator 生成的mapper只有insert方法
– Mybatis Generator 生成的mapper只有insert方法 – 首先检查generatorConfig.xml中table项中的属性 enableSelectByPrimaryKey=”true” enableUpdateByPrimaryKey=”true” enableDeleteByPrimaryKey=”true” 看看这几个属性是否设置成了fals转载 2017-04-18 13:37:17 · 1439 阅读 · 0 评论 -
mybatis中#{}与${}的差别(如何防止sql注入)
默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义。#相当于对数据 加上 双引号,$相当于直接显示数据示例1:执行SQL:select * from emp where name = #{employeeName}参数:employeeNa转载 2017-04-24 14:42:09 · 11422 阅读 · 3 评论 -
mybatis自动生成主键
下面就是将主键id自动生成,累加1的实现方法 select get_seq_next('Engine_Line_Stock') from dual这个需要你建一个名字叫做ENGINE_LINE_STOCK_SEQ的序列 select get_seq_next('Engine_Line_Stock') fro原创 2017-05-27 10:08:04 · 587 阅读 · 3 评论 -
union, union all 的用法
http://blog.csdn.net/kiqinie/article/details/8132485转载 2016-08-05 14:38:05 · 255 阅读 · 0 评论 -
mybatis传入混合参数(多个不同类型的参数)
当调用接口:[java] view plain copypublic List selectUserInIDs(List ids,String name); userMapper.xml的书写应该为:[html] view plain copyselect id="selectUserInIDs" resultT转载 2017-05-15 13:43:37 · 9233 阅读 · 1 评论 -
plsql连接oracle问题
在plsql目录下新建plsql.bat 文件 // 启动文件--通过这个文件来启动 plsql文件内容为:@echo offset path=C:\Usersl\oracle10g set ORACLE_HOME=C:\Users\oracle10gset TNS_ADMIN=C:\Users\oracle10g原创 2016-07-25 20:19:32 · 474 阅读 · 0 评论