Oracle与SqlServer的区别大吗

 更新时间:2024年02月21日 10:27:03   作者:你别哭,我能弯腰。  
这篇文章主要介绍了Oracle与SqlServer的区别大吗,差异主要表现在数据类型区别、数据表个数查询的区别以及oracle区分表字段的大小写,SQL Server 不区分表字段的大小写,具体细节跟随小编一起学习下吧

前言

Oracle与SqlServer的差异

1.数据类型区别

oracle——sqlServer
CHAR(length)——CHAR(length):存储固定长度的字符串。参数length指定了长度,如果存储的字符串长度小于length,用空格填充。默认长度是1,最长不超过2000字节。

VARCHAR2(length)——VARCHAR(length)
VARCHAR2(length):存储可变长度的字符串。length指定了该字符串的最大长度。默认长度是1,最长不超过4000字符。

NUMBER(p,s)——decimal(18, 0)
NUMBER(p,s):既可以存储浮点数,也可以存储整数,p表示数字的最大位数(如果是小数包括整数部分和小数部分,p默认是38为),s是指小数位数。

DATE——DATETIME
DATE:存储日期和时间,存储纪元、4位年、月、日、时、分、秒,存储时间从公元前4712年1月1日到公元后4712年12月31日。

oracle
各种数据类型的表达形式:
字符型用单引号加字符表示,例如,’ABC’
数字型直接用阿拉伯数字表示,例如,123
日期型不能直接表示,必须使用函数转换,
例如,DATE’2016-12-31’,TO_DATE(’20161231201237’,’YYYYMMDD 24HH:MI:SS’)
各种数据类型的不同特点:
字符型可以进行拼接,
数字型可以进行算术运算,
日期型也能进行算术运算,但是只能日期减日期,或者日期加减数字
各种数据类型比较大小的方式:
字符型比较第一个字符的ASC码的大小
数字型比较数值的大小
日期型也是直接比较大小,越早的时间越小

2.数据表个数查询的区别

SQL Server

---查询数据库中表的个数
select * from sysobjects where type='U'
--查询某个类型表的个数
select * from sysobjects
where type='U'
   and name like '%drugcost%'

Oracle

--查询数据库表的个数
select * from user_tables;
--查询某个类型表的个数
select * from user_tables where table_name like '%drugcost%';

3.实现查询

--sql server
select top 3 * from ODS_Fact_201201Incomedtl
--oracle
select * from (
SELECT row_number() over (order by "Id") as rn,
      "Id", "Date", "Sign", "PatientNo", "itemid",
      "AccountingId", "Deptid", "ExecDeptid", "Doctorid", "Amount", "Money"
FROM "ODS_Fact_201201Incomedtl" ) a
where rn <= 3;

4.oracle不能再表后面使用’as’ 表字段后面可以使用‘as’,SQL Server 可以再表后面和表字段后面都可以使用‘as’

5.oracle区分表字段的大小写,SQL Server 不区分表字段的大小写

6.时间的处理

--sql server
select YEAR(Date) as years,MONTH(Date) as months,sum(Money) as money
from ODS_Fact_201201Incomedtl a with(nolock)
left join ODS_Dim_Item b with(nolock) on a.itemid = b.id 
where b.Item like '%挂号%'
group by YEAR(Date),MONTH(Date)
--oracle
select to_char(a."Date",'yyyy') as dateyears,
       to_char(a."Date",'mm') as datemonths,
       sum("Money") as Money
from "ODS_Fact_201201Incomedtl" a
left join "ODS_Dim_Item" b on a."itemid" = b."id"
where b."Item" like '%挂号%'
group by to_char(a."Date",'yyyy'),to_char(a."Date",'mm');

总结

本文仅仅简单介绍了Oracle与SqlServer的数据类型的差异。

到此这篇关于Oracle与SqlServer的差异的文章就介绍到这了,更多相关Oracle与SqlServer的差异内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQLServer数据库处于恢复挂起状态的解决办法

    SQLServer数据库处于恢复挂起状态的解决办法

    这篇文章主要介绍了SQLServer数据库处于恢复挂起状态的解决办法 ,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • SQL Server2017使用IP作为服务器名连接服务器

    SQL Server2017使用IP作为服务器名连接服务器

    本文主要介绍了SQL Server2017使用IP作为服务器名连接服务器,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • SQL语句优化提高数据库性能

    SQL语句优化提高数据库性能

    为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化,本文给大家介绍优化SQL语句提高数据库性能,对sql语句优化性能优化相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • SqlServer获取存储过程返回值的实例

    SqlServer获取存储过程返回值的实例

    SqlServer获取存储过程返回值的实例,需要的朋友可以参考一下
    2013-04-04
  • SQL Server查询数据库中表使用空间信息实现脚本

    SQL Server查询数据库中表使用空间信息实现脚本

    这篇文章主要介绍了SQL Server查询数据库中表使用空间信息实现脚本,本文直接给出实现代码,需要的朋友可以参考下
    2015-07-07
  • 跨数据库实现数据交流

    跨数据库实现数据交流

    这篇文章主要介绍了跨数据库实现数据交流的两种方式,一是通过链接服务器,二是使用OPENDATASOURCE/OPENROWSET连接远程服务器,需要的朋友可以参考下
    2015-08-08
  • SQL IFNULL()函数详细解析(最新推荐)

    SQL IFNULL()函数详细解析(最新推荐)

    IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值,这篇文章主要介绍了SQL IFNULL()函数详细解析,需要的朋友可以参考下
    2023-01-01
  • sqlserver性能优化之内存优化详解

    sqlserver性能优化之内存优化详解

    本文介绍了SQL Server内存优化的详细方案,包括核心配置、监控手段和高级技术,并提供了脚本示例及配置建议,内容涵盖了内存上下限设置、启用AWE、缓冲池扩展、监控关键内存指标、清理缓存策略、索引优化、内存优化表(In-Memory OLTP)以及自动化维护与监控等
    2026-03-03
  • mssql server 2012(SQL2012)各版本功能对比

    mssql server 2012(SQL2012)各版本功能对比

    今天装了操作系统2012,也顺便搞下SQL 2012看了下版本,选择了自己的版本,也特留下版本对比供后来人参考
    2013-04-04
  • sql动态行转列的两种方法

    sql动态行转列的两种方法

    sql动态行转列的两种方法,需要的朋友可以参考一下
    2013-04-04

最新评论