derby数据库语法

【数据库知识】

主键、唯一键包含索引
主键包含唯一键、索引、非空
唯一键包含索引,可空或非空

数据库需要与执行服务的在同个目录下

唯一键
create table app.tyu
(
primarykey int primary key,
com_no int not null unique,
name varchar(32) default 'jack'
)

自动加值
GENERATED ALWAYS AS IDENTITY

create table svse
(
uid int generated by default as identity,
Uname varchar(5) ,
Upass varchar(10),
constraint P_KEY_1 primary key (uid)
)

查询所有索引
select * from sys.sysconglomerates, sys.SYSCONSTRAINTS where sys.SYSCONGLOMERATES.TABLEID = sys.SYSCONGLOMERATES.TABLEID


创建索引
create index 索引名 on 表名(字段1, 字段2)

删除索引
drop index 索引名

在创建整数时,若要控制整数的位数,可使用decimal来表示 如int(2)可表示为decimal(2,0) 一般情况下 可以选用smallint、int、bigint

添加内建用户名和密码(Apache Derby的默认数据库用户名和密码均为APP)
//首先指定为内建用户名和密码
call syscs_util.syscs_set_database_property('derby.authentication.provider','builtin');
call syscs_util.syscs_set_database_property('derby.connection.requireAuthentication','true');
//这里创建一个用户名为jack 密码为123456的访问用户(对应到数据库)
call syscs_util.syscs_set_database_property('derby.user.jack','123456');
//设置全局访问用户为jack
call syscs_util.syscs_set_database_property('derby.database.fullAccessUsers','jack');
//全局默认连接方式为未连接
call syscs_util.syscs_set_database_property('derby.database.defaultConnectionMode',noAccess');
在ij下执行以上语句,执行完毕后,重新使用ij登录时,就需要输入用户名和密码了(切记Derby的数据库服务器需要重启)

查看当前连接
show connections;

查看系统时间
values current_timestamp; e.g:2012-07-27 15:59:36.281

建立网络数据库连接
C:\Program Files\Sun\JavaDB\bin>networkservercontrol.bat start

修改网络数据库连接的端口
C:\Program Files\Sun\JavaDB\bin>networkservercontrol.bat start -p 3607

修改网络数据库连接的IP与端口
C:\Program Files\Sun\JavaDB\bin>networkservercontrol.bat start -h 127.0.0.1 -p 3607

客户端连接服务端的数据库
connect 'jdbc:derby://127.0.0.1:3607/testDB;create=true;user=jack;password=123456';

1,建立数据库连接 名称为testdb (名称不能为user)
connect 'jdbc:derby:testdb;create=true'; //若无该数据库则创建

connect 'jdbc:derby:myderby'; //若无该数据库不创建

Connection refused: connect。 说明连接数据库失败 可能是连接的URL输入有误或无法访问

2,创建表 名称为usertable 包含id(int)与name(varchar)两个字段
create table usertable(id int primary key, name varchar(20));

3,对该表插入数据
insert into usertable values(1, 'jack');

4,查询该表的数据
select * from usertable;

5,删除该表的数据
delete from usertable where id=1;

6,修改该表的数据
update usertable set name='lucy' where id=1;

7,分页查询表数据
select * from (select row_number() over() as rownum, usertable.* from usertable) as tmp where rownum>=2 and rownum<=5; //查询第2-第5条记录的所有字段的值

select * from (select row_number() over() as rownum, usertable.name from usertable) as tmp where rownum>=2 and rownum<=5; //查询第2-第5条记录的name字段的值

8,查看该表的索引
show indexes from usertable;

9,添加表字段属性
alter table usertable add age int not null default 0; //添加字段age 该字段属性为int型 非空 默认为0 age前可加或不加column

10,修改表字段属性
alter table usertable alter name set data type varchar(60); //修改字段name的字符长度为60

alter table usertable alter name not null; //修改字段name为非空 (前提是该表的name字段值不能为空)

alter table usertable alter name default '0'; //修改字段name的默认值

ALTER TABLE CITIES ADD CONSTRAINT COUNTRY_FK Foreign Key (COUNTRY) REFERENCES COUNTRIES (COUNTRY);

11,删除表字段属性
alter table usertable drop age; //删除age表字段 age前可加或不加column

12,删除该表
drop table usertable;

13,查看所有表
show tables;

14,查询数据去重
select distinct name from usertable;

15,数据降序排列
select * from usertable order by id desc;

16,重命名表名
rename table usertable to usertb;

17,查看表结构
describe usertable;

18,断开数据库连接
disconnect;

19,退出ij
exit;


其他:
SHOW SCHEMAS; -- 列出当前数据库中的所有模式
SHOW CONNECTIONS; -- 列出所有连接
ELAPSEDTIME [ ON | OFF ]; -- 为 ij 设置耗用时间模式
run 'C:\test\testdb.sql'; 通过run命令来执行sql文件


【Derby的聚合函数】
AVG、COUNT、MAX、MIN、SUM

【Derby的数学函数】
ABS、MOD、SQRT

【Derby的日期和时间函数】
...

【Derby的字符串函数】
...
详情参考http://www.ibm.com/developerworks/cn/opensource/os-ad-trifecta6/index.html

【Derby的数据类型】
BIGINT 返回给定字符串或数字的 64-bit 整数常量。
CHAR 返回给定值的固定长度的字符表示,最大长度为 254 个字节,该给定值必须是内置的 Apache Derby 类型之一。
DATE 返回输入值的日期表示。
DOUBLE 返回输入数字或字符串的双精度浮点表示。
INTEGER 返回给定字符串、日期、时间或数字的整数常量。
SMALLINT 返回给定字符串或数字的小整数常量。
TIME 返回输入值的时间表示。
TIMESTAMP 返回输入值的时间戳表示。
VARCHAR 返回给定日期、时间、时间戳或字符串值的长度可变的字符表示,最大长度为 32,672 个字节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值