一、数据库
1、数据库,通常是一个戒一组文件,保存了一些符合特定规格的数据,数据库对应的英询单词是DataBase,简称DB;数据库软件称为数据库管理系统,英文简称DBMS,全称为DataBase Management System,例如:Oracle、MySQL、SQL Server、Sybase、informix、DB2等等。
2、无论你开发的是一款PC端的Web应用,还是一款移动端的app,都需要一个数据库来存储你的业务数据(包括电商的商品信息、游戏的道具信息、社交的人员信息等等)。可以说,数据库是后端系统最重要的存储组件。作为一名Java程序开发人员,你会发现你所完成的大部分代码逻辑最终都是在不断的与数据库进行交互。
二、MySQL数据库
1、MySQL是一个关系型的小型数据库管理系统。
在 WEB 应用方面是最好的关系数据库管理系统应用软件之一。市场占有率有20%左右。
它的优点有如下几方面:
(1)开源软件。
使用 C语言和 C++语言编写,以及使用了多种编译器进行测试,保证了源代码的可移植性。
(2)适用性高。
支持多种操作系统。支持多种存储引擎。能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。并且提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
(3)为多种编程语言(包括C、C++、Python、Java、PHP等)提供了 API。
(4)支持多线程,充分利用cpu。
(5)使用优化了的 SQL语句查询算法,提高查询效率。
2、补充:
另外,如果Linux作为操作系统,Apache和 Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费的,因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
所以也就是为什么很多新创业的公司或者中小型企业会使用mysql。
三、Oracle数据库
Oracle Database是甲骨文公司研发的关系型的大型的数据库管理系统。
它是数据库领域的老大。可以说Oracle数据库管理系统是世界上目前最流行的关系型数据库管理系统,市场占有率达40%。
原因有如下几个方面:
(1)系统开放性高。(付费之后)
Oracle能在所有主流系统平台上运行。支持所有的工业标准。采用完全开放的策略。对开发商全力支持。使客户可以选择最适合的解决方案。
(2)可伸缩性、并行性高。
Oracle数据库系统以分布式数据库作为核心,并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
(3)安全性高
Oracle数据库获得最高认证级别的ISO标准认证。
(4)性能优越
保持着开放平台下的TPC-D和TPC-C的世界记录。
(5)适用性高
多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
(6)风险低
完全向下兼容的数据库系统。得到很广泛的应用。没有任何风险。
四、MySQL和Oracle的比较
(1)Oracle支持多任务处理,也就是大并发,大访问量,是联机事务处理过程(OLTP)最好的工具。而MySQL却不能支持过大的访问量。
(2)Oracle是付费的大型数据库;Mysql是开源的中小型数据库,Oracle市场占有率很高,Mysql比较低。
(3)两者安装使用的空间差距很大的,Mysql安装完后一百多兆,Oracle却有三千多兆,而且使用的时候Oracle占用特别大的内存空间和其他机器性能。
(4)Oracle的操作较复杂,同时提供GUI和命令行,在windowsNT和unix下操作相同。
而Mysql使用sql语言进行操作,比较简单。这也就造成一个人工成本问题,使用Oracle的公司,需要对数据库技术人员进行专门的培训,而MySQL却不用。
(5)给出现在一些知名公司数据库的配置:
一号店、JD:都是MySQL和Oracle的混合体系,还买了叼炸天的Oracle一体机(一台Oracle Exadata X5有24T内存,576核CPU,价格估计几千万到上亿人民币)
苏宁易购:是IBM一手打造的技术团队和技术体系,使用的是DB2、MySQL、Oracle的混合体系;
携程旅行:.NET技术为主,所以是以SQL Server为主、MySQL为辅的混合体系;
唯品会:也是MySQL和Oracle的混合体系;
亚马逊:选择的是Oracle+MongoDB。
fBay:用MySQL+MongoDB
五、JDBC
1、概念
(1)JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
(2)有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问MySQL数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
2、应用程序、JDBC API、数据库驱动及数据库之间的关系:
3、JDBC访问数据库步骤
(1)加载JDBC驱动程序(具体要加载哪一个数据库的驱动程序)
(2)建立数据库连接(驱动程序和数据库之间建立一条路径)
(3)创建Statement对象(负责发送SQL语句和接受查询结果)
(4)执行SQL语句(Statement对象的execuQuery()方法)
(5)处理返回结果
(6)关闭创建的对象
六、MySQL-Front
1、使用mysql数据库的时候,我们尽可能希望就像使用SQL Server一样有一个图形化工具,来方便我们的操作。其实mysql也有它的图形化工具,还有好多种比如MySQL GUI Tools、MySQL-Front等。
2、mysql-front是为mysql制作的一种图形化界面工具,可以管理和操作数据库,比如建表,修改数据,拖拽方式的数据库和表格,可编辑/可增加/删除的域,可编辑/可插入/删除的记录,可显示的成员,可执行的SQL脚本,提供与外程序接口,保存数据到CSV文件等。
七、Oracle SQL Developer和SQL Plus
1、Oracle SQL Developer
Oracle SQL Developer是Oracle公司出品的一个免费的集成开发环境。是一个免费非开源的用以开发数据库应用程序的图形化工具,使用 SQL Developer 可以浏览数据库对象、运行 SQL 语句和脚本、编辑和调试 PL/SQL 语句。另外还可以创建执行和保存报表。
2、SQL Plus
SQL Plus是Oracle自带的数据库管理客户端,可以在这里编辑SQL语句执行,是命令行模式的。
借助SQL Plus可以查看、修改数据库记录。在SQL Pluss中,可以运行SQL Plus命令与SQL语句。
3、SQL Plus是Oracle自带的数据库管理客户端,安装Oracle软件时会自动安装上SQL Plus这个开发工具。
SQL Developer是Oracle公司自己推出的官方的开发工具。不过,我们在安装甲骨文(Oracle)公司的其中一个 数据库软件Oracle 11g时,在安装的过程中,系统也会附带的同时安装上SQL Plus和SQL Developer这两个开发工具。
二者在Oracle 11g上自带安装:
如图,Oracle 11g的两种SQL执行环境:
在学习Oracle数据库知识时,我们又发现SQL Developer比SQL Plus更加人性化,方便。
八、PL/SQL Developer
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL 只有 Oracle 数据库有。 MySQL 目前不支持 PL/SQL 的,但支持Navicat Premium。
九、Oracle的几个开发工具
Oracle 数据库并不提供图形界面的开发环境,只是自带了一个类似于 CMD 的 SQL Plus 开发工具,所以需要其他的集成开发软件。 总的来说,Oracle的开发工具为:
(1)SQL Plus,Oracle软件自带了一个类似于 CMD 的 SQL Plus 开发工具。
(2)Oracle SQL Developer,SQL Developer是Oracle公司自己推出的官方的免费的开发工具。在数据库软件Oracle 11g中,已经内嵌到数据库的安装程序中去了,相当于Oracle软件自带的开发工具了。
(3)PL/SQL Developer,是第三方的Oracle客户端开发工具,服务于Oracle,类似的工具还有Toad,SQL Plus,Oracle SQL Developer等等。安装PL/SQL Developer与安装Oracle软件没啥关系,但是如果没有Oracle客户端,安装PL/SQL Developer就没啥意义。
(4)Toad,Oracle数据库的第三方工具,当今oracle数据库主流工具之一。Toad里面与Oracle数据库的功能,基本上都可以在Oracle自带的SQL Plus里面实现。只是他把很多的命令图形化了,可以让记不住命令的人快速入门,帮助人更加方便的管理数据库。
总之,一般的开发使用Orale SQL Deveploer就可以了,而且是免费的,后两个是商业软件,需要授权费用。
十、Oracle SQL Developer和PL/SQL Developer
1、Oracle SQL Developer:
(1)SQL Developer目前已经支持Windows,Mac OS X,Linux系统,其具有多平台性(fedora、ubuntu等桌面级linux上唯一可用的图形化开发工具)。
(2)免费。
(3)除了可以连接oracle数据库以外,sybase、mysql、mssqlserver、MS Access等数据库也可以访问查看数据。
(4)同一个界面可以登陆多个数据库,方便在多个数据库之间操作。虽然这不是什么复杂的功能,但是,PL/SQL Developer却做不到。而且,Oracle SQL Developer的插件比较丰富。
(5)支持自定义快捷键可以实现组合键清空界面、组合键复制代码等快捷操作。
(6)比较占用内存消耗资源较多,这是缺点也是优点,缺点是相对消耗资源,优点是由于占用较多内存在执行几十、几百条sql的效率上很高,不像PL/SQL Dev还要有一个初始化的动作。
(7)Oracle SQL Developer,是Oracle官方自己出的工具,11g已经内嵌到数据库的安装里去了,也提供比较好的开发和管理的功能。其中带有的migration tools是此工具的一亮点,可以对异构或者同构的数据库进行数据迁移,在mysql和ms sql上都做个不是很复杂的迁移,还是很方便和实用的。而且该工具最好的一点是 java开发,使用的jdbc的连接方式,所以即使没有安装客户端也可以通过thin的方式连接。
2、PL/SQL Developer
(1)PL/SQL Developer只能在Windows上使用。
(2)PL/SQL Dev是老牌的开发工具,稳定性很高。
(3)新版本也开始支持其他数据库的连接,但支持的种类还是不够全。
(4)要同时访问多个数据库的话需要启动多个软件界面。
(5)不支持自定义快捷键,但是界面上的按键也足够开发者使用了。
(6)资源占用很少。
(7)HTML Manual功能可以将从Oracle下载的官方文档直接索引到自己的帮助当中,尤其适合不能上网的环境,即便能上网,在这个里面搜索一些语法、错误号等效率也是很高的。
(8)report窗口支持直接从用sql当中选取表的字段来做成图表,例如饼、曲线、柱状、雷达图等,可以另存为PDF、图片等。
(9)支持select * from xxx for update的修改方式,SQL Developer貌似不支持。
(10)PL/SQL需要安装Oracle的客户端,并且需要配置tnsname。
3、小结:两种工具大致上功能都是一样的。PL/SQL Developer还是比较主流的,在开发和管理上都比较方便,还支持导入、导出功能。目前使用PL/SQL Developer的Oracle DBA或者开发人员占据了超过60%,而其中绝大部分都在使用破解版。这两个工具在开发和管理上,PL/SQL胜出一筹。但是在迁移功能和跨平台上,SQL Developer又展现出它一大亮点。
本篇博文的写作非常感谢一些大神的帮助。
http://blog.sina.com.cn/s/blog_6372cc4801011ypv.html
https://www.cnblogs.com/xsht/p/5258071.html