前言
进入Derby 的应用开发之前,浏览一下derby的功能集,这样在真正选择的时候,可以决定Derby是不是适合你的应用。
本篇的是【Derby 系列】初级的第3篇。

1. Derby 是关系型数据库管理系统,所有源代码用java 语言写成,可以运行于J2SE/J2EE 1.3 及更高版本环境下。Derby是Apache的子项目,开放源代码源。
2. Derby 数据库属于轻量级,核心引擎(engine)部分只有2M大小,并于移植,携带,部署。同时也可以嵌入到其他应用程序中使用。短小精炼的derby不需要专业DBA技能。
3. Derby 全面兼容 SQL92E, 部分支持SQL99。支持 JDBC(2.0,3.0,4.0)。一些常用的特性诸如:

  • 自动增量列(可以自动生成唯一值从而作为主键的列)
  • 二进制大对象(Blobs)
  • 主键,外键,约束,默认值
  • 通过隔离级别支持事务(isolation level)
  • 存储过程,自定义function,触发器。(这些功能对于业务逻辑的封装至关重要。还记得.net开发推荐的储存过程模式吗?)
  • 视图 (MySQL 多久才推出这个视图功能?)
  • 级联删除(Cascade delete)
  • 批量装载功能
  • 表大小不限(因为是基于文件的DB,所以和操作系统的文件大小定义有个)
  • 方便结果集(result set)处理的滚动游标(Scrollable cursors )
  • 支持多线程/进程的并发处理
  • 支持多用户访问
  • 丰富的安全性支持
  • 多做连接支持,JDBC,ODBC,CLI,.Net,PHP,Perl等等。

除了这些,还有一些古怪的功能,比如:

  • 可编程的备份,表和空间的自动重组
  • 某些特殊的锁,特殊的查询优化
  • Eclipse插件(core 和 UI )
  • 系统提示信息的多语言话(支持中文简体和繁体)

4. SQL 支持

  • 基础数据类型,比如:CHAR, DECIMAL, DOUBLE PRECISION, FLOAT, INTEGER, NUMERIC, REAL, SMALLINT
  • 其他数据类型,BIGINT, VARCHAR, CHAR FOR BIT DATA, VARCHAR FOR BIT DATA, LONG VARCHAR, LONG VARCHAR FOR BIT DATA, BLOB, CLOB
  • 日期时间类型(from SQL92T): DATE, TIME, TIMESTAMP
  • 运算符:+,*,-,/,一元 +,一元 -
  • 比较运算: <,>,<=,>=,<>,=
  • 内置功能函数: ABS or ABSVAL, CAST, LENGTH, CONCATENATION (||), NULLIF and CASE expressions, CURRENT_DATE, CURRENT_ISOLATION, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, DATE, DAY, HOUR, IDENTITY_VAL_LOCAL, LOCATE, LCASE or LOWER, LTRIM,MINUTE, MOD, MONTH, RTRIM, SECOND, SESSION_USER, SQRT, SUBSTR, TIME, TIMESTAMP, UCASE or UPPER, USER, YEAR
  • SQL 逻辑:BETWEEN, LIKE, NULL, IN, ALL, ANY, SOME, EXISTS
  • 各种SQL DDM/DDL命令: create, drop schema/table/view; INSERT, UPDATE, and DELETE statements
  • 各种约束用的关键字: NOT NULL, UNIQUE, PRIMARY KEY, CHECK, FOREIGN KEY
  • 各种查询关键字:where, group by, having, order by, UNION and UNION ALL, SELECT DISTINCT, Select *
  • 各种聚集功能函数:AVG, COUNT, MAX, MIN, SUM
  • 支持子查询
  • 支持joins(SQL92T): INNER, RIGHT OUTER, LEFT OUTER, named column join, conditional join, Joins in the WHERE clause
  • UNION in views
  • .....

总结
以上简要列举了Derby的功能,挂一漏万,并不完备。但从中也看出Derby的功能足够强了。比当年Mysql提供的sql支持要强大的多。
而且Derby还在不断的完善,更新。我们既可以用它做商业开发,也可以作为学习的对象。(应用级,代码级。)
下一篇中,将要介绍Derby的3大组成部分,以及应用连接的2种重要架构模式--嵌入式Client/Server 相关

相关文章:

http://blog.csdn.net/cmanlh/article/details/5278866

【Derby 系列】Apache Derby 功能特点的更多相关文章

  1. 小巧数据库 Apache Derby 使用攻略

    1. Derby 介绍 将目光放在小 Derby 的原因是纯绿色.轻巧.内存占用小,分分钟在你机子跑起来,自己做点需要连接数据库的代码实践非常方便. 虽然 Mysql 也可以,多一种选择,不是也挺好么 ...

  2. Apache Derby倒斗之路-01小道消息

    1.DERBY是什么: Apache Derby 是IBM于2004年贡献给Apache软件基金会的数据库,于2005年正式成为开源项目,Derby作为一个基于JAVA的关系型数据库框架,他拥有许多便 ...

  3. Apache Derby数据库 安装、知识点

    Apache Derby数据库 安装: 下载路径:http://archive.apache.org/dist/db/derby/ 出处:http://www.yiibai.com/hive/hive ...

  4. Apache Derby数据库系统使用方法

    Apache Derby数据库系统使用方法 最近由于项目要求,试用了一下Apache Derby数据库,这里对了解到的内容做一个记录. Apache Derby是一个开源的关系型数据库管理系统,用Ja ...

  5. 用 Apache Derby 进行 ODBC 编程

    用 Apache Derby 进行 ODBC 编程 https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0409kar ...

  6. Atitit.故障排除系列-----apache 不能启动的排除

    Atitit.故障排除系列-----apache 不能启动的排除 能直接使用cli启动httpd   ,,详细打印出信息.. C:\Users\ASIMO>"C:\wamp\apach ...

  7. iOS学习系列-Apache服务器的配置

    配置Apache服务器 一.目的 能够有一个测试的服务器,不是所有的特殊网络服务都能找到免费得! 二.为什么我们要用"Apache"? Apache是目前使用最广的web服务器 M ...

  8. 【翻译】Flink Table Api & SQL —— 连接到外部系统

    本文翻译自官网:Connect to External Systems  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev ...

  9. Hive-0.x.x - Enviornment Setup

    All Hadoop sub-projects such as Hive, Pig, and HBase support Linux operating system. Therefore, you ...

随机推荐

  1. C#基础——谈谈.NET异步编程的演变史

    http://www.cnblogs.com/fzrain/p/3545810.html 前言 C#5.0最重要的改进,就是提供了更强大的异步编程.C#5.0仅增加两个新的关键字:async和awai ...

  2. 管窥MVVMLight Command参数绑定和事件传递

    前言 由于在实际项目中,业务功能的增加导致软件开发规模在逐渐变大,所以我准备找个Silverlight框架来组织当前项目中的文件,以期能够让后续的业务功能增添和维护更加容易一些.无意中,我在这篇文章中 ...

  3. navigator.sendBeancon方法简介

    之所以介绍这个还在草案中的方法,是源于最近新做的一个活动.该活动有个需求,就是用户离开该页面的某个时间段之后,发个请求给该用户送券.后来是通过setTimeout来做的,用户离开该页面,该页面进入后台 ...

  4. Java系列: 关于LinkedList的 ListIterator的add和remove

    static void testListIteratorAdd(){ LinkedList<String> strList = new LinkedList<String>() ...

  5. [CareerCup] 10.6 Find Duplicate URLs 找重复的URL链接

    10.6 You have 10 billion URLs. How do you detect the duplicate documents? In this case, assume that ...

  6. php 正则表达式捕获组与非捕获组

    熟练掌握正则表达式是每个程序员的基础要求,对于每个初学者来说会被正则表达式一连串字符弄得头晕眼花.博主便会如此,一直对正则表达式有种莫名的恐惧.近来看到另一位博友写的 <php正则表达式> ...

  7. Android图片浏览器之缩略图

    项目源码:http://files.cnblogs.com/files/tgyf/app.rar. 最近在自学Android,尝试实现一般手机上都存在的图片浏览器,从缩略图开始. 直接上图,这是goo ...

  8. Bootstrap系列 -- 36. 向上弹起的下拉菜单

    有些菜单是需要向上弹出的,比如说你的菜单在页面最底部,而这个菜单正好有一个下拉菜单,为了让用户有更好的体验,不得不让下拉菜单向上弹出.在Bootstrap框架中专门为这种效果提代了一个类名“dropu ...

  9. Socket网络编程--FTP客户端(1)(Windows)

    已经好久没有写过博客进行分享了.具体原因,在以后说. 这几天在了解FTP协议,准备任务是写一个FTP客户端程序.直接上干货了. 0.了解FTP作用 就是一个提供一个文件的共享协议. 1.了解FTP协议 ...

  10. 每天一个linux命令(17):locate 命令

    locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 di ...