【数据库知识】
主键、唯一键包含索引 主键包含唯一键、索引、非空 唯一键包含索引,可空或非空 数据库需要与执行服务的在同个目录下 唯一键 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 个字节。 |
|