Oracle与SqlServer的区别大吗

2024-03-01 0 234
目录
  • 前言
    • 1.数据类型区别
    • 2.数据表个数查询的区别
    • 3.实现查询
    • 4.oracle不能再表后面使用’as’ 表字段后面可以使用‘as’,SQL Server 可以再表后面和表字段后面都可以使用‘as’
    • 5.oracle区分表字段的大小写,SQL Server 不区分表字段的大小写
    • 6.时间的处理
  • 总结

    前言

    Oracle与SqlServer的差异

    1.数据类型区别

    oracle——sqlServerCHAR(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——DATETIMEDATE:存储日期和时间,存储纪元、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的差异内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

    您可能感兴趣的文章:

    • 浅谈Mysql、SqlServer、Oracle三大数据库的区别
    • sqlserver中delete、update中使用表别名和oracle的区别
    • sqlserver和oracle中对datetime进行条件查询的一点区别小结

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 MsSql Oracle与SqlServer的区别大吗 https://www.u-9.cn/database/mssql/176272.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务