mysql和Oracle数据库的一些异同。
2007-08-14 21:54
239 查看
1、WHERE字句的LIKE条件中通配符。
Oracle和mysql都支持%和_两个通配符,前者匹配任意个任意字符,后者匹配最多一个任意字符。但在处理本意字符%和_时,就很不相同了。mysql可以用转义字符\来处理;oracle也可以用转义字符来处理,但必须在LIKE表达式后用escape '\'来说明;其中\可以是任意一个字符(注意必须是一个字符)。
2、对象名的大小写敏感性
处理诸如表,存储过程,函数,索引,数据库等对象时,Oracle对大小写不敏感;mysql则由操作系统来决定。如LINUX下是敏感的,WINDOWS是不敏感的。
3、查询表信息
mysql: show tables;
Oracle: select table_name from tabs;
4、自动增长类型的支持
mysql: 每一个表可以有一列用auto_increment,但必须用于主关键字。其起始值可以用AUTO_INCREMENT=500000作为表属性来约束,不能设步长,不能循环使用。
Oracle: 用 sequence对象来支持该类型。可以在触发器和SQL语句中用nextval,currval来取值;注意CURRVAL需要在同一SESSION里方能取值正确。
查询语句如SELECT seqid_main.nextval from dual。
创建语句如CREATE SEQUENCE SEQID_MAIN INCREMENT BY 1 START WITH 1 NOCYCLE CACHE 20 NOORDER;
5、限制记录数的支持
mysql: 用limit [start-index,]count子句来实现,非常简单,并且支持DELETE语法,应该对用户非常方便。
Oracle: 没有直接的子句可以提供支持。但近似可以用row_number函数来实现。
如 row_number() over (order by col1 desc,col2) as row,然后对row来进行过滤处理。如果没有排序子句则可以用更简单的rownum来实现。
6、连接操作符的支持
其实mysql和Oracle都支持左、右、内联操作。不过Oracle的语法如 a.id=b.id(+)来表示左联操作比较直观和容易构造。
7、null的处理
Oracle: nvl函数。
mysql: 默认上下文环境如‘’,0,UNDEF等。
8、字符联接
Oracle: ||(常用)
mysql: concat
9、日期型的转换
mysql: DateFormat,默认支持的各种格式(基于当前区域设置)。
Oracle: to_date/to_char
10、注释行的开头字符
mysql: #
Oracle: -
11、外表关联支持
mysql: 4.0版本后创建InnoDB类型的表。
Oracle: 现在的差不多都支持,很老的就不知道了。
等等。。。
Oracle和mysql都支持%和_两个通配符,前者匹配任意个任意字符,后者匹配最多一个任意字符。但在处理本意字符%和_时,就很不相同了。mysql可以用转义字符\来处理;oracle也可以用转义字符来处理,但必须在LIKE表达式后用escape '\'来说明;其中\可以是任意一个字符(注意必须是一个字符)。
2、对象名的大小写敏感性
处理诸如表,存储过程,函数,索引,数据库等对象时,Oracle对大小写不敏感;mysql则由操作系统来决定。如LINUX下是敏感的,WINDOWS是不敏感的。
3、查询表信息
mysql: show tables;
Oracle: select table_name from tabs;
4、自动增长类型的支持
mysql: 每一个表可以有一列用auto_increment,但必须用于主关键字。其起始值可以用AUTO_INCREMENT=500000作为表属性来约束,不能设步长,不能循环使用。
Oracle: 用 sequence对象来支持该类型。可以在触发器和SQL语句中用nextval,currval来取值;注意CURRVAL需要在同一SESSION里方能取值正确。
查询语句如SELECT seqid_main.nextval from dual。
创建语句如CREATE SEQUENCE SEQID_MAIN INCREMENT BY 1 START WITH 1 NOCYCLE CACHE 20 NOORDER;
5、限制记录数的支持
mysql: 用limit [start-index,]count子句来实现,非常简单,并且支持DELETE语法,应该对用户非常方便。
Oracle: 没有直接的子句可以提供支持。但近似可以用row_number函数来实现。
如 row_number() over (order by col1 desc,col2) as row,然后对row来进行过滤处理。如果没有排序子句则可以用更简单的rownum来实现。
6、连接操作符的支持
其实mysql和Oracle都支持左、右、内联操作。不过Oracle的语法如 a.id=b.id(+)来表示左联操作比较直观和容易构造。
7、null的处理
Oracle: nvl函数。
mysql: 默认上下文环境如‘’,0,UNDEF等。
8、字符联接
Oracle: ||(常用)
mysql: concat
9、日期型的转换
mysql: DateFormat,默认支持的各种格式(基于当前区域设置)。
Oracle: to_date/to_char
10、注释行的开头字符
mysql: #
Oracle: -
11、外表关联支持
mysql: 4.0版本后创建InnoDB类型的表。
Oracle: 现在的差不多都支持,很老的就不知道了。
等等。。。
相关文章推荐
- mysql和Oracle数据库的一些异同
- mysql和Oracle数据库的一些异同
- 总结一些分页查询的方法SQL server,MySQL,oracle数据库及hibernate中
- MySQL与oracle数据库的一些区别(转载)
- MySQL与oracle数据库的一些区别
- mysql,oracle数据库一些基本操作
- 在tomcat中配置MySQL和oracle数据库连接池的异同
- mysql 一些常用语句总结
- mysql和oracle数据库引擎介绍
- c# MySQL 一些语句
- mysql处理海量数据时的一些优化查询速度方法
- mysql 的一些基本操作
- mysql的一些问题
- apache+mysql+php+phpmyadmin安装的一些问题
- Hibernate | Spring JPA | MySQL 使用过程遇到的一些问题
- MySql的一些用法总结
- 连接Oracle数据库时可以使用的一些技巧
- 关于MySQL的一些命令
- 关于MYSQL的配置文件my.cnf 一些存放位置和配置说明