Derby ij 操作表

刚忙活完加班,最近做国际化,复杂的头很大,继续看我的derby吧


昨晚说了基本连接的东西,那么连接OK就是创建表了


[color=red][b]Derby 中创建表[/b][/color]

语法如下:

CREATE TABLE [schemaName.]tableName (
{ <columnDefinition> | <tableLevelConstraint> } [,
{ <columnDefinition> | <tableLevelConstraint> }
]*
) ;


[color=red][b]tableLevelConstraint -- 约束项[/b][/color]

约束有两种类型:表级约束和列约束。约束通过某种方式对列或表进行限制。例如,可以用约束要求列总要有实际的值(没有 NULL 值),或者列中的每个项必须是惟一的,或者列被自动分配默认值。

[color=red][b]
方括号([ 和 ])中的是可选参数。
最后一个结束方括号之后的星号(*)代表可以包含一个或多个包含项。这意味着表必须有一个或多个列级或表级约束。
竖线(|)表明 “可有可无” 条件。在这个语法示例中,必须定义一个新列或者定义一个表级约束。
花括号({ 和 })把相关项组织在一起,而圆括号(( 和 ))中是必需的元素 。
最后,分号(;)表示 SQL 语句的结束。
[/b][/color]


[color=red][b]schemaName--模式[/b][/color]

关联的表通常组织在一起,形成一个模式(schema)。可以把模式当成特定数据库中所有相关结构定义的容器。在指定模式中,表的名称必须惟一。所以,通过使用模式,可以在不同模式的范围内拥有名称相同的对象(例如表)。在使用 Apache Derby 数据库时,表总在模式中。如果没有显式地指定模式,Derby 就会隐式地使用内置的 apps 模式。叫做 sys 的第二个内置模式用来隔离系统表。

[color=red][b]columnDefinition--字段类型[/b][/color]

整数类型

[img]http://dl.iteye.com/upload/attachment/314347/a036cdb6-d42f-3f2b-89a5-eb2065e683ca.jpg[/img]


单精度浮点、双精度浮点以及准确的算术类型

[img]http://dl.iteye.com/upload/attachment/314349/801d733c-ecd5-3705-8b12-9eb215dbb6eb.jpg[/img]


字符类型

[img]http://dl.iteye.com/upload/attachment/314353/73939893-92b9-3203-a412-240734129456.jpg[/img]

因为长度可变,所以 VARCHAR 类型在实际的存储空间方面会更有效率,但在性能上效率就会更低。CHAR 数据类型有助于性能提高,因为数据库确切地知道每个 CHAR 列有多大,所以在读写数据时就可以执行某种性能优化。VARCHAR 列的最大长度看起来可能足够大了,但是 Derby 还提供了更大的字符数据类型,这个类型将在未来的文章中讨论。

日期类型

TIME 数据类型以 24 小时格式保存小时、分钟和秒(HH:MM:SS)
DATE 数据类型保存月、日和年,可以用不同的格式指定
包括以下格式: yyyy-mm-dd ,mm/dd/yyyy ,dd.mm.yyyy
[img]http://dl.iteye.com/upload/attachment/314355/e8be817e-aab8-3900-b84f-4448a904260b.jpg[/img]

Derby 还提供了 TIMESTAMP 数据类型,把 TIME 和 DATE 数据类型组合到一个类型中,表示准确的时间。


看完以上参数描述,那么回归建表语句正题,看下例子吧

建立一张学生表student


G:\derby_10.6.1.0\derbywork>ij
ij 版本 10.6
ij> connect 'jdbc:derby:ldbDerby';
ij> create table ldb.student(
> id int not null,
> name varchar(20),
> weight decimal(5,2),
> birth date
> );
已插入/更新/删除 0 行
ij> create table ldb.teacher(
> id int not null,
> name varchar(20),
> stu_id int
> );
已插入/更新/删除 0 行
ij>


这里除了显示的建立了两张表以外还隐式的建立了ldb模式


好了,创建完表以后,我怎么才能看见呢?或者什么方式让我看看模式下表的情况呢

使用dblook 工具


ij> exit;
G:\derby_10.6.1.0\derbywork>dblook -d jdbc:derby:ldbDerby;
-- 时间戳记:2010-09-20 22:38:05.171
-- 源数据库为:ldbDerby
-- 连接 URL 为:jdbc:derby:ldbDerby
-- appendLogs: false

-- ----------------------------------------------
-- 模式的 DDL 语句
-- ----------------------------------------------

CREATE SCHEMA "LDB";

-- ----------------------------------------------
-- 表的 DDL 语句
-- ----------------------------------------------

CREATE TABLE "LDB"."STUDENT" ("ID" INTEGER NOT NULL, "NAME" VARCHAR(20), "WEIGHT
" DECIMAL(5,2), "BIRTH" DATE);

CREATE TABLE "LDB"."TEACHER" ("ID" INTEGER NOT NULL, "NAME" VARCHAR(20), "STU_ID
" INTEGER);

G:\derby_10.6.1.0\derbywork>



dblook 后面增加个参数 -d 和连库字符串就可以了


[color=red][b]Derby 中删除表[/b][/color]

会了创建,删除当然很简单了

DROP TABLE [schemaName.]tableName ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值