Oracle跟MySQL的区别和联系

一、主键自增长:

1) Oracle:

使用序列实现,比如创建序列,起点是1000,步进是1:

  create sequence myseq increment by 1 start with 1000 

增加记录:

  insert into student(stuId,stuName) values(myseq.nextval,'peter') 

2) mysql:

在建表时指定主键自增长

  create table student(stuId int auto_increment primary key,stuName char(20)) 

增加记录:

  insert into student(stuName) values ('peter') 

二、命令行工具:

Oracle 的官方命令行工具是SQLPlus

 

mysql 的命令行工具是mysql:

 

三、关于用户的概念:

1)Oracle

在Oracle中有一个用户的概念,用来登录到数据库,比如openlab用户。用户拥有一定的权限,可以创建表、视图等。用户名下的数据表,视图等对象的集合叫Schema。

数据库安装好后。建立的默认用户是:sys.system.scott。

创建用户:create user 用户名 identified by 密码(一般是DBA来创建,普通用户没有创建用户的权限)

在SQLPLus工具中切换用户:conn 用户名/密码@主机字符串

查看当前用户:show  user

显示所有的用户:select  *  from  all_users

显示用户下的表:select  *  from  tab

2) mysql

mysql中对应于oracle中用户的概念是database。登陆后要先建立database,才能建表。默认创建的database是mysql , test。

创建数据库:create  databases 库名

切换用户:use  database 库名

查看当前用户:connect

显示所有数据库:show  databases

显示用户下的表:show  tables

四、假设有外部脚本文件 C:\script.sql,执行外部脚本文件的方式:

1)Oracle:

@  script.sql

2) mysql:

source  script.sql

五、Sql语句中的表达式:

1)Oracle:

 select 12 * 10 from dual 

2) mysql:

 select 12 * 10 

六、取系统时间

1)Oracle:

 select sysdate from dual 

2) mysql:

select now()
select sysdate()
select curdate()
select select current_date
select curtime()
select current_time

 

七、日期格式转换:

1)Oracle:

select to_char(sysdate,'yyyy-mm-dd') from dual;
select to_char(sysdate,'hh24-mi-ss') from dual;

 

2) mysql:

 select date_format(now(),'%Y-%m-%d')

 select time_format(now(),'%H-%i-%S') 

 

1、直接在数据库 用sql语句就把 日期时间处理好

2、Java代码里 把日期处理好(框架)

3、页面 用JavaScript代码 处理好

4、标签(C S

八、日期函数:6个月以后

1)Oracle:

 select add_months(sysdate,6from dual 

2) mysql:

 select date_add(now(),interval 6 month) 

九、字符函数:从‘helloworld’中截取hello

1)Oracle:

 select substr('helloworld',1,5from dual; 

2) mysql:

 select substring('helloworld',1,5) 

十、修改表名:

1)Oracle:

 rename oldname to newname 

也可以用来修改各种对象名称

2) mysql:

 alter table oldname to newname 

十一、关于组函数

 select deptno,count(*from emp 

这种语法,在mysql中是正常的,而在oracle中是会报错的,select列表中的deptno列必须跟在group by 短语后:

 select deptno,count(*from emp group by deptno 

 

十二、分页语句

 

1)Oracle:

select * from (select t.*,rownum rn from (select * from emp) t where rownum < 11) where rn > 5

 

查到的是第6~10条记录

2) mysql:

 select * from emp limit 5,5 

查到的是第6~10条记录

十三、计算每个员工的年薪:工资 * 12 + 奖金 * 12

 select ename,sal*12 + nvl(comm,0)*12 from emp 

nvl :单行函数,如果为空,返回0

Oracle : nvl

Mysql : ifnull

Sqlserver  :  isnull

### OracleMySQL区别对比 #### 特性比较 Oracle具备良好的兼容性、可移植性、可连接性高生产率,这些特性赋予了Oracle RDBMS优秀的开放性[^2]。相比之下,MySQL的一个显著特点是其支持多种存储引擎,例如InnoDBMyISAM等。其中,InnoDB支持事务处理以及外键约束,非常适合那些对数据一致性完整性有较高要求的应用;而MyISAM尽管不提供事务处理功能,在读取速度执行简单查询方面的效率却十分突出[^3]。 #### 性能考量 关于性能方面,两者各有千秋。对于复杂查询操作而言,由于Oracle拥有更强大的优化器支持更多高级特性的优势,因此通常能够展现出更好的性能。然而当涉及到大量并发的小型查询时,配置得当的MySQL同样可以达到令人满意的响应时间,并且在某些特定情况下甚至可能超越Oracle的表现。 #### 适用场景分析 就应用场景来说: - **企业级应用**:如果项目属于大型企业的核心业务系统,则倾向于选用Oracle作为后台数据库平台。这类环境往往需要高度可靠的数据管理严格的安全保障机制,而这正是Oracle所擅长之处。 - **Web应用程序/中小企业解决方案**:针对互联网服务提供商或是资源有限但追求高效运作模式的企业客户群体,MySQL凭借较低的成本投入、易于部署维护的优势成为理想的选择之一。特别是采用LAMP(Linux, Apache, MySQL/MariaDB, PHP/Python/Perl)架构构网站或内部信息系统时更为常见。 ```sql -- 这里给出一段简单的SQL语句用于展示如何创表结构,适用于两种数据库: CREATE TABLE example ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值