爱问知识人 爱问教育 医院库

Oracle 和 SQL server 哪个好?

首页

Oracle 和 SQL server 哪个好?

Oracle 和 SQL server 哪个好?

提交回答
好评回答
  • 2005-06-30 16:14:44
    简单说来Oracle对系统的要求比SQL-Server要高的很多,Oracle主要用于大型数据库和企业服务器及应用。SQl—Server是中型数据库,比较适合大众应用。
    

    s***

    2005-06-30 16:14:44

其他答案

    2005-06-30 12:01:04
  •   Oracle和SQL Server浅析 
    来源:ChinaITLab 收集整理 
    2005-6-15 9:31:00 
      
     
      T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PL/SQL。这两种查询语言都对ANSI SQL-92标准进行了扩展以提供额外的支持力度。
      你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍了如何对这些扩展进行转化以用在SQL Server环境下。      列的选择      用PL/SQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求一样。
      SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表Dual。Dual表是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。
      这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。      Oracle下的DUAL查询如下所示:      SELECT 'x' FROM dual      而对等的SQL Server查询则是下面这个样子:      SELECT 'x'      以下是null相关的知识,用到了dual:      SQL> select 1 from dual where null=null;      没有查到记录      SQL> select 1 from dual where null='';      没有查到记录      SQL> select 1 from dual where ''='';      没有查到记录      SQL> select 1 from dual where null is null;      1   ---------   1      SQL> select 1 from dual where nvl(null,0)=nvl(null,0);      1   ---------   1      查看当前连接用户      SQL> select user from dual;      查看当前日期、时间      SQL> select sysdate from dual;      连接      Oracle用||符号作为连接符,而SQL Server的连接符是加号:+ 。
            Oracle查询如下所示:      Select 'Name' || 'Last Name' From tableName      对应的SQL Server查询如下所示:      Select 'Name' + 'Last Name'      数字取舍      Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。
      m的值可以为负,表示截去小数点左边m位数字。      在SQL Server下可以用Round或者Floor。      以下是Oracle查询:      SELECT TRUNC(15。79, 1) "Truncate" FROM DUAL;      下面是同类查询的SQL Server版本:      SELECT ROUND(15。
      79, 0) rounded , ROUND(15。79, 0,1) truncated      SELECT FLOOR(ROUND(15。79, 0)), FLOOR(ROUND(15。79, 0,1) )      数字转换      Oracle的TO_CHAR函数可以把n位NUMBER数据类型转换为VARCHAR2数据类型,同时采用可选的数字格式。
            SQL Server则通过STR函数返回数字转换之后的字符数据。不过,该函数不具方便的Format参数。      Oracle查询如下:      SELECT to_char(123。45, 99999999999999) from tab      SELECT to_char(EXPIRY_DATE, 'DDMONYYYY') from tab      以下是SQL Server版本的查询:      SELECT STR(123。
      45, 14)      SELECT STR(round(123。455 , 2), 12, 2)      SELECT CAST(REPLACE((CONVERT(varchar(12) , EXPIRYDATE, 106 )), '' , '') as varchar(9))      LENGTH和LEN      以下是Oracle的查询:      SELECT LENGTH('SQLMAG') "Length in characters" FROM DUAL;      以上查询在SQL Server下是这样写的:      SELECT LEN('SQLMAG') "Length in characters"      日期      以上两种系统都具有各自的当前日期和时间格式。
            Oracle取得日期和采用如下方式:      SYSDATE      SQL Server则是这样的:      GETDATE()      你可以用各种语法操作日期。
      以下的代码对Oracle日期值中的月份进行了格式调整(返回日期再加上n月):      Select add_months(sysdate, 12) from dual      SQL Server则是如下完成同等功能的:      Select dateadd(mm, 12, getdate())      数据的减法      以下代码在Oracle中直接对数据进行减法操作:      SELECT sysdate -add_months(sysdate, 12) FROM dual      SQL Server则是这样做的:      SELECT datediff(dd, GetDate(), dateadd(mm, 12, getdate())) 。

    1***

    2005-06-30 12:01:04

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 170-189
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):