mysql数据库的SQL语句和oracle的有啥区别?详细点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库的SQL语句和oracle的有啥区别?详细点相关的知识,希望对你有一定的参考价值。
首先是大体一致的,只是分页查询时oracle用的伪列(rownum),mysql用的是limit,具体的可以百度一下分页;另外oracle对sql语句要求更为严格,而且oracle里变量较mysql更多点,oracle中有number型,有大数据类型,mysql没得;
另外举个例子,oracle不能插入为空列,而mysql是可以的(个人觉得,不知道正确与否)。还有他们两者函数有不同之处,如转日期函数oracle是to_date('要转的字符串','格式') -- select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual,而mysql是str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09//都是针对字符串转日期来的。
还有一点,我们常常希望主键可以自动增长,避免我们插入数据时的重复问题,但是oracle不能设置列自动增长,而mysql是可以的,oracle可以用序列加触发器来解决自动增长问题达到与mysql一样的效果。
总体来说百分之九十的sql语句是没区别的。总体来说oracle的格式严格点,对有些字符型的还必须加单引号才能插入,mysql要求就没这么多了。还有当向数据库插入一个日期时,mysql可以直接插入成功,但是oracle需要先转化为sql里面的日期类型才行;oracle较mysql而言更安全,但是收费的,一般大公司用的多。oracle还有存储过程和函数,触发器这些这是mysql没有的。大体就是这样吧。 参考技术A 区别如下:
1.
Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。
2.
Oracle支持大并发,大访问量,是OLTP最好的工具。
3.
安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
4.Oracle也Mysql操作上的一些区别
①主键
Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto
increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。
②单引号的处理
MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
③翻页的SQL语句的处理
MYSQL处理翻页的SQL语句比较简单,用LIMIT
开始位置,
记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,
并且只能用ROWNUM<100,
不能用ROWNUM>80
④
长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,
如果要插入更长的字符串,
请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
⑤空字符的处理
MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT
NULL来定义ORACLE表结构,
导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
⑥字符串的模糊比较
MYSQL里用
字段名
like
'%字符串%',ORACLE里也可以用
字段名
like
'%字符串%'
但这种方法不能使用索引,
速度不快。 参考技术B 首先,这三个数据库是不是同一个公司的产品;
二,使用其对应的对象是不一样的,oracle的主流大型数据库,大多数电信项目用于Oracle和sqlserver mysql数据库中使用的个人和小公司的,但对sqlserver费,mysql的没有;
三,功能,Oracle最强大的Oracle支持递归查询,他们不支持两个
,三个数据库,只有SQL Server中有一个完整的图形用户接口,Oracle和MySQL必须通过其他第三方数据库的图形用户界面,如Oracle与大多都PLSQL;
5个纯手工望采纳! 参考技术C 7) mysql的group by 语句可以select 没有被分组的字段,如
select id,name,age from A group by age 这样
但是在orcale和sqlserver中是会报错的。这个取出的id,name所在的行是每个分组中的第一行数据。
8)orcale用decode()来转换数据,mysql,sqlserver用case when:
case t.DETECT_RESULT when '2402' then t.SAMPLEID end (必须有end)
9)mysql: 两个select 出的数据相减:
(COUNT(distinct(t.SAMPLEID))-
CONVERT((COUNT(distinct(case t.DETECT_RESULT when '2402' then t.SAMPLEID end))), SIGNED)) AS NEGATIVE
FROM `view_sims_for_report` t
10)convert,cast用法
mysql将varchar转为int
convert(字段名, SIGNED)
字符集转换 : CONVERT(xxx USING gb2312)
类型转换和SQL Server一样,就是类型参数有点不同 : CAST(xxx AS 类型) , CONVERT(xxx,类型)
可用的类型
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
参考资料:http://www.jb51.net/article/34414.htm 参考技术D 有区别 你自己去百度吧,你这样问没有什么效果的。本回答被提问者采纳
pl/sql developer和sql developer有啥区别?
plsql还是比较主流的,在开发和管理上都比较方便,还支持导入以及导出功能。 Oracle psql dev是Oracle自带的工具,11g已经内嵌到数据库的安装里去了,也提供比较好的开发和管理的功能,但是相对plsql来说,要弱一些。不过可以对异构或者同构的数据库进行数据迁移。
PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。
PL/SQL该编辑器具有语法加强、SQL和PL/SQL帮助、对象描述、代码助手、编译器提示、PL/SQL完善、代码内容、代码分级、浏览器按钮、超链接导航、宏库等许多智能特性,能够满足要求性最高的用户需求。当您需要某个信息时,它将自动出现,至多单击即可将信息调出。
参考技术Aplsql还是比较主流的,在开发和管理上都比较方便,还支持导入。导出功能, 不过需要安装Oracle的客户端,并且需要配置tnsname。这是我觉得,他稍微弱势的一点。 Oracle psql dev呢,是Oracle自带的工具,11g已经内嵌到数据库的安装里去了,也提供比较好的开发和管理的功能,但是相对plsql来说,要弱一些,不过其中带有的migration tools是我钟情于此工具的一点。 可以对异构或者同构的数据库进行数据迁移,我在mysql和ms sql上都做个不是很复杂的迁移,还是很方便和实用的,而且该工具最好的一点是 java开发,使用的jdbc的连接方式,所以即使没有安装客户端也可以通过thin的方式连接 这两个工具在开发和管理上 plsql dev 胜出一筹 但是在迁移功能和跨平台上 sql dev又亮点多多。
以上是关于mysql数据库的SQL语句和oracle的有啥区别?详细点的主要内容,如果未能解决你的问题,请参考以下文章
在Oracle数据库条件查询语句中使用'%%','_%%'这两个有啥区别
sql server的sql语句和oracle的sql语句有啥不同吗?
mysql 与oracle中的存储过程及函数有啥区别,尽可能详细哦