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 ...
随机推荐
- PLSQL_基础系列02_分组函数GROUP BY / ROLLUP / CUBE(案例)
2014-11-30 Created By BaoXinjian
- POJ 2311 Cutting Game(Nim博弈-sg函数/记忆化搜索)
Cutting Game 题意: 有一张被分成 w*h 的格子的长方形纸张,两人轮流沿着格子的边界水平或垂直切割,将纸张分割成两部分.切割了n次之后就得到了n+1张纸,每次都可以选择切得的某一张纸再进 ...
- mysql给日期增减
有个需求就是判断过期的供求信息,如果用户刷新了则判断过期日期是否小于现在,如果是则自动推迟7天. IF(expire<NOW(),DATE_ADD(NOW(), INTERVAL 7 DAY), ...
- 股票k线
与上一篇文章相比k线图主要的难点 1.tooltip的定制化显示: 当手指触摸手机屏幕上下拖动可能会手指的事件陷入图表无法进行上下拖动 tooltip:{followMouseMove} follow ...
- python中的生成器
什么是生成器? 生成器是一个包含了特殊关键字yield的函数.当被调用的时候,生成器函数返回一个生成器.可以使用send,throw,close方法让生成器和外界交互. 生成器也是迭代器,但是它不仅仅 ...
- 通过位运算生成ID
public static void main(String[] args) { long serverId = 65535; System.out.println("ServerId:&q ...
- ios模拟器未能安装此应用程序
网上介绍了很多方法,觉得有些不太靠谱.这里只解释我试验过的最简单最粗暴的方法: 删除模拟器上旧的APP 以外,也可以做 CLEAN (cmd+shift+K) 把旧的build 删掉.
- 将多个网页制作成一个CHM文件
有时我们想将一个网站上的多个页面集中保存起来,在即使没有网络的情况下也能够查看. 这时可以将这些网页保存成.mht的单个文件(在IE中打开时,点击 文件 -> 另存) 再使用Easy CHM去将 ...
- CentOS 7 安装无线驱动
一.确认网卡的版本 lspci | grep Network [root@bogon ~]# lspci | grep Network :) :) [root@bogon ~]# 二.下载网卡的驱动, ...
- [ActionScript 3.0] 安全沙箱的类型sandboxType,判断当前程序是AIR还是web程序
表示其中正在运行执行调用的 文件的安全沙箱的类型. Security.sandboxType 具有下列值之一: remote (Security.REMOTE):此文件来自 Internet URL, ...