MySQL和Oracle开发差异
1) 数据类型差异
| Oracle | MySQL | 注释 | 
| 单独创建序列来实现 | 自动增长的数据类型 | |
| varchar2 | varchar | |
| number | tinyint,smallint,mediumint,int,bigint float,double | |
| clob | text,mediumtext,longtext | |
| date | datetime | |
| 无 | enum | |
| raw | binary(n),varbinary(n) | |
| 无 | bit(n) | |
| blob | blob,mediumblob,longblob | 
2) 内建函数差异
| Oracle | MySQL | 注释 | 
| length | char_length | |
| substr | substring | |
| nvl | ifnull | |
| decode | case | |
| to_char | date_format,time_format | |
| to_date | str_to_date | |
| trunc | cast | |
| to_number | cast | |
| date+/-n | date_add | |
| date1-date2 | datediff | 
3) SQL语句差异
| 操作 | Oracle | MySQL | 
| 创表指定表空间 | create table…tablespace x | 没有表空间,使用默认存储引擎 | 
| CTAS建表 | create table…as select…不能新增字段和改变字段属性 | create table t1(a int,b int) as select a,b,a,b from t2可以选择新的字段和字段属性 | 
| 表结构复制 | create table t1 as select * from t2 where 1=0,只复制字段定义,不包括约束 | create table t1 like t2,复制包括约束 | 
| 全局分区索引 | create index…global partition by | 无 | 
| 重命名列 | alter table t1 rename c1 to c2 | alter table t1 change c1 c2 | 
| 修改列类型 | alter table t1 modify c1 integer | alter table t1 change c1 c1 int | 
| 修改列缺省值 | alter table t1 modify c1 default 0 | alter table t1 change c1 c1 int default 0 | 
| 修改列非空 | alter table t1 modify c1 not null | alter table t1 change c1 c1 int not null | 
| 重命名表 | rename t1 to t2 | alter table t1 rename t2 rename table t1 to t2 | 
| 删除索引 | drop index idx1 | alter table t1 drop index idx1 drop index idx1 on t1 | 
| 重命名索引 | alter index idx1 rename to idx2 | 删除重建 | 
| 重建索引 | alter index idx1 rebuild | 无 | 
| 禁用索引 | alter index idx1 unusable | 无 | 
| 删除表 | drop table t1,如果表不存在报错 | drop table if exists t1,判断表是否存在,存在删除,不存在不报错 | 
| 重命名视图 | rename v1 to v2 | rename view v1 to v2 | 
| 左右连接 | select * from t1,t2 where t1.c1=t2.c2(+); select * from t1,t2 where t1.c1(+)=t2.c2; | select * from t1 left join t2 on t1.c1=t2.c2; select * from t1 right join t2 on t1.c1=t2.c2; | 
| 交集 | select intersect select | select inner join select;使用inner join代替 | 
| 差集 | Select minus select | select left join where,使用left join where代替 | 
| 获取固定值 | select 1 from dual | select 1 | 
| 字段连接 | select c1||c2 from t1 | select concant(c1,c2) from t1 | 
| 结果子查询 | select * from (select * from t) | select * from (select * from t) t1 结果集需要有别名 | 
| Merge | merge into | replace into | 
| 行号 | rownum | 无,需要使用用户变量来实现 | 
| 分析函数 | max() over() min() over() …… | 无,需要自行实现 | 
| 位图索引 | create bitmap index | 无 | 
| Top查询 | select * from (select rownum from t1 order by c1) where rownum>=1 and rownum<=5 | select * from t1 order by c1 limit 5 | 
| 语句内部临时表 | with as | 无 | 
| 创建存储过程/ | create or replace procedure | create procecure | 
| 创建函数 | create or replace function | create function | 
| 创建视图 | create or replace view | create view | 
| 创建触发器 | create or replace trigger | create trigger | 
| 创建包 | create or replace package | 无 | 
| 创建用户 | create user u1 identified by p1 default tablespace x temporary tablespace y | create user u1 identified by p1 | 
| 修改密码 | alter user u1 identified by p2 | mysqladmin -u u1 -p p1 password p2 | 
| 大小写 | 不区分 | 缺省数据库、表名区分大小写,列名不区分; 可以设置lower_case_table_names=1都不分区 | 
3) 子程序差异
Oracle中创建的匿名PL/SQL块、PL/SQL函数和存储过程,MySQL需要全部重新实现
MySQL和Oracle开发差异的更多相关文章
- mybatis中mysql和oracle的差异
		1.applicationContext.xml中的配置差异: 在applicationContext.xml的数据源dataSource的配置中,mysql数据库需要心跳包的配置,而oracle中不 ... 
- SQLServer、MySQL、Oracle语法差异小集锦
		一.差异集锦 在建表的时候,只有自增的语法不同. 下面给出3种数据库通用的建表与初始化测试语句: CREATE TABLE Country( Id int PRIMARY KEY, Name ) ); ... 
- MySQL,Oracle,PostgreSQL通过web方式管理维护, 提高开发及运维效率
		在开发及项目运维中,对数据库的操作大家目前都是使用客户端工具进行操作,例如MySQL的客户端工具navicat,Oracle的客户端工具 PL/SQL Developer, MSSQL的客户端工具查询 ... 
- 开发中mysql和oracle的区别
		首先就不描述mysql与oracle在整个数据库系统上的区别了,仅从程序员开发的角度来说: 1.主键: mysql一般会用到一个自增的属性,例如设置一个id字段,类型设置为auto increment ... 
- MySQL,Oracle,PostgreSQL,mongoDB 通过web方式管理维护, 提高开发及运维效率
		在开发及项目运维中,对数据库的操作大家目前都是使用客户端工具进行操作,例如MySQL的客户端工具navicat,Oracle的客户端工具 PL/SQL Developer, MSSQL的客户端工具查询 ... 
- 谈谈 mysql和oracle的使用感受 -- 差异
		之前一直使用mysql作为存储数据库,虽然中间偶尔使用sqlite作为本地数据库存储,但没有感觉多少差别. 后来遇上了oracle,且以其作为主要存储,这下就不得不好好了解其东西了.oracle作为商 ... 
- MySQL与Oracle 差异比较之四条件循环语句
		循环语句 编号 类别 ORACLE MYSQL 注释 1 IF语句使用不同 IF iv_weekly_day = 'MON' THEN ii_weekly_day := 'MON';ELS ... 
- 【无私分享:ASP.NET CORE 项目实战(第十二章)】添加对SqlServer、MySql、Oracle的支持
		目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 增加对多数据库的支持,并不是意味着同时对多种数据库操作,当然,后面,我们会尝试同时对多种数据库操作,这可能需要多个上下文,暂且 ... 
- qlserver、Mysql、Oracle三种数据库的优缺点总结
		这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下 一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能 ... 
随机推荐
- Indy的评价
			已经抛弃了indy,实在是不好,tcp在android下退出报错.我现在改用系统自带的httpclient.推荐RTC RTC带有一个tcp组件,不过处理方式跟indy不同,测试过,在android下 ... 
- How to append files to a .tar archive using Apache Commons Compress?(转)
			I created a copy of the tar archive and copied to entire content to it. Then I delete the old tar ar ... 
- 14.4.3.6 Fine-tuning InnoDB Buffer Pool Flushing 微调 InnoDB Buffer Pool 刷新:
			14.4.3.6 Fine-tuning InnoDB Buffer Pool Flushing 微调 InnoDB Buffer Pool 刷新: innodb_flush_neighbors an ... 
- java web从零单排第十六期《struts2》控制标签(2)
			1.s:subset标签概述: s:subset标签功能是从一个集合中取出部分元素合并成一个新的集合,新生成的这个集合是原来集合的子集.属性和意义如下: 属性名 是否必需 默认值 类型 说明介绍 co ... 
- 近期在调用 calendar.js  的时候出现中文乱码!  解决方式
			近期写一个小项目的时候:在调用 calendar.js 的时候出现中文乱码! 如图所看到的: 原因在于: 我的jsp 页面,指定的是 UTF-8 编码,然而,调用的 calendar.js 的编码确 ... 
- 灵动标签的使用方法   ecms通过运行sql获取须要的记录
			在某些条件下,我们要求站点的某页上显示指定的信息, 可是这样的指定假设固定去用代码写死的话,对以后的修改将会是大麻烦: 这时候sql语句的优势就凸显出来,利用sql语句仅仅须要改改数字,就能让显示的内 ... 
- hdu 5056Boring count
			题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=5056 题目大意:就是问在子串中每一个小写字母出现次数不超过k次的个数,注意子串是连续的子串.. . ... 
- Linux 系统文件夹结构
			登录后,在当前的命令窗口中输入命令: <span style="font-size:14px;">ls /</span> 你的终端上会出现例如以下的代码: ... 
- Hdu 4738【求无向图的桥】.cpp
			题目: 曹操在长江上建立了一些点,点之间有一些边连着.如果这些点构成的无向图变成了连通图,那么曹操就无敌了.刘备为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥.但是诸葛亮把所有炸弹都带走了,只留下 ... 
- Windows编程之非模态对话框
			1 创建非模态对话框 <1> HWNDCreateDialog( HINSTANCE hInstance, // handle to module LPCTSTRlpTemplat ... 
