oracle数据库基本语句和sql server的区别

感悟代码魅力,享受美好人生!
Oracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计 算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与 IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。 Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上 不同的大、中、小型机上;可在VMS、DOS、UNIX、WINDOWS等多种操作系统下工作。能与多种通讯网络相连,支持各种协议(TCP/IP、 DECnet、LU6.2等)。提供了多种开发工具,能极大的方便用户进行进一步的开发。Oracle良好的兼容性、可移植性、可连接性和高生产率是 Oracle RDBMS具有良好的开放性。Oracle价格是比较昂贵的。据说一套正版的Oracle软件早在2006年年底的时候在市场上的价格已经达到了6位数。所以如果你的项目不是那种超级大的项目,还是放弃Oracle吧。
SQL Server
SQL Server 是 Microsoft推出一套产品,它具有使用方便、可伸缩性好、与相关软件集成程度高等优点,逐渐成为Windows平台下进行数据库应用开发较为理想的 选择之一。SQLServer是目前流行的数据库之一,它已广泛应用于金融、保险、电力、行政管理等与数据库有关的行业。而且,由于其易操作性及友好的界 面,赢得了广大用户的青睐,尤其是SQLServer与其它数据库,如Access、FoxPro、Excel等有良好的ODBC接口,可以把上述数据库 转成SQLServer的数据库,因此目前越来越多的读者正在使用SQLServer。SQL Server由于是微软的产品,又有着如此强大的功能,所以他的影响力是几种数据库系统中比较大,用户也是比较多的。它一般是和同是微软产品的.net平台一起搭配使用。当然其他的各种开发平台,都提供了与它相关的数据库连接方式。因此,开发软件用SQL Server做数据库是一个正确的选择。
MySQL不支持事务处理,没有视图,没有存储过程和触发器,没有数据库端的用户自定义函数,不能完全使用标准的SQL语法。 从数据库行家听说的第一件事就是MySQL缺乏transactions,rollbacks, 和subselects的功能。如果你计划使用MySQL写一个关于银行、会计的应用程序,或者计划维护一些随时需要线性递增的不同类的计数器,你将缺乏transactions功能。在现有的发布版本的 MySQL下,请不要有任何的这些想法。(请注意,MySQL的测试版3.23.x系列现在已经支持transactions了)。
  在非常必要的情况下,MySQL的局限性可以通过一部分开发者的努力得到克服。在MySQL中你失去的主要功能是subselect语句,而这正是其它的所有数据库都具有的。换而言之,这个失去的功能是一个痛苦。 MySQL没法处理复杂的关联性数据库功能,例如,子查询(subqueries),虽然大多数的子查询都可以改写成join 另一个MySQL没有提供支持的功能是事务处理(transaction)以及事务的提交(commit)/撤销(rollback)。一个事务指的是被当作一个单位来共同执行的一群或一套命令。如果一个事务没法完成,那么整个事务里面没有一个指令是真正执行下去的。对于必须处理线上订单的商业网站来说,MySQL没有支持这项功能,的确让人觉得很失望。但是可以用MaxSQL,一个分开的服务器,它能通过外挂的表格来支持事务功能。  外键(foreignkey)以及参考完整性限制(referentialintegrity)可以让你制定表格中资料间的约束,然后将约束 (constraint)加到你所规定的资料里面。这些MySQL没有的功能表示一个有赖复杂的资料关系的应用程序并不适合使用MySQL。当我们说 MySQL不支持外键时,我们指的就是数据库的参考完整性限制--MySQL并没有支持外键的规则,当然更没有支持连锁删除(cascadingdelete)的功能。简短的说,如果你的工作需要使用复杂的资料关联,那你还是用原来的Access吧。  你在MySQL中也不会找到存储进程(storedprocedure)以及触发器(trigger)。(针对这些功能,在Access提供了相对的事件进程(eventprocedure)。MySQL+php+apache三者被软件开发者称为&php黄金组合&。
Oracle和MySQL的主要区别
Oracle:客户端和命令窗口,都是由用户决定内容-&
conn user_name/
MySQL:客户端和命令窗口,都是由数据库决定内容-&
都可以创建多数据库多用户,个人倾向于Oracle一个数据库中多个用户的形式,MySQL多个数据库多个用户形式(最好每个数据库对应一个用户)
Oracle是大型数据库而MySQL是中小型数据库,Oracle市场占有率达40%,MySQL只有20%左右,同时MySQL是开源的而Oracle价格非常高。
Oracle支持大并发,大访问量,是OLTP(On-Line Transaction Processing联机事务处理系统)最好的工具。
安装所用的空间差别也是很大的,MySQL安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
Oracle也与MySQL操作上的一些区别
组函数用法规则
MySQL中组函数在select语句中可以随意使用,但在Oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错eg:select name,count(money) from user;这个放在MySQL中没有问题在Oracle中就有问题了。
自动增长的数据类型处理
MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定,如果定义的自动增长的序列号NUMBER(6),最大值为999999INSERT语句插入这个字段值为:序列号的名称.NEXTVAL
单引号的处理
MySQL里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
翻页的SQL语句的处理
MySQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用SEEK定位到结果集的位置。Oracle处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM&100,不能用ROWNUM&80。以下是经过分析后较好的两种Oracle翻页SQL语句(ID是唯一关键字的字段名):语句一:SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) WHERE NUMROW & 80 AND NUMROW & 100 ) ORDER BY 条件3;
语句二:SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (SELECT [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) c) WHERE NUMROW & 80 AND NUMROW & 100 ) ORDER BY 条件3;
长字符串的处理
长字符串的处理Oracle也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,请考虑字段用CLOB类型,方法借用Oracle里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
日期字段的处理
MySQL日期字段分DATE和TIME两种,Oracle日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE,精确到秒,或者用字符串转换成日期型函数TO_DATE('','YYYY-MM-DD')年-月-日24小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS TO_DATE()还有很多种日期格式,可以参看Oracle DOC.
日期型字段转换成字符串函数TO_CHAR('','YYYY-MM-DD HH24:MI:SS')日期字段的数学运算公式有很大的不同。MySQL找到离当前时间7天用DATE_FIELD_NAME & SUBDATE(NOW(),INTERVAL 7 DAY)Oracle找到离当前时间7天用 DATE_FIELD_NAME &SYSDATE - 7;MySQL中插入当前时间的几个函数是:NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,可以直接存到DATE字段中。CURTIME()以'HH:MM:SS'的格式返回当前的时间,可以直接存到TIME字段中。例:insert into tablename (fieldname) values (now())而Oracle中当前时间是sysdate
空字符的处理
MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不容许有空的内容。按MySQL的NOT NULL来定义Oracle表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
字符串的模糊比较
MySQL里用字段名like%'字符串%',Oracle里也可以用字段名like%'字符串%'但这种方法不能使用索引,速度不快,用字符串比较函数instr(字段名,'字符串')&0会得到更精确的查找结果。
程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。
MySQL一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,MySQL将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。
Oracle实现了ANSIISQL中大部分功能,如,事务的隔离级别、传播特性等而MySQL在这方面还是比较的弱
阅读(...) 评论()SQL server数据库与Oracle数据库的区别_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
SQL server数据库与Oracle数据库的区别
&&随着信息技术的飞速发展,数据处理不仅在数量上要求越来越大,而且在质量上也要求越来越高。Oracle数据库在大多数企业中受到广泛使用,而SQL Server数据库也因为和Windows的联系,在企业中的使用也是非常广泛。
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢你肯定不知道的oracle数据库和sql server的这些区别 - 乔布简历
你肯定不知道的oracle数据库和sql server的这些区别
浏览( 927 )
学习过数据库的小伙伴儿应该知道oracle数据库和sql server数据库,今天乔布
小编就来告诉你这些你肯定不知道的oracle数据库和sql server的这些区别。
它们两者之间的区别主要体现在六大方面:
一是开放性。
1、SQL Server 只可在windows上运行,缺乏开放性,操作系统的稳定对数据库是非常重要的。
Windows9X系列产品比较偏重于桌面应用,NT server只是适合中、小型企业。而且windows平台的安全性、可靠性和伸缩性都是非常有限的。它不像unix那样久经考验,尤其是在处理大数据库。
2、Oracle 能在所有主流平台上运行;完全支持所有的工业标准;采用完全开放策略;可以使客户选择最适合的解决方案;对开发商全力支持。
二是可伸缩性、并行性。
1、SQL server 并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
2、Oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
三是性能。
1、SQL Server多用户时性能不佳。
2、Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录。
四是客户端支持及应用模式。
1、SQL Server C/S结构,只支持windows客户,可以用ADO、DAO、OLEDB、ODBC连接。
2、Oracle 多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
五是操作简便。
1、SQL Server 操作简单,但只有图形界面。
2、Oracle 较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同。
六是使用风险。
1、SQL server 完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来证明。并不十分兼容。
2、Oracle 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。在价格上 ORACLE贵过SQLSRVER。
转载请注明出处,欢迎参与讨论,纠错和补充内容
使用量25414
使用量21721
使用量16075
使用量7935
back to top
其他用户还浏览了本文讲的是sqlserver和oracle中对datetime进行条件查询的一点区别小结_数据库其它,
首先,看一下sql server,之前我们都通过前台用户选择一个起始时间和一个结束时间(以日为最小单位),然后来作为条件进行查询,如果直接通过”between starttime and endtime”来作为条件的话,发现会自动将”20
首先,看一下sql server,之前我们都通过前台用户选择一个起始时间和一个结束时间(以日为最小单位),然后来作为条件进行查询,如果直接通过”between starttime and endtime”来作为条件的话,发现会自动将””转化为”
00:00:00”,于是如下查询条件” between ‘' and ‘'”,只能得到16日的数据,17日的数据不能得到,如果想连17日的数据也查到的话,我们可以对用户选择时间进行一下处理:可以为其添加详细的时间条件,如” between ‘ 00:00:00' and ‘ 23:59:59'”;或者干脆去巧地将结束时间替换为下一天的日期也可,但是这样需要我们对递增日期做一下特殊处理,因为我们可能遇到选择当月最后一日的情况,详细的处理这里就不赘述了。 下面谈谈oracle数据库中的处理,同样是上面两种方式,但是如果采取精确时间的方式的话,我们需要通过oracle的数据库时间函数进行处理,相对比较繁琐,如果直接通过递增结束日期的方式或许更便捷一些,当然,只能适应所选日期最小单位为“日”的情况。还有一点需要说明的是,oracle中采取的日期字符串格式和sql server是不一样的,一般为”5-6月-09”这样的形式,这就需要我们将获取的时间格式做一下中间转换,否则语句将不能正常执行,当然,我们同样可以通过数据库函数来进行处理,但相对比较复杂一些。 其实,有的时候,对很多问题来说,我们可以采取比较正规的方法来处理,但是,如果在需求限定的范围内有一些虽然有所局限,但可以完全满足需求的实现方法,我觉得还是可以大胆地区用的,因为我们编程的终极目的终究是:用最简单的方式达到目的,凡事不能太过死板,这个过程其实也是提高我们对项目需求的理解,最后,就是需要注意我们抄小路必须要回避的一些问题,千万不能太过大意哦。
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sqlserver
数据库datetime 格式、数据库date和datetime、数据库datetime、数据库datetime类型、数据库中datetime类型,以便于您获取更多的相关知识。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
的信息,还有数据库datetime 格式、数据库date和datetime、数据库datetime、数据库datetime类型、数据库中datetime类型等
,所有相关内容均不代表云栖社区的意见!}

我要回帖

更多关于 sqlserver oracle对比 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信