MySql和Oracle数据库区别

时间:2023-03-08 23:32:38
MySql和Oracle数据库区别

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不能这样设置

MySql和Oracle数据库区别

5.Oracle数据库连接符select ename||'的月工资是:'||sal||'岗位是'||job from emp; Mysql不能这样用

MySql和Oracle数据库区别

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没有这个对象