SQL Server、Oracle和MySQL三种常用数据库的比较(一)
- Oracle和MySQL的每条SQL语句都以分号结尾,而SQL Server语句末尾不需要分号。
- 对于包含空格的列名,SQL Server使用方括号括起来注明,如[Last Name]。MySQL使用重音符,如`Last Name`。Oracle则使用双引号,并且此时区分列名的大小写,如"Last Name"不等于"LAST NAME"。
SELECT [Last Name] FROM Customers SELECT `Last Name` FROM Customers; SELECT "Last Name" FROM Customers;
- 单引号用于注明直接量,查询结果第一列由直接量填充构成。单独的一个数字也可以作为直接量。
SELECT 'First Name: ', FirstName FROM Orders SELECT 5, FirstName FROM Orders
- SQL Server使用加号连接字符,MySQL使用CONCAT函数,而Oracle则使用两根竖线 ||。
--SQL Server SELECT OrderID, FirstName, LastName, FirstName + '' + LastName FROM Orders--MySQL SELECT OrderID, FirstName, LastName, CONCAT(FirstName, '', LastName) FROM Orders;--Oracle SELECT OrderID, FirstName, LastName, FirstName || '' || LastName FROM Orders;
- 可以使用AS指令为没有表头的计算字段指定列的别名。其中,SQL Server和MySQL需要使用单引号注明别名,而Oracle不需要。如果Oracle中列的别名包含了嵌套的空格,则需要使用双引号注明别名。
SELECT OrderID, FirstName, LastName, FirstName + '' + LastName AS 'Name' FROM OrdersSELECT OrderID, FirstName, LastName, CONCAT(FirstName, '', LastName) AS 'Name' FROM Orders;SELECT OrderID, FirstName, LastName, FirstName || '' || LastName AS Name FROM Orders;
- MySQL和SQL Server也可以使用AS指令指定表的别名,Oracle不使用关键字指定表的别名。表的别名不需要使用单引号注明。当从多个表中选取数据时,可以将表名作为列名的前缀。
SELECT LastName FROM Orders123 AS Orders SELECT Orders.LastName FROM Orders123 AS Orders; SELECT Orders.LastName FROM Orders123 Orders;
- Oracle要求每条SELECT语句中都要有FROM子句,而MySQL和SQL Server则不需要。Oracle为此提供了一个名为DUAL的虚拟表。
- Oracle没有LEFT函数和RIGHT函数,但是其SUBSTR函数提供了相同的功能。
- MySQL和ORACLE都实现了CONCAT函数。但是Oracle的CONCAT函数只接受两个参数。
--MySQL SELECT OrderID, FirstName, LastName, CONCAT(FirstName, '', LastName) AS 'Name' FROM Orders;--Oracle SELECT OrderID, FirstName, LastName, CONCAT(CONCAT(FirstName, ''), LastName) AS "Name" FROM Orders;
- 返回当前时间和日期的函数,SQL Server中是GETDATE,MySQL的是NOW,Oracle的是CURRENT_DATE。
- SQL Server中的DATEPART函数能够返回给定日期对应的月份、周数或者是星期几。MySQL中具有类似功能的函数是DATE_FORMAT。Oracle中没有与之相同的函数。
- SQL Server中的DATEDIFF函数可以计算两个给定日期之间相差的天数、周数、月份数等。MySQL中的DATEDIFF函数只能计算两个日期之间相差的天数。Oracle没有DATEDIFF函数。
- RAND函数返回0到1之间的一个随机数。PI函数返回数学运算中的pi的值。Oracle没有RAND和PI函数。
- CAST函数用于数据类型转换,在不同的数据库中语法会有不同。
--SQL Server SELECT '2009-04-11' AS 'Original Date', CAST ('2009-04-11' AS DATETIME) AS 'Converted Date'--Oracle SELECT '2009-04-11' AS "Original Date", CAST ('11-APR-2009' AS DATE) AS "Converted Date" FROM DUAL;
- SQL Server中的ISNULL函数可以将NULL值替换为一个有意义的值。MySQL和Oracle中对应的函数分别为IFNULL和NVL。
--SQL Server SELECT Description, ISNULL (Color, 'Unknown') AS 'Color' FROM Products--MySQL SELECT Description, IFNULL (Color, 'Unknown') AS 'Color' FROM Products;--Oracle SELECT Description, NVL (Color, 'Unknown') AS Color FROM Products;
以上对比基于Microsoft SQL Server 2008,Oracle Database 11g和同一时期的MySQL。部分功能可能已经发生变化。
仅供参考。
SQL Server、Oracle和MySQL三种常用数据库的比较(一)相关推荐
- oracle sql为null值,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办
在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...
- oracle rds 运维服务_从运维的角度分析使用阿里云数据库RDS的必要性–你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库...
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- VB连接Sql Server,Oracle,SyBase,Access数据库操作实例
- VB连接数据库是常用的操作 对于小型数据的存取是非常不错的.在设计时 对于不同数据的连接方式都不同 这里使用了ADODB连接字符串的方式来访问常见的数据库:Sql Server,Oracle,Sy ...
- ezdml 支付mysql 吗_EZDML数据库表结构设计器_设计sql、oracle、mysql数据库表结构 V2.39 免费版...
很多程序员或者网站站长在设计网站数据库的时候都要进行表结构设计,如果您不想操作原始的数据库工具之想简单设计一下数据库表结构,那么你不妨试试这款EZDML数据库表结构设计器,可以快速设计sql.orac ...
- 通过SQL Server 2008 访问MySQL
在公司中经常会遇到部署多种数据库环境的情况,对于开发人员来说经常在不同数据库之间转换确实有些繁琐,本篇将介绍从SQL Server 操作MySQL 数据库的方法. 数据库测试环境 1. SQL Ser ...
- Oracle/MSSQL/Mysql 常用数据库的字段类型及大小
Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字 ...
- SQL Server,Oracle,DB2索引建立语句的对比
http://database.51cto.com/art/201108/284540.htm SQL Server,Oracle,DB2索引建立语句的对比 2011-08-17 20:48 henr ...
- oracle repeatable read,Oracle和Mysql中的数据库事务有关问题:Mysql Read-Repeatable有有关问题...
Oracle和Mysql中的数据库事务问题:Mysql Read-Repeatable有问题 今天不知不觉想到数据库的乐观锁和悲观锁,遂想写个程序测测,却发现了另一个问题,Mysql InnoDB的R ...
- 解决SQL Server管理器无法连接远程数据库Error: 1326错误
解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...
最新文章
- 互联网思维-NO.1思维(2)
- Python 图片亮度
- VRML语法基础跟简介
- spring 定时任务执行两次解决办法
- STM32 电机教程 24 - ST MCLIB实战之无感变绝对式位置传感器
- 2014恒生电子实习生笔试数据库部分
- 模拟实现ArrayList与 LinkedList
- Flex与.NET互操作(九):FluorineFx.NET的认证(Authentication )与授权(Authorization)
- Ext.Net中CheckboxSelectionModel的动态隐藏(显示),一定条件下的隐藏(不让选择),获得多选栏位的信息,及后台控件的动态创建...
- 【POJ - 1947】Rebuilding Roads (树形dp,背包问题,树形背包dp)
- java forkjoinpool_Java并发——Fork/Join框架与ForkJoinPool
- 2018-04-22jenkins+maven+svn环境搭建学习心得
- int main(argc,char *argv[])的含义
- fluidsim元件库下载_模块七FluidSIM软件应用 (1)
- 微型计算机的性能主要由微处理器的什么,微型计算机的性能主要由微处理器的什么决定...
- python 什么是鸭子类型
- weak的创建与释放
- Parallels Desktop 16 已损坏,无法打开,您应该推出磁盘映像。怎么解决?
- ffmpeg 生成单色测试视频
- poi读取doc文档