Oracle与SQL Server的语法区别——Oracle数据库学习

因为长期使用SQL Server和MySQL数据库,现在因为工作原因使用Oracle数据库时难免会有些不同,特此记录,持续更新。

1. 调用函数不能够直接SELECT

不能够像MS或SS那样直接SELECT 1+1或者SELECT CONCAT('','')
正确做法是:

SELECT 1+1,CONCAT('A','B') FROM dual;

2. CONCAT函数只能有两个参数

Oracle中CONCAT函数只能有两个参数,如果需要连接多个字符串,需要嵌套,如下:

SELECT CONCAT(CONCAT('A', 'B'),'C') FROM dual;SELECT CONCAT(CONCAT(CONCAT('A', 'B'),'C'),'D') FROM dual;

3. CONCAT连接单引号

由于CONCAT函数中的参数由单引号分隔,因此如何在CONCAT函数的结果中添加单引号字符并不简单。

SELECT CONCAT('Let''s', ' Go') FROM dual;
-- 输出为: Let's Go

4. 连接多个字符串

在 Oracle中,||运算符可以将两个或两个以上的字符串连接在一起。

SELECT 'This ' || 'is ' || 'test ' FROM dual;
-- 输出为: This is test

5. Initcap函数

在Oracle中,Initcap()函数可以将每个单词中的第一个字符设置为大写,其余的设置为小写。

SELECT INITCAP('VERSION HUANG in hangzhou') FROM dual;
-- 输出为: Version Huang In Hangzhou

6. 空值处理函数

在SQLServer中,对空值的处理可以使用ISNULL()函数来处理,在Oracle中也有相同的方法,不过函数名为NVL(),具体操作如下:

SELECT NVL(NULL, 5) FROM dual;
-- 输出为:5

7. 获取当前时间

在开发中经常会获取当前系统时间,在SQLServer中,通常使用GETDATE()方法,而在Oracle中,则使用SYSDATE关键字。

SELECT SYSDATE FROM dual;
-- 输出为:2021/5/18 15:02:12

而对时间进行格式化的方法,则使用TO_CHAR()函数:

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd=>hh:mm:ss') FROM dual;
-- 输出为:2021-05-18=>03:05:58

8. 判断表是否存在

在SQLServer中,判断一个表是否存在时,会使用IF OBJECT_ID('xxx') IS NOT NULL方法来查询,在Oracle中也有相同的方法,不过写法具体操作如下:

SELECT COUNT(1) FROM user_tables WHERE table_name = 'MF_FACTORY_BASE';
-- 当表存在时输出为1;其中COUNT(1)可根据需要替换

9. 部分查询

在SQLServer中,查询表的前几行数据时,会使用TOP关键字来查询,在Oracle没有类似关键字,但可以通过ROWNUM关键字来筛选:

SELECT *FROM (SELECT * FROM MF_FACTORY_BASE ORDER BY ID)
WHERE ROWNUM <= 10;

Oracle与SQL Server的语法区别——Oracle数据库学习相关推荐

  1. Access和sql server的语法区别

    Access和sql server的语法区别 一.有区别的函数及解决方案  以下所示的解决方案中的函数定义在untDataBase单元中TAdoConn类的方法中. 序号 简述 Access语法 Sq ...

  2. 如何查询Oracle,Sql Server,MySQL 中的数据库名称、数据表名称、字段名称

    在开发项目的时候有个功能需要查看数据库中有哪些表,以及每个表有哪些字段,在网上查看了一下,现在分享给大家. Oracle: 查询数据表(Tables)名称: select Table_Name, Ta ...

  3. mysql与SQL SERVER 基本语法区别

    无论SQL SERVER 还是MYSQL 一个表只能存在一个字段是自增长列 1.修改表 --SQL SERVER alter table table_name drop column column_n ...

  4. 深度对比Oracle与SQL Server

    本译文采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议发布,转载请保留此信息 译者:马齿苋 | 链接:http://www.dbabeta.com/2010/oracle ...

  5. Oracle 与SQL Server 2000常用函数对照 [摘抄]

    此文章系摘抄,非原创,供参考. 文中提及函数并非Oracle及SQL Server 的全部功能,尤其分析挖掘函数,并未完全涵盖,请以实际解决问题优先,勿妄谈二者优劣. 1.绝对值 S:select a ...

  6. 使用navicat premium将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL

    有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle. 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面. ...

  7. Oracle和sql server中复制表结构和表数据的sql语句

    在Oracle和sql server中,如何从一个已知的旧表,来复制新生成一个新的表,如果要复制旧表结构和表数据,对应的sql语句该如何写呢?刚好阿堂这两天用到了,就顺便把它收集汇总一下,供朋友们参考 ...

  8. SQL比oracle卡,对比Oracle与SQL Server

    尽管Oracle和SQL Server的定位都是企业级的数据库产品,但是用过它们的DBA应该都知道,Oracle相比于微软数据库平台,在高级特性方面的优势还是挺明显的.特别是数据库高可用性以及安全性上 ...

  9. linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...

  10. sql数据迁移到oracle数据库,从Oracle到SQL Server数据库主键的迁移

    由于项目需要要将以前Oracle的数据库转化为SQL Server,今天利用SQL Server的DTD进行数据库的迁移,但导入以后发现只导入了表结构和数据,而表的一些主键约束都没导过来,感觉很郁闷, ...

最新文章

  1. Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据
  2. Express.js 3.0 发布,Node.js 的高性能封装
  3. 线程同步——内核对象实现线程同步——等待函数
  4. mysql strtolower_GitHub - redfoxli/mysqlstr: a php extension provide string processing of mysql
  5. 阿里云峰会 | 统一召回引擎在搜索场景的应用实践
  6. 第四节:HTML5给表单带来的新标签、新属性、新类型
  7. java 高性能代码_[Java教程]Javascript高性能代码(一)
  8. increment java_post-increment, pre-increment. JAVA
  9. java 聊天机器人_java实现自动回复聊天机器人
  10. 为什么需要框架(java)
  11. 计算机信息数字化基础1测验题,20春-计算机信息技术-章建民-1-中国大学mooc-题库零氪...
  12. 多传感器融合及其应用
  13. 单工 半双工 全双工的区别
  14. 榆熙教育有限公司:拼多多商家应该了解的常用推广方式
  15. IP、域名和端口号之间的联系
  16. 华为鸿蒙最大合作伙伴,全球第三大手机系统「鸿蒙」上线,这19款能抢先用…...
  17. 深度学习计算机视觉发展简述
  18. 《学习记录》“Python”计算进货价格(增加客户类型)
  19. 微信红包居然可以撤回?这功能我猜你应该还不知道!
  20. splice和slice的使用

热门文章

  1. php baseconvert,mb_convert_encoding
  2. 下载anaconda后配置环境变量
  3. (9)Redis-Cluster集群理论及实践【下】
  4. 每天进步一点点013
  5. Web开发必须知道的知识点
  6. Linux下硬盘分区详解
  7. 提交spark任务命令
  8. Qt_解决Qt5.15 + Xcode12iOS端qmake不可用的问题
  9. 解析域名地址并生成win路由增强版
  10. java的维护_天了噜,Java 8 要停止维护了!