当前位置:首页 > 数据库 > SQL Server、Oracle、db2所提供的简装版(Express)比较

SQL Server、Oracle、db2所提供的简装版(Express)比较

2022年11月07日 13:26:17数据库15

引子

近日,给一个客户做一个定制内容的培训,他们目前用的开发环境是Visual Studio 2008,主要做的是Windows Forms开发,后台数据库之前用的是Oracle,现在用的是db2。所以我特别整了一个虚拟机,安装了这些需要的软件,并且也借此机会,对SQL Server,Oracle和db2所提供的简装版(Express Editio)做一个简要的比较,这篇文章是为记录

前言

目前数据库领域,三大厂商就是微软,Oracle和IBM,他们的拳头产品分别就是SQL Server,Oracle,db2。这种三足鼎立的局面,已经存在了一段时间,而且还将继续存在下去。这三个产品,我个人认为本质上的差异性并不大,用户在选择的时候,主要根据自己公司的平台基础架构和使用习惯,以及知识储备的情况决定。

SQL Server Express

由于工作背景的关系,我主要是使用SQL Server,所以先从它说起吧。

最早SQL Server 2000就提供了所谓的MSDE(Desktop Engine),目的就是提供一个免费可以分发的小型数据库引擎,方便开发和部署。后来在SQL Server 2005中正式改名为SQL Server Express,这个名称沿用到了SQL Server 2008以及R2这个版本.

SQL Server Express是免费的,它可以用于小型业务系统,或者一些实验性的开发场景。它有一个容量限制,就是数据库不能超过4GB。

SQL Server Express可以单独下载安装,也可以通过安装Visual Studio 的时候,勾选这个组件实现自动安装。一般安装好之后,会有两个服务组件,如下图所示

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

SQL Sever Express没有自带管理工具,一般可以通过命令行(sqlcmd)来实现一些管理

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

需要注意的是,这里的服务器名称要写.\sqlexpress,在SQL Server中,这表示的是一个命名实例的意思。

如果不习惯用命令行,则还可以单独下载SQL Server Express Management Studio,这也是免费的

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

SQL Server与Visual Studio有天然的关系,在Visual Studio中可以很容易建立SQL Server 服务器连接,并且进行诸如创建数据库,表,视图,修改数据,新建查询等所有有关操作。即便你没有安装上面所提到的Management Studio,其实你需要做的事情都可以通过Visual Studio来完成

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

要访问SQL Server数据库的数据,是相当方便的。.NET Framework内置提供了System.Data.SqlClient的命名空间,可以很方便地完成数据库的访问。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;


namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {

            var conn = new SqlConnection("Database=Northwind;data source=(local)\\sqlexpress;integrated security=true");
            var cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT * FROM Employees";
            conn.Open();

            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(reader[0].ToString());
            }

        }
    }
}

同时,SQL Server Express还完全支持LINQ to SQL以及ADO.NET Entity Framework

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

 

Oracle Express

接下来我们来看一下Oracle Express的情况,目前Oracle提供的最新版本是11g Express,可以通过下面的地址下载

http://www.oracle.com/technetwork/database/express-edition/downloads/index.html

我下载了两个安装程序,如下图

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

OracleXE112_WIN32.zip是数据库主程序安装文件

ODTWithODAC112021.zip是所谓的开发工具包,也就是给Visual Studio配套的一些程序集和脚本等

安装好之后,大致有如下的几个服务

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

如果安装了ODT,就可以很方便地在Visual Studio中连接到Oracle数据库,进行操作

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

要通过编程访问Oracle数据库,也很简单,只要预先添加一个引用

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

需要注意的是,这个Assembly并没有安装在GAC,所以你可能需要通过“浏览”这个选项卡,直接找到它,而不是在".NET"这个选项卡里面去找。

具体的访问代码其实很类似,例如

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;


namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {

            var conn = new OracleConnection("data source=localhost;user id=ares;password=password");
            var cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT * FROM SYS.Employees";
            conn.Open();

            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(reader[0].ToString());
            }

        }
    }
}

 

 

IBM db2 Express-C

IBM目前所提供的db2 Express 的名称叫Express-C, 版本号为9.7.4,可以通过下面的地址下载到

http://www.ibm.com/developerworks/cn/downloads/im/udbexp/

我下载了几个组件,如下图所示

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

db2exec_975_win_x86.exe是db2 express-C的安装程序

db2exec_vsai_975_win_x86.exe是给visual studio的一个插件

ibm_data_studio_standalone_win_v31.zip是db2 express的一个管理工具

安装完之后,我大致看了一下有关的服务,有如下几个

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

在Visual Studio中,同样也可以方便地进行连接,和管理。这得益于Visual Studio所提供的良好的扩展机制

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

如果安装了那个管理工具,则有如下的画面

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

如果需要编程访问DB2 Express-C,则可以添加如下的引用

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

并且使用诸如下面这样的代码访问即可

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IBM.Data.DB2;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建数据库连接
            var conn = new DB2Connection("Database=SAMPLE;User ID=administrator;Server=localhost;password=password01!");
            //创建命令
            var cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT * FROM Employee";
            //打开连接
            conn.Open();
            //读取数据
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(reader[0].ToString());
            }
            //关闭连接
            conn.Close();

        }
    }
}
我们会发现,这与之前的SQL Server Express和Oracle中访问数据库的方式,何其相似。

 

总结

从上面的例子和截图可以看出来,这三个产品,在我们作为开发人员具体来使用的时候,其实差别很小的。这也是一个好的框架所带来的优势。.NET支持灵活的数据访问框架,由此,我们可以专注于业务本身,而不需要为不同的数据源编写不同的代码。事实上,完全可以做到,一份代码复用于不同的数据源。而作为一个Express的产品,他们从能力上,没有本质上的差别。

 

针对他们的一些小的区别,我整理一个表格如下

SQL Server、Oracle、db2所提供的简装版(Express)比较 _ JavaClub全栈架构师技术笔记

来源链接:https://www.cnblogs.com/chenxizhang/archive/2011/11/26/2264558.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/68333.html

标签: Oracle
分享给朋友:

“SQL Server、Oracle、db2所提供的简装版(Express)比较” 的相关文章

Java 多线程通过 Mybatis 获取 Oracle 序列值重复问题处理

Java 多线程通过 Mybatis 获取 Oracle 序列值重复问题处理 在同一个事务内开多线程访问序列值时,会取出同一个值。 select mySequence.nextval from dual 解决方法是将查询语句放在一个新事务中,同时增加同步约束。...

Java使用多线程导入数据到Oracle中

Oracle中的设置 多线程导入数据到Oracle中,如果是自己设置主键的值,那么肯定会遇到主键冲突的问题。例如线程A计算出的id为10(max(id) + 1),在A线程还没有完成导入时线程B用相同办法得到的id也是10,这时两个线程都请求插入数...

使用Maven管理Oracle驱动包

使用Maven管理Oracle驱动包

  由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。 手动添加到本地仓库需要本地有oracle驱动包,有两种方式获取oracle的驱动包:一种是去oracle...

.net程序员使用Oracle新手上路指南

.net程序员使用Oracle新手上路指南

虽然oracle,sqlserver都是关系型数据库,sql语句大部分也差不多,但是从sqlserver换到oracle还是有很多不适应的地方,本文旨在帮助广大初次接触oracle的.net程序员快速上手。 一、安装oracle 11g 服务端(可选...

oracle group by执行慢,一次对group by时间导致的慢查询的优化

oracle group by执行慢,一次对group by时间导致的慢查询的优化

前言: 最近在测试环境中点击一个图表展示页面时,半天才得到后台响应的数据进行页面渲染展示,后台的响应很慢,这样极大的降低了用户的体验; 发现这个问题后马上进行了排查 ,通过排查发现是由一个查询很慢的 group by 语句导致的; 本文...

Navicat for oracle 破解版

Navicat for oracle 破解版

1、下载解压,得到64位和32位的navicat for oracle 12中文原程序和注册机;2、以安装64位为例,双击文件“navicat120_ora_cs_x64.exe”开始安装,勾选同意软件协议;3、默认安装目录【C:\Program Files\PremiumSoft\N...

springBoot 整合 mybatis+Oracle

springBoot 整合 mybatis+Oracle

现在比较流行的操作数据库操作层框架Mybatis,下面我们就来看看Springboot如何整合mybatis, 之前一直在用xml形式写sql,这次依然用xml的方式感觉这种还是比较灵活方便。   添加mybatis关键就是要引入mybatis-spring-boot-start...

Oracle列转行函数——listagg()

Oracle列转行函数——listagg()

前言 今天要帮业务写一个取数的SQL,其中要用到分组函数,并且要取到各个分组内详细的数据,因为用到的比较少,不太清楚要怎么实现,在网上找到listagg函数可以实现,所以记录下它的应用 Listagg()详解 概述 listagg()函数可以实现多列记录聚合为一...

在xshell连接oracle,客户端XShell+Xmanager配置oracle流程

客户端:XShell + Xmanager配置流程: 1.使用XShell建立连接时,设置连接属性,在 SSH --> tunneling 选项下勾选 Forward X11 connections to:勾选 Xmanager。 2.登陆...

docker安装oracle19c

docker安装oracle19c

1、拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c 2、启动 linux系统下启动容器命令 docker run -p 1521:1521 -p 5500:550...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。