firebird 哥自用用得到,该怎么处理
发布时间:2010-05-24 21:29:21 文章来源:www.iduyao.cn 采编人员:星星草
firebird 哥自用用得到
【转】火鸟Firebird数据库的中文参考资料
本代码在:WinXp Pack 3 + Delphi2009 updata1 火鸟Firebird2.5.0.23247下测试通过。
使用了Data Access面板的组件用SQL进行操作
作者:LAH [懒妹]
QQ:112412387
火鸟Firebird数据库的中文参考资料
■firebird标准连接串
Driver=Firebird/InterBase(r) driver;Uid=SYSDBA;Pwd=masterkey;DbName=C:document. and SettingsAdministrator桌面datademo.fdb;
default character set gbk; 使用中文时在创建数据库语句中就应该加这句,并且连接文本中也要用这句。
.NET - Firebird .Net Data Provider 连接串
User=SYSDBA;Password=masterkey;Database=SampleDatabase.fdb;DataSource=localhost;Port=3050;Dialect=3; Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;
■Firebird除了可见的表外,还隐藏了系统表具体可用(注意以下语句中的""中的文本区分大小写)
查询所有的表和视图(包括系统表和系统视图)
SELECT RDB$RELATION_NAME FROM RDB$RELATIONS;
这样我们就能看到rdb$开头的系统表,如约束信息表:
rdb$relation_constraints 及与其相关的 RDB$CHECK_CONSTRAINTS RDB$INDEX_SEGMENTS
一、分页写法小例:
select first 10 templateid,code,name from template ;
select first 10 skip 10 templateid,code,name from template ;
select * from shop rows 1 to 10; --firebird2.0支持这种写法
二、show
show tables;
show table tablename;
三、
D:firebird2bin>isql -u sysdba -p masterkey
connect "E:companyxmwsoftnewxmwsoftc2dbcts2.fdb";
四、--更新字段注释
update RDB$RELATION_FIELDS
set RDB$DESCRIPTION = "描述信息"
where (RDB$RELATION_NAME = "SHOP") and
(RDB$FIELD_NAME = "CREDIT_BUY")
五、--显示字段注释
select RDB$FIELD_NAME,RDB$DESCRIPTION from RDB$RELATION_FIELDS
where (RDB$RELATION_NAME = "SHOP")
and
(RDB$FIELD_NAME = "CREDIT_BUY")
六、--更新表注释
update RDB$RELATIONS set RDB$DESCRIPTION = "描述信息" where RDB$RELATION_NAME="TABLE_NAME"
八、--查询所有的用户表和用户视图
SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0;
九、--查询所有的用户表
SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0 AND RDB$VIEW_BLR IS NULL
十、查所有用户表、用户视图所有字段及相关定义
SELECT a.RDB$RELATION_NAME, b.RDB$FIELD_NAME, b.RDB$FIELD_ID, d.RDB$TYPE_NAME,
c.RDB$FIELD_LENGTH, c.RDB$FIELD_SCALE
FROM RDB$RELATIONS a
INNER JOIN RDB$RELATION_FIELDS b
ON a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
INNER JOIN RDB$FIELDS c
ON b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
INNER JOIN RDB$TYPES d
ON c.RDB$FIELD_TYPE = d.RDB$TYPE
WHERE a.RDB$SYSTEM_FLAG = 0
AND d.RDB$FIELD_NAME = "RDB$FIELD_TYPE"
ORDER BY a.RDB$RELATION_NAME, b.RDB$FIELD_ID
十一、查找某表的所有字段及相关定义
SELECT A.RDB$FIELD_NAME, B.RDB$FIELD_TYPE, B.RDB$FIELD_LENGTH, B.RDB$FIELD_PRECISION, B.RDB$FIELD_SCALE
FROM RDB$RELATION_FIELDS A, RDB$FIELDS B
WHERE A.RDB$RELATION_NAME = "tablename"
AND A.RDB$FIELD_SOURCE = B.RDB$FIELD_NAME
ORDER BY A.RDB$FIELD_POSITION
十二、查找某表的主键定义字段
select A.RDB$FIELD_NAME FROM RDB$INDEX_SEGMENTS A, RDB$RELATION_CONSTRAINTS B
WHERE B.RDB$CONSTRAINT_TYPE = "PRIMARY KEY"
AND B.RDB$RELATION_NAME = "tablename"
AND A.RDB$INDEX_NAME = B.RDB$INDEX_NAME
ORDER BY A.RDB$FIELD_POSITION
十三、查找某表的外键定义
select r1.RDB$CONSTRAINT_NAME, rind.RDB$FIELD_NAME, r2.RDB$RELATION_NAME
FROM RDB$RELATION_CONSTRAINTS r1, RDB$RELATION_CONSTRAINTS r2, RDB$REF_CONSTRAINTS ref, RDB$INDEX_SEGMENTS rind
where r1.RDB$RELATION_NAME = "tablename"
and r1.RDB$CONSTRAINT_TYPE = "FOREIGN KEY"
and r1.RDB$CONSTRAINT_NAME = ref.RDB$CONSTRAINT_NAME
and ref.RDB$CONST_NAME_UQ = r2.RDB$CONSTRAINT_NAME
and r1.RDB$INDEX_NAME = rind.RDB$INDEX_NAME
十四、添加主键等约束
alter table tablename add constraint PK_tablename primary key(FIELDname)
alter table tablename add constraint uq_FIELD unique(FIELDname) 或 alter table tablename add unique(FIELDname)
添加NOT NULL约束比较特殊
update RDB$RELATION_FIELDS set RDB$NULL_FLAG = 1 where (RDB$FIELD_NAME = 'FIELDNAME') and (RDB$RELATION_NAME = 'TN')
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
怎么建接口将sqlite数据导入sqlsever数据库中
如题 最好有简单的办法 因为表项比较多 使用datatable巨费时
------解决方案-----...
-
弄过FairCom公司c-tree数据库的 进 高分
第一次接触这个数据库
有经验的 说说 如何浏览到表 及 记录
用开发工具 vb delp...
-
火鸟Firebird数据库 Error Message:
UPDATA语句后 产生的
Error Message:
----------------------------------------
Unsucce...
-
数据库访问路径的问题
web中JSP页面,使用jsp:useBean 访问不到表,但是在useBean的那个类中测试过可以连接。
是不是web中访问,数据...
-
sqlite里的增减删等操作sql语句在哪能得到?
我想从sqlite数据库中得到一些已经删除的数据,光拿到db文件还不够。请问sqlite有没有专...
-
怎么查询一个表中最值和最值对应的时间
在表T1中
tag value date_time
"A" 5 "2011-02-04 11:12:52"
"A" 9 "2011-...
-
sqllite可以处理多大数据量?
有一份数据,数据量大概一千万到一千五百万行之间
要放进一个表里进行分析,听说sqllite很方便,不知道用它...
-
mongo SyntaxError
> SELECT * FROM things WHERE name="mongo";
Tue Dec 20 17:45:42 SyntaxError: missing ; before statement...
-
sqlite读取datetime类型报错
1 2011/1/23 12:32:12 2011/9/8 5:00:00 df 2
添加时间是手动选择的,数据库没报错,但读取却报字符...
-
哪个有PI OLEDB Provider的安装包通向一下啊(顶者有分)
急需PI OLEDB Provider的安装包,在线等
请各位多多帮忙啊,谢谢
------解决...