Oracle与mysql区别:
1.Oracle有表空间,mysql没有表空间。
2.mysql的char类型取值范围0-255字节,varchar为0-65535字节
3.oracle的char类型取值范围1-2000字节,varchar为1-4000字节
4.Oracle数据库可以自定义时间格式显示类型
以美国英语显示: alter session set nls_language='american';
以中文显示:alter session set nls_language='simplified chinese';
alter session set nls_date_format='YY/MM/DD';,Mysql不能这样设置
5.Oracle数据库连接符select ename||'的月工资是:'||sal||'岗位是'||job from emp; Mysql不能这样用
6.Oracle模糊查询:Select * from emp where ename like '%\_%' escape '\'; //表示包含正常下划线时,后面要加escape '\'
Mysql模糊查询:Select * from emp where ename like '%\_%' ;
7.Oracle不能直接用函数 select upper('abc') ,select concat('12','34');select replace("hello oracle",'oracle','world'),要在后面加上 from dual ,Mysql后面加不加 from dual都可以;
Oracle可以 initcap //将首字母大写,其他小写 : select empno,initcap(ename) from emp;
Mysql没有initcap函数
8.Oracle:select trunc(1.23456) from dual; //不指定从第几位开始截取,默认全部截取
Mysql:select TRUNCATE(1.23456,1) from dual; //必须指定从第几位开始截取
9.Oracle: select mod(25,0) from dual; --25
Mysql:select mod(25,0) from dual -null
10.Oracle: select sysdate from dual;; --19/03/30
Mysql:select sysdate() from dual; -19/03/30,主要多了一个括号
11.Oracle:select months_between(sysdate,hiredate)/12 from emp //计算员工入职时间
Mysql没有months_between函数
12.Oracle:select ename,add_months(hiredate,30*12) from emp //查询某某员工入职30年后的年份
Mysql没有add_months函数
13.Oracle:可以使用转换函数,to_date,to_number,to_char,,Mysql不可以
14.Oracle:可以使用通用函数nvl(处理null)
15.Oracle:select wm_concat(ename) from emp 行转列函数,mysql没有这函数
16.Oracle:有序列对象 mysql没有这个对象
17.Oracle:有同义词对象 mysql没有这个对象