Oracle与Mysql的差异
- Oracle没有主键自增主键一般使用的序列 Mysql主键自增长
- 单引号的处理 Mysql里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
- 时间函数
1)Mysql now() Mysql的sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。now()比较常用
Mysql日期函数 https://www.cnblogs.com/ggjucheng/p/3352280.html
2)Oracle 从dual这个表(伪表)查询,直接插入语句写sysdate就够了(没括号)
Oracle 在SQL语句中如何获取系统当前时间并进行操作 https://blog.csdn.net/idomyway/article/details/79016527 - 分页查询
1)Oracle
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
https://www.cnblogs.com/zhaotiancheng/p/6262635.html
2)Mysql
一般的分页查询使用简单的 limit 子句就可以实现。limit 子句声明如下:
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
#从第1000个数据开始查,查10个数据
select * from table where type=8 limit 1000,10;
Mysql分页查询优化 https://www.cnblogs.com/youyoui/p/7851007.html 分页查询,偏移量越多,查询越慢
Mysql大数据量分页查询 https://www.cnblogs.com/geningchao/p/6649907.html
Mybatis改写SQL语句遇见的一些问题
Mybatis批量删除数据,最大量是1000,需要自己手动将List切分成小于等于1000的集合操作
工具类
xxxxxx
数据库的时间取出来是String类型,想转为java.util.Date类型自己手动转
工具类
xxxxx
语句中不允许出现;
大于号 用 & gt;替代 小于号用 & lt;替代
mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“ 错误解决方法 在标签内添加useGeneratedKeys=“false”
<insert id="addList" parameterType="java.util.List" useGeneratedKeys="false">
INSERT INTO table_name where select * from table_name2
</insert>
、、
<select id="queryList" resultType="com.example.model.Bean">
select * from table_name
</insert>
resultType="xxxx"不用写List 写返回值的类型就行 基础类型和Bean都可以
#{field, jdbcType=NUMERIC} 动态sql里面传变量 数值类型
#{field, jdbcType=VARCHER} 字符串类型
MyBatis几种不同类型传参的总结 https://blog.csdn.net/m0_37837382/article/details/81626908
使用PLSQL的一些总结
表的语句无法执行 oracle11g报错ORA-00054:资源正忙,要求指定NOWAIT如何解决?
1)被其他用户编辑占用
让其释放即可使用
2)表被锁导致无法执行(Oracle机制 重点)
一条插入语句未执行完成,下一条插入语句开始执行就会导致表锁定
https://www.2cto.com/database/201802/723182.html
PlSQL导出数据表结构以及表数据
https://wenwen.sogou.com/z/q806564636.htm 用户名和密码不一样导不进去
其他
视图没有办法建立索引