DB2在查询语法上和Oracle、Mysql差异
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2在查询语法上和Oracle、Mysql差异相关的知识,希望对你有一定的参考价值。
Process - - - database - ObjectProcess - Server - User - Object
Process - database - User - Schema - Object
依次是mysql、Oracle、Db2
没做过oracle多实例,db2也是刚刚接触,浅显的理解
Mysql这种方式很初级最容易被人想到,Database与User分开是跟其他两个的区别,用授权来关联用户和数据库。
jdbc的连接地址里面,三者分别指定了Database、User、User(&Schema),Db2如果不单独创建Schema则形式是跟Oracle一样的。Db2的User只能是操作系统的用户,数据库本身不能创建用户,这点好像不太好,对于不同的应用系统,Mysql是创建不同的Database,Oracle是创建不同的User,这时Db2有两种方法,一是创建不同的操作系统用户,二是在User下创建不同的Schema,然后jdbc连接地址声明这个Schema。
就应用划分层面来说,三种数据库的Database、User、Schema在一个层面。Oracle相比Mysql可以新建多个实例,一个实例等同于Mysql的一个进程,我的理解Oracle的创建实例就是创建database,会新建出一个oracleserver。Db2的Database跟Oracle实例在一个层面,区别是Oracle创建实例比较麻烦,Db2一句话就执行完了。Oracle的两个实例之间独立,Db2也是。访问需要通过特定方式。
统一说来,
1:Oracle的实例与Db2的数据库是一回事,应该被统一称作实例比较合适,而Mysql便是单实例模式
2:应用划分层,三者分别是database、user、schema,统一称作database比较合适,真正的数据都在这一层。
从这里理解于是:用户名与密码的作用只是用来登陆,以及赋予对database的访问权限。
mysql中这两者是无关的。
oracle这里本没有database的概念,user就是database,可以理解为创建一个user时同时创建一个同名的database。有几个user就有几个database。
db2创建一个user会同时创建一个同名的database作为schema,另外还能再创建其他多个schema。 参考技术A mysql是本来是sun的,个人用途是免费,而且开源。后来oracle收购mysql后,貌似搞了很大动作。总之mysql是最廉价的关系数据库,一般用在PC 服务器,linux集群。db2是ibm的,功能齐全,可以部署在各个级别服务器或集群上,从pc到刀片服务器,到机架服务器再到小型机和大型机。
最后说一句,mysql主要是互联网企业在用,成本低嘛,db2是电信、金融行业在用,成本不是问题,主要是厂家服务+稳定
MySQL,Oracle,SQL Server——选取前10条——语法差异
前言
今天,用select top 10 * from table;在mysql上报错。
原因
实现选取前10条,不同数据库存在差异。
描述
MySQL
select * from table1 limit 10
#具体语法:
select * from table1 limit m,n;
#从m开始选取n条。
SQL Server
select top 10 * from table
Oracle
select * from table where rownum<=10
以上是关于DB2在查询语法上和Oracle、Mysql差异的主要内容,如果未能解决你的问题,请参考以下文章