【Derby 系列】[初级-2] Apache Derby 功能特点概览
前言
进入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还在不断的完善,更新。我们既可以用它做商业开发,也可以作为学习的对象。(应用级,代码级。)
相关文章