oracle与mysql操作上的区别
2020-05-07 04:12
1236 查看
索引
一、日期时间
日期时间截取
//oracle TRUNC(date[,fmt])可截取日期和时间 trunc(sysdate, 'mm'); //mysql DATE(date) 只截取日期部分 DATE(datestring)
格式化时间
//oracle TO_CHAR,TO_DATE SELECT TO_CHAR(SYSDATE,'yyyy-MM-dd HH24:mi:ss') FROM dual SELECT TO_DATE('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') FROM dual //mysql STR_TO_DATE,DATE_FORMAT,CAST //字段类型是varchar,用DATE_FORMAT;字段类型是时间,用STR_TO_DATE SELECT STR_TO_DATE( '2017-02-09 15:25:46.635','%Y-%m-%d %H:%i:%s') FROM DUAL;//字符串转时间类型 SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S') FROM dual;//时间类型转字符串 SELECT CAST(NOW() AS DATETIME) FROM DUAL
系统时间
//oracle SYSDATE //mysql NOW()
时间间隔
//oracle 两日期间的月份数 MONTHS_BETWEEN //mysql 两日期间的天数 DATEDIFF
insert日期
//oracle 需要把时间格式化 //mysql 可直接插入时间字符串
日期运算
//oracle 日期d加上n个月 ADD_MONTHS(d,n) //mysql 日期加上几天或几个小时 DATE_ADD(date,INTERVAL expr type)
二、字符串
字符串拼接
//oracle str1||str2||str3 //mysql concat(str1,str2,…)
字符集转换为char
//oracle 参数一:要转换的字符串,参数二:字符串的字符集。 TO_CHAR( string-expression [, source-charset-name ] ) //mysql 如果oracle的TO_CHAR未指定参数二 CAST( string-expression AS CHAR )
截取字符串
//oracle 截取位置从0开始 substr() //mysql 截取位置从1开始 substr() substring() //从开始位置st截取到最后 substr(str,st) //从位置st截取到位置en substr(str,st,en)
字符串变数值
//oracle TO_NUMBER('123'): //mysql cast( '123' as SIGNED INTEGER)
正则模式查询
//oracle regexp_like() select * from tb where regexp_like(name,’z’); //mysql regexp select * from tb where name regexp ’z’;
三、空值 null 相关
判断是否为空
第一个参数为空,就返回第二个参数
相当于 java 中的三目运算符 String s = a != null ? a : " ";
//oracle nvl SELECT nvl(expr1,expr2) //mysql ifnull select ifnull(expr1,expr2);
空值 null 排序(Order by 语法)
oracle
order by colum asc :null默认被放在最后
order by colum desc :null默认被放在最前
mysql
order by colum asc :null默认被放在最前
order by colum desc :null默认被放在最后
//oracle order by colum asc nulls first //强制null放在最前,不为null的按声明顺序[asc|desc]进行排序 order by colum asc nulls last //强制null放在最后,不为null的按声明顺序[asc|desc]进行排序 //mysql ORDER BY colum asc IF(ISNULL(colum),0,1) //null被强制放在最前,不为null的按声明顺序[asc|desc]进行排序 ORDER BY colum asc IF(ISNULL(colum),1,0) //null被强制放在最后,不为null的按声明顺序[asc|desc]进行排序
四、其他
条件判断
如果 id = admin,返回1,否则返回0
//oracle decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) //如果条件等于值1->返回值1,条件等于值2->返回值2,...,没有匹配的值->缺省值 DECODE(id, admin, 1, 0) //mysql IF(expr1,expr2,expr3) 如果expr1为true,返回expr2,否则返回expr3 IF (id = admin, 1, 0)
取前几条
//oracle ROWNUM SELECT column_name(s) FROM table_name LIMIT number //mysql LIMIT SELECT column_name(s) FROM table_name WHERE ROWNUM <= number
自增加
//oracle CREATE SEQUENCE 字段名 //mysql AUTO INCREMENTcatOneTwo 原创文章 51获赞 41访问量 2万+ 关注 私信
相关文章推荐
- MYSQL和ORACLE的一些操作区别
- ibatis中批量操作在mysql和oracle的区别
- MYSQL和ORACLE的一些操作区别
- MYSQL和ORACLE的一些操作区别
- MYSQL和ORACLE的一些操作区别
- MYSQL和ORACLE的一些操作区别
- MYSQL和ORACLE的一些操作区别
- MYSQL和ORACLE的一些操作区别
- MYSQL和ORACLE的一些操作区别
- mysql与Oracle的一些操作区别
- Oracle与MySQL操作上的一些区别
- Oracle与MySQL的几点区别
- SqlServer,mysql,oracle 数据处理语句的区别
- SQL Server 和 Oracle 以及 MySQL 有哪些区别
- MySQL与Oracle的区别
- Mysql与Oracle区别
- mysql与oracle区别之-函数
- db2与oracle、mysql使用区别
- SQL Server 和 Oracle 以及 MySQL 有哪些区别?
- SQL Server,MySQL,Oracle三者的区别