SQLServer、MySQL、Oracle语法差异小集锦
一、差异集锦
在建表的时候,只有自增的语法不同。
下面给出3种数据库通用的建表与初始化测试语句:
CREATE TABLE Country(
Id int PRIMARY KEY,
Name varchar(20)
); CREATE TABLE Person (
Id int PRIMARY KEY,
CountryId int,
Name varchar(20) NOT NULL UNIQUE,
Sex int DEFAULT 0,
CONSTRAINT FK_CID_PID FOREIGN KEY (CountryId) REFERENCES Country(Id)
);
插入测试数据:
INSERT INTO Country VALUES(1, '蜀国');
INSERT INTO Country VALUES(2, '魏国');
INSERT INTO Country VALUES(3, '吴国'); INSERT INTO Person VALUES(1,1,'刘备',1);
INSERT INTO Person VALUES(2,1,'关羽',1);
INSERT INTO Person VALUES(3,1,'张飞',1);
INSERT INTO Person VALUES(4,2,'曹操',1);
INSERT INTO Person VALUES(5,2,'郭嘉',1);
INSERT INTO Person VALUES(6,2,'典韦',1);
INSERT INTO Person VALUES(7,3,'孙权',1);
INSERT INTO Person VALUES(8,3,'周瑜',1);
INSERT INTO Person VALUES(9,3,'大乔',2);
| SQLServer | MySQL | Oracle | |
| 自增 | identity(1,1) | AUTO_INCREMENT | SEQUENCE/触发器 |
| 自增行插入 | INSERT INTO Person VALUES(NULL,1,'魏延',1) | INSERT INTO Person VALUES(1,'魏延',1) | INSERT INTO Person VALUES(SEQID.NEXTVAL,1,'魏延',1) |
| 取前几条 | SELECT TOP 5 * FROM Person | SELECT * FROM Person LIMIT 0,5 | SELECT * FROM Person WHERE ROWNUM < 5 |
| 表别名 | SELECT * FROM Person AS P INNER JOIN Country AS C ON P.CountryId = C.Id | SELECT * FROM Person AS P INNER JOIN Country AS C ON P.CountryId = C.Id | SELECT * FROM Person P INNER JOIN Country C ON P.CountryId = C.Id |
| 字段名大小写 | 与SELECT相同 | 与SELECT相同 | Oracle中,字段名都是大写的,即使SELECT语句中是小写,得到的结果也是大写。 |
| 获取当前时间&查询临时值 | SELECT now() AS NOWDATE | SELECT getdate() AS NOWDATE | SELECT sysdate AS NOWDATE FROM Dual--需加Dual虚表 |
SQLServer、MySQL、Oracle语法差异小集锦的更多相关文章
- C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)
[前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...
- C#操作SqlServer MySql Oracle通用帮助类
C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...
- java JDBC链接sqlserver/mysql/oracle
今天初学数据库的一些简单创建数据库和表,并进行简单的查询,插入. 接下学习的就是java工程中怎么链接数据库呢.主要的方法和用到的类如下. 切记,mysql需要的jar包 mysql-connecto ...
- jdbc连接sqlserver,mysql,oracle
class xxx{ private static String port = "1433"; private static String ip = "192.168.2 ...
- sqlserver,mysql,oracle通用的模拟和改进的全文搜索算法
问:数据库效率最低的地方是什么? 答:表扫描 问:表扫描常见的情况是 答:like '%a%' 这类查询 如果使用全文检索引擎,又无法满足我们的需求的时候怎么办,比如要从 一个商品名称 "农 ...
- SQL Server,MySQL,Oracle三者的区别
SQL Server,MySQL,Oracle三者的区别 2016-10-14 转自:SQL Server,MySQL,Oracle三者的区别 目录 1 Oracle.Sql Server.MySql ...
- mysql oracle postgresql 体系架构对比
2个角度sqlservermysqloracle 12cpostgresql如果从create database角度来看 那么一个实例是可以对应多个数据库的~如果从实例和磁盘上的数据库文件(数据文件. ...
- MYSQL和ORACLE的触发器与存储过程语法差异
整改了一番脚本,遇到了一些两种数据库之间的差异,记录一下: 触发器: 差异 MYSQL ORACLE 说明 创建语句不同 create trigger `AA` BEFORE INSERT on `B ...
- MySQL基本语法(一):和SQL Server语法的差异小归纳
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
随机推荐
- Objective-C中nil与release的区别与用法
首先说一下他们两的作用,nil就是把一个对象的指针置为空,只是切断了指针与内存中对象的联系,它对内存的释放没有什么作用:而release才是真正用于内存释放的,release后系统会将该块内存标记为可 ...
- PLSQL_性能优化系列09_Oracle Partition Table数据分区表
2014-08-22 Created By BaoXinjian
- PO_PO系列 - 安全文件管控管理分析(案例)
2014-07-01 Created By BaoXinjian
- 【转】C++ 单例模式
http://blog.csdn.net/hackbuteer1/article/details/7460019 单例的一般实现比较简单,下面是代码和UML图.由于构造函数是私有的,因此无法通过构造函 ...
- Eclipse中构建Fluent风格到Formatter
The place to set this is on the "Line Wrapping" tab of the code formatting preferences pag ...
- UCOS-互斥信号量(学习笔记)
互斥信号量主要是为了解决信号量出现的优先级反转的情况:任务的运行取决于优先级和获得信号量2个条件,并且获得信号量又优先于设定的优先级.剥夺性内核对信号量进行独占访问,就有可能出现先获得信号量的低优先级 ...
- UIView阴影和圆角的关系
UIView阴影和圆角的关系 UIView 的 clipsToBounds属性和CALayer的setMasksToBounds属性表达的意思是一致的. 取值:BOOL(YES/NO) 作用:决定 ...
- vim操作笔记
1.切换到下一个文件 假设要切换的文件名为 test.py :ex test.py 2.文档内复制命令 yy "复制光标所在行.或大写一个Y. 2yy "复制两行. y^ &quo ...
- Gatling的进阶二
1. 参数化 Gatling可以很方便使用csv文件进行参数化,例如一个用户信息表: /* user_information.csv */ username,password,accoun ...
- cocos2dx跨平台使用自定义字体
首先需要一个ttf文件的字体. 在ios中的方法: 把ttf文件放入资源文件下,然后在你的工程的Info.plist文件中新建一行(Add Row),添加key为:Fonts provided by ...