Oracle和MySQL语句上的一些区别

对于空字串的判断,其中MySQL只能对null过滤

oracle: 使用nvl(exp1,exp2) 函数
	select nvl('',1) from dual;  -- returns:1
	select nvl(null,1) from dual;  -- returns: 1
mysql:使用ifnull(exp1,exp2)函数
	SELECT ifnull(null,1);	 -- returns: 1
	SELECT ifnull('',1); 	 -- returns: ''
	

对于日期时间操作

操作oraclemysql
转字符TO_CHAR(exp,‘yyyy-MM-dd’)date_format(exp,’%Y-%m-%d’)
转字符TO_CHAR(exp,‘yyyy-MM-dd HH:mm:ss’)date_format(exp,’%Y-%m-%d %T’)
转时间TO_DATE(exp,‘yyyy-MM-dd’)str_to_date(exp,’%Y-%m-%d’)
转时间TO_DATE(exp,‘yyyy-MM-dd HH24:mi:ss’)str_to_date(exp,’%Y-%m-%d %T’)
取月份TO_CHAR(exp,‘MM’)MONTH(exp)
取时间sysdatenow()
日期相减date1 - date2datediff(date1,date2)

字符链接

oracle: 可使用 || 符号,可用concat(exp1,exp2)函数
	select '1'||'2' from dual; 		-- returns '12'
	select concat('1','2') from dual;	-- returns '12'
	select concat('1','2','3') from dual; -- returns error 参数个数无效
			
mysql: 只能用concat(exp1,exp2,...), || 符号在MySQL表示 或 ,MySQL的concat函数可有N个参数,Oracle只有两个参数
	select concat('1','2') from dual; -- returns '12'
	select concat('1','2','3') from dual; -- returns '123'

表连接(左右连接)

oracle:
	oracle自带有表连接的(+)功能,也可用left(right) join on
mysql:
	mysql 没有(+)使用功能,只能用left(right) join on,否则就会报错

换行回车符

Oracle : 换行符是chr(10),回车符是chr(13)
MySQL :  换行符是char(10),回车符是char(13) 

注意

oracle : ORDER BY 默认排序时,空值在下;MySQL空值在上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OracleMySQL在语法上存在一些具体的差别,以下是一些常见的差异: 1. 数据类型的差异: - OracleMySQL在数据类型上有一些差异,例如,Oracle中使用NUMBER表示数字类型,而MySQL使用INT或DECIMAL表示整数或浮点数类型。 - Oracle中使用VARCHAR2表示可变长度字符串,MySQL使用VARCHAR表示可变长度字符串。 2. 字符串拼接的差异: - Oracle使用"||"来进行字符串拼接,例如:`SELECT 'Hello' || 'World' FROM dual;` - MySQL使用CONCAT函数来进行字符串拼接,例如:`SELECT CONCAT('Hello', 'World');` 3. 日期和时间的处理差异: - OracleMySQL在日期和时间的处理上有一些差异。例如,Oracle中使用TO_DATE函数将字符串转换为日期类型,而MySQL使用STR_TO_DATE函数。 - Oracle中使用SYSDATE获取当前日期和时间,而MySQL使用CURRENT_TIMESTAMP或NOW()函数。 4. 分页查询的差异: - OracleMySQL在分页查询上有一些差异。如前所述,Oracle使用ROWNUM进行查询限制,而MySQL使用LIMIT子句。具体语法已在前面提到。 5. NULL值的处理差异: - OracleMySQL在处理NULL值时存在一些差异。例如,在插入NULL值时,Oracle使用NULL关键字,而MySQL使用关键字NULL。 需要注意的是,上述只是一些常见的差异,实际上OracleMySQL在语法和功能上还有许多其他差异,包括函数、存储过程、触发器等方面。在开发和迁移项目时,应注意这些差异并适当调整SQL语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值