Oracle与SQL Server的语法区别——Oracle数据库学习
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数据库学习相关推荐
- Access和sql server的语法区别
Access和sql server的语法区别 一.有区别的函数及解决方案 以下所示的解决方案中的函数定义在untDataBase单元中TAdoConn类的方法中. 序号 简述 Access语法 Sq ...
- 如何查询Oracle,Sql Server,MySQL 中的数据库名称、数据表名称、字段名称
在开发项目的时候有个功能需要查看数据库中有哪些表,以及每个表有哪些字段,在网上查看了一下,现在分享给大家. Oracle: 查询数据表(Tables)名称: select Table_Name, Ta ...
- mysql与SQL SERVER 基本语法区别
无论SQL SERVER 还是MYSQL 一个表只能存在一个字段是自增长列 1.修改表 --SQL SERVER alter table table_name drop column column_n ...
- 深度对比Oracle与SQL Server
本译文采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议发布,转载请保留此信息 译者:马齿苋 | 链接:http://www.dbabeta.com/2010/oracle ...
- Oracle 与SQL Server 2000常用函数对照 [摘抄]
此文章系摘抄,非原创,供参考. 文中提及函数并非Oracle及SQL Server 的全部功能,尤其分析挖掘函数,并未完全涵盖,请以实际解决问题优先,勿妄谈二者优劣. 1.绝对值 S:select a ...
- 使用navicat premium将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle. 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面. ...
- Oracle和sql server中复制表结构和表数据的sql语句
在Oracle和sql server中,如何从一个已知的旧表,来复制新生成一个新的表,如果要复制旧表结构和表数据,对应的sql语句该如何写呢?刚好阿堂这两天用到了,就顺便把它收集汇总一下,供朋友们参考 ...
- SQL比oracle卡,对比Oracle与SQL Server
尽管Oracle和SQL Server的定位都是企业级的数据库产品,但是用过它们的DBA应该都知道,Oracle相比于微软数据库平台,在高级特性方面的优势还是挺明显的.特别是数据库高可用性以及安全性上 ...
- linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...
本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...
- sql数据迁移到oracle数据库,从Oracle到SQL Server数据库主键的迁移
由于项目需要要将以前Oracle的数据库转化为SQL Server,今天利用SQL Server的DTD进行数据库的迁移,但导入以后发现只导入了表结构和数据,而表的一些主键约束都没导过来,感觉很郁闷, ...
最新文章
- Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据
- Express.js 3.0 发布,Node.js 的高性能封装
- 线程同步——内核对象实现线程同步——等待函数
- mysql strtolower_GitHub - redfoxli/mysqlstr: a php extension provide string processing of mysql
- 阿里云峰会 | 统一召回引擎在搜索场景的应用实践
- 第四节:HTML5给表单带来的新标签、新属性、新类型
- java 高性能代码_[Java教程]Javascript高性能代码(一)
- increment java_post-increment, pre-increment. JAVA
- java 聊天机器人_java实现自动回复聊天机器人
- 为什么需要框架(java)
- 计算机信息数字化基础1测验题,20春-计算机信息技术-章建民-1-中国大学mooc-题库零氪...
- 多传感器融合及其应用
- 单工 半双工 全双工的区别
- 榆熙教育有限公司:拼多多商家应该了解的常用推广方式
- IP、域名和端口号之间的联系
- 华为鸿蒙最大合作伙伴,全球第三大手机系统「鸿蒙」上线,这19款能抢先用…...
- 深度学习计算机视觉发展简述
- 《学习记录》“Python”计算进货价格(增加客户类型)
- 微信红包居然可以撤回?这功能我猜你应该还不知道!
- splice和slice的使用