Java DB是随JDK一起发行的、开源的、支持标准SQL和JDBC驱动的关系型数据库,也叫Apache Derby数据库。Derby功能包括:具有JDBC驱动的内嵌引擎、网络服务器、JDBC客户端、命令行工具。
Java DB is Oracle’s distribution of the open source Apache Derby Java database. It is distributed as part of the Java™ Development Kit.
Apache Derby is a pure Java relational database engine using standard SQL andJDBC as its APIs. Derby functionality includes:
-
Embedded engine with JDBC drivers
-
Network Server
-
Network client JDBC drivers
-
Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo
(system info)
一、 启动服务器
Microsoft Windows [版本 6.1.7601]
版权所有 © 2009 Microsoft Corporation。保留所有权利。
C:\Windows\system32>cd /d C:\Program Files\java\jdk1.8.0_151\db\bin
C:\Program Files\java\jdk1.8.0_151\db\bin>
C:\Program Files\java\jdk1.8.0_151\db\bin>startnetworkserver
Tue Aug 30 17:09:30 CST 2022 : 已使用基本服务器安全策略安装了 Security Manager。
Tue Aug 30 17:09:30 CST 2022 : Apache Derby 网络服务器 - 10.11.1.2 - (1629631)
已启动并准备接受端口 1527 上的连接

二. 启动SQL命令行
1). 创建数据库
C:\Program Files\java\jdk1.8.0_151\db\bin>ij
ij 版本 10.11
ij> connect ‘jdbc:derby:firstdb;create=true’;


2). 创建表,写入数据,查看表定义、数据
ij> create table sex_dict(aa varchar(2),bb varchar(4));
已插入/更新/删除 0 行
ij> insert into sex_dict values (‘1’,‘男’);
已插入/更新/删除 1 行
ij> select * from sex_dict;
AA |BB
---------
1 |男
已选择 1 行




3). 获得命令行帮助
ij> help ;
支持的命令包括:
PROTOCOL ‘JDBC 协议’ [ AS 标识符 ];
– 设置默认或指定的协议
DRIVER ‘驱动程序类’; – 加载指定的类
CONNECT ‘数据库 url’ [ PROTOCOL namedProtocol ] [ AS connectionName ];
– 连接到数据库 URL
– 并可以分配标识符
SET CONNECTION connectionName; – 切换到指定的连接
SHOW CONNECTIONS; – 列出所有连接
AUTOCOMMIT [ ON | OFF ]; – 为连接设置自动提交模式
DISCONNECT [ CURRENT | connectionName | ALL ];
– 删除当前的、指定的或所有连接;
– 默认值为 CURRENT
SHOW SCHEMAS; – 列出当前数据库中的所有方案
SHOW [ TABLES | VIEWS | PROCEDURES | FUNCTIONS | SYNONYMS ] { IN 方案 };
– 列出表、视图、过程、函数或同义词
SHOW INDEXES { IN 方案 | FROM 表 };
– 列出方案中的索引,或者某个表的索引
SHOW ROLES; – 排序列出数据库中所有定义的角色
SHOW ENABLED_ROLES; – 排序列出当前连接的所有已启用
– 角色(使用 VALUES CURRENT_ROLE
– 可查看当前角色)
SHOW SETTABLE_ROLES; – 排序列出可以为当前连接
– 设置的角色
DESCRIBE 名称; – 列出指定表中的列
COMMIT; – 提交当前事务处理
ROLLBACK; – 回退当前事务处理
PREPARE 名称 AS ‘SQL-J 文本’; – 准备 SQL-J 文本
EXECUTE { 名称 | ‘SQL-J 文本’ } [ USING { 名称 | ‘SQL-J 文本’ } ] ;
– 使用 USING 结果集行中的
– 参数值执行语句
REMOVE 名称; – 删除指定的以前的预定义语句
RUN ‘文件名’; – 从指定的文件运行命令
ELAPSEDTIME [ ON | OFF ]; – 设置 ij 的用时模式
MAXIMUMDISPLAYWIDTH integerValue;
– 将每一列的最大显示宽度
– 设置为 integerValue
ASYNC 名称 ‘SQL-J 文本’; – 在另一个线程中运行命令
WAIT FOR 名称; – 等待 ASYNC’d 命令的结果
GET [SCROLL INSENSITIVE] [WITH { HOLD | NOHOLD }] CURSOR 名称 AS ‘SQL-J 查询’;
– 在查询上获取游标(JDBC 结果集)
– 默认值是具有保持能力的仅正向游标
NEXT 名称; – 从指定游标获取下一行
FIRST 名称; – 从指定滚动游标获取第一行
LAST 名称; – 从指定滚动游标获取最后一行
PREVIOUS 名称; – 从指定滚动游标获取上一行
ABSOLUTE 整数名称; – 将指定滚动游标定位到绝对行号
– (负数表示从最后一行开始的位置。)
RELATIVE 整数名称; – 将指定的滚动游标相对于当前行进行定位
–(整数行数)
AFTER LAST 名称; – 将指定的滚动游标定位到最后一行之后
BEFORE FIRST 名称; – 将指定的滚动游标定位到第一行之前
GETCURRENTROWNUMBER 名称; – 返回指定滚动游标当前位置的行号
–(当游标未定位在行上时,返回 0。)
CLOSE 名称; – 关闭指定的游标
LOCALIZEDDISPLAY [ ON | OFF ];
– 控制受区域设置影响的数据的表示形式
EXIT; – 退出 ij
HELP; – 显示此消息
任何未识别的命令将作为可能的 SQL-J 命令处理并直接执行。
4). 查看所有表



三. 查看数据库对象DDL


四. 关闭数据库
1). 在客户端执行关闭命令


服务控制台显示如下:


2). 在控制台按CTRL+C,回答Y,关闭Derby数据库






