derby教程使用总结及心得
2014-05-11 14:33
246 查看
最近项目需要在使用Apache 的Derby 数据库,Apache Derby 是一个JAVA编写与平台无关的数据库引擎,它以 Java 类库的形式对外提供服务。
下载db-derby-10.9.1.0-bin,并配置进入path,进入命令行窗口:
以服务方式连接
tip:该方式每次只允许连接一次,否则会报连接不上.
相比BY ALWARYS, BY DEFAULT可Insert主键值.参考:http://liguoliang.com/2010/create-autoincrement-column-in-derby
因为Derby不支持通过Alert创建IDENTITY列,最好重建table.否则会报错:
Error: ALTER TABLEstatement cannot add an IDENTITY column to a table.
你也可以使用序列来定义主键.
解释:TIMESTAMPDIFF(interval,timestampExpression1,timestampExpression2
)
三个参数,第二和第三个参数是timestamp类型的时间函数,第一个参数是(timestampExpression2-timestampExpression1)的时间差的表示单位,如SQL_TSI_SECOND是以秒为单位,返回两个查询参数的时间差。
CURRENT_TIMESTAMP是Derby SQL当前函数,代表当前时间的timestamp.
tip:
1)interval的类型还有:SQL_TSI_DAY、SQL_TSI_FRAC_SECOND、SQL_TSI_HOUR、SQL_TSI_MINUTE、SQL_TSI_MONTH、SQL_TSI_QUARTER、SQL_TSI_SECOND、SQL_TSI_WEEK、SQL_TSI_YEAR
2)关于时间差值函数,还有一个对应的函数TIMESTAMPADD的,
具体的讲解见derby的官方网站:http://db.apache.org/derby/docs/10.2/ref/rrefjdbc88908.html,http://blog.sina.com.cn/s/blog_73044b920100nyzb.html
下载db-derby-10.9.1.0-bin,并配置进入path,进入命令行窗口:
连接Derby
以服务方式连接
开启服务 java -jarD:\db-derby-10.9.1.0-bin\lib\derbyrun.jar server start(改成你的derby目录) 连接数据库 connect'jdbc:derby://localhost:1527/myDemo';
以文件方式连接
进入目录C:\Users\Administrator\Desktop\test\database 输入ij 输入connect 'jdbc:derby:test;'
tip:该方式每次只允许连接一次,否则会报连接不上.
使用Derby
创建主键自增长数据库
create tableT_SC_LOG( LOG_ID INTEGER NOT NULL GENERATED BYDEFAULT AS IDENTITY (START WITH 100, INCREMENT BY 1), LOG_TYPE VARCHAR(8), LOG_DATE TIMESTAMP, LOG_CONTENT VARCHAR(1024), REMARK VARCHAR(1024), OPT_CODE VARCHAR(32), OPT_DATE TIMESTAMP, constraint PK_T_SC_LOG primary key (LOG_ID) );创建主键有2中模式:
“GENERATED ALWAYS AS IDENTITY” – Derby always provides auto-incremented sequence values to this column. You are not allowed to specify your own values. 由Derby负责提供自增的主键值, 该值不允许插入. “GENERATED BY DEFAULT AS IDENTITY” – Derby provides auto-incremented sequence values to this as default only when you are not providing values. 仅在未提供主键值时, 由Derby负责插入.
相比BY ALWARYS, BY DEFAULT可Insert主键值.参考:http://liguoliang.com/2010/create-autoincrement-column-in-derby
因为Derby不支持通过Alert创建IDENTITY列,最好重建table.否则会报错:
Error: ALTER TABLEstatement cannot add an IDENTITY column to a table.
你也可以使用序列来定义主键.
获取当前时间
VALUES CURRENT_TIME VALUESCURRENT_TIMESTAMP CURRENT_DATE
时间比较
select语句:select count(*) from test where id='1' and {fnTIMESTAMPDIFF(SQL_TSI_SECOND,LOEKED_DATE, CURRENT_TIMESTAMP)}>100;
解释:TIMESTAMPDIFF(interval,timestampExpression1,timestampExpression2
)
三个参数,第二和第三个参数是timestamp类型的时间函数,第一个参数是(timestampExpression2-timestampExpression1)的时间差的表示单位,如SQL_TSI_SECOND是以秒为单位,返回两个查询参数的时间差。
CURRENT_TIMESTAMP是Derby SQL当前函数,代表当前时间的timestamp.
tip:
1)interval的类型还有:SQL_TSI_DAY、SQL_TSI_FRAC_SECOND、SQL_TSI_HOUR、SQL_TSI_MINUTE、SQL_TSI_MONTH、SQL_TSI_QUARTER、SQL_TSI_SECOND、SQL_TSI_WEEK、SQL_TSI_YEAR
2)关于时间差值函数,还有一个对应的函数TIMESTAMPADD的,
具体的讲解见derby的官方网站:http://db.apache.org/derby/docs/10.2/ref/rrefjdbc88908.html,http://blog.sina.com.cn/s/blog_73044b920100nyzb.html
Derby 命令
SHOW [ TABLES | VIEWS | PROCEDURES | FUNCTIONS | SYNONYMS ] { IN sche -- 列出表、视图、过程、函数或同义词 SHOW INDEXES { IN schema | FROM table }; -- 列出模式中的索引或表的索引 SHOW ROLES; -- 列出数据库中所有已定义的角色 -- 并排序 SHOW ENABLED_ROLES; -- 列出针对当前连接启用的角 -- 色(要查看当前角色,请使用 -- VALUES CURRENT_ROLE)并排序 SHOW SETTABLE_ROLES; -- 列出可以为当前连接设置的角色 -- 并排序 DESCRIBE name; -- 列出指定的表中的列 COMMIT; -- 落实当前事务 ROLLBACK; -- 回滚当前事务 PREPARE name AS 'SQL-J text'; -- 预编译 SQL-J 文本 EXECUTE { name | 'SQL-J text' } [ USING { name | 'SQL-J text' } ] ; -- 使用来自 USING 结果集行的参数 -- 执行语句 REMOVE name; -- 删除指定的以前预编译的语句 RUN 'filename'; -- 从指定的文件运行命令 ELAPSEDTIME [ ON | OFF ]; -- 为 ij 设 置耗用时间模式 MAXIMUMDISPLAYWIDTH integerValue; -- 将每列的最大显示宽度 -- 设置为整数值 ASYNC name 'SQL-J text'; -- 在另一线程中运行命令 WAIT FOR name; -- 等待 ASYNC'd 命令的结果 GET [SCROLL INSENSITIVE] [WITH {HOLD | NOHOLD}] CURSOR name AS 'SQL -- 在查询中获取游标(JDBC 结果集) -- 缺省游标是具有保持能力的只能向前移动 NEXT name; -- 从指定的游标获取下一行 FIRST name; -- 从指定的滚动游标获取第一行 LAST name; -- 从指定的滚动游标获取最后一行 PREVIOUS name; -- 从指定的滚动游标获取前一行 ABSOLUTE integer name; -- 将指定的游标定位在绝对行号上 --(负数表示从最后一行定位。) RELATIVE integer name; -- 相对与当前行定位已命名的滚动游标 --(整数是行号) AFTER LAST name; -- 将已命名的滚动游标定位于最后一行的后 BEFORE FIRST name; -- 将已命名的滚动游标定位于第一行的前面 GETCURRENTROWNUMBER name; -- 返回已命名的滚动游标当前位置的行号 --(当游标的位置不在一个行上时返回 0。) CLOSE name; -- 关闭已命名的游标 LOCALIZEDDISPLAY [ ON | OFF ]; -- 控制语言环境敏感数据表示法 EXIT; -- 退出 ij HELP; -- 显示此消息 任何无法识别的命令都将被视为可能的 SQL-J 命令并直接执行。
相关文章推荐
- CVS安装及使用--->张国亮总结心得
- J2EE]Structs - HTML、Bean、Logic、Template和Nested标签库总结、心得和使用详
- Java基础学习总结(42)——Log4j 2使用教程
- Mustache 使用心得总结
- *jqwidgets jqxgrid 使用心得 jqxgrid教程 jqxgrid+SpringMVC(初级) 集成JAVA SSM
- Bootstrap Table使用心得总结
- SVN使用教程总结
- SVN使用教程总结
- 韩顺平 php视频教程 读书笔记 心得 memcache的安装和使用
- 数据库ORM框架GreenDao学习心得及使用总结
- [转]Mustache 使用心得总结
- VC++ MFC属性页使用说明(孙鑫视频教程总结)(2)
- Nhibernate使用教程总结
- SVN 安装与使用教程总结
- C++ Vector 使用心得 --- 非常好的总结
- 视频框架 Vitamio 使用教程+部分心得 (二)第一个视频demo
- CVS安装及使用--->张国亮总结心得
- ASIHTTPRequest框架使用总结系列之阿堂教程1(安装配置篇
- CocoaPods 具体 使用教程及经验总结
- 转载一份:【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结