firebird数据库安装包自带了一套命令行工具,用这些工具能完成所有所需的管理工作,但使用起来(特别是开发阶段)并不是很方便,效率也不高.但免费且功能强大,下面分别介绍:firebird自带的命令行工具都在安装文件夹的\bin下。Windows8下按Win键+x,选择命令提示符(管理员),进入\bin目录.
- 创建数据库(ISQL):命令窗口执行下列命令,并在相应文件夹检查是否创建成功。
- \bin>isql -u sysdba -p masterkey
SQL>CREATE DATABASE "x:\DATABASE\BSKY_DB.FDB"; - 编辑安装目录的“aliases.conf”文件,添加一行"BSKY_DB=X:\database\BSKY_DB.FDB"。
- \bin>isql -u sysdba -p masterkey
- 连接数据库:
- ISQL的帮助:如图
- 创建并管理数据库元素(表、视图、触发器、域、索引等)
- 域:其实就是自己重新定义的数据类型,好处是容易阅读和统一修改。例:
- SQL>CREATE DOMAIN EMAIL_ADDRESS AS
CON>VARCHAR(255) CHARACTER SET NONE
COLLATE NONE; - CREATE DOMAIN KEY_ID AS INTEGER NOT NULL;
- CREATE DOMAIN KEY_NAME AS VARCHAR(40) CHARACTER SET NONE COLLATE NONE;
- SQL>CREATE DOMAIN NORM_BLOB AS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
- 显示域:
SQL>SHOW DOMAINS;
EMAIL_ADDRESS KEY_ID
KEY_NAME NORM_BLOB
- SQL>CREATE DOMAIN EMAIL_ADDRESS AS
- 表:用域来创建表比直接用原始数据类型方便以后管理。比如以后“KEY_NAME”这类类型,字串长度改变,只需要改变域“KEY_NAME”的定义,所有表格中用域"KEY_NAME"定义的字段的类型都自动改变了,而不需要一个个去更改。
- SQL>CREATE TABLE YS_STAFF (
CON>STAFFID KEY_ID NOT NULL ,
CON>STAFFNAME KEY_NAME ,
CON>STAFF_OPTION NORM_BLOB
CON>); - 设置表的主键:
SQL>ALTER TABLE YS_STAFF ADD CONSTRAINT PK_YS_STAFF_1 PRIMARY KEY (STAFFID); - 显示表格:
SQL>SHOW TABLES;
YS_STAFF
- SQL>CREATE TABLE YS_STAFF (
- 就不一一举例了,具体的可以查看官网上的pdf手册或SQL语言手册。
- OUTPUT <FILENAME>:将输出结果写进指定文件,这是一个很有用的功能。
- edit:默认打开写字板。编辑后保存退出即可执行写字板语句。
- shell:执行os的命令。这样就能在方便编写自动日常处理功能。比如用output filename 产生报表,调用外部程序rar.exe 压缩备份.调用ftp程序分发报表。等等。
- 域:其实就是自己重新定义的数据类型,好处是容易阅读和统一修改。例:
- 数据库备份与恢复(GBAK.EXE):工具是bin目录下的GBAK.EXE;
- 先看看它自带的帮助(直接输入GBAK回车),如图。
BIN>GBAK
- 例子:
- 本地简单备份
\bin>gbak -b -user "SYSDBA" -password "masterkey" Z:\database\firebird\BSKY_DB.FDB p:\back\firebird\BSKY_DB.FBK - 本地简单恢复
\bin>gbak -b -user "SYSDBA" -password "masterkey" p:\back\firebird\BSKY_DB.FBK Z:\database\firebird\BSKY_DB.FDB - 本地备份到多卷并保存备份日志:
\bin>gbak -b Z:\database\firebird\BSKY_SYS.FDB p:\back\firebird\BSKY_SYS.FB1 2m p:\back\firebird\BSKY_SYS.FB2 2m p:\back\firebird\BSKY_SYS.FB3 -user "SYSDBA" -password "masterkey" -v -y p:\back\firebird\BSKY_SYS.20120418.log - 本地从多卷恢复
\bin>gbak -c p:\back\firebird\BSKY_SYS.FB1 2m p:\back\firebird\BSKY_SYS.FB2 2m p:\back\firebird\BSKY_SYS.FB3 Z:\database\firebird\BSKY_SYS.FDB -user "SYSDBA" -password "masterkey" -v -y p:\back\firebird\BSKY_SYS.20120418.log - 从远程备份服务器:firebird本身提供的fbsvcmgr方式感觉很难用。后来自己写了一个服务(以后会讲到)。原理就是远程控制这个服务,服务控制本地gbak.exe
- 本地简单备份
- 先看看它自带的帮助(直接输入GBAK回车),如图。
- 用户管理(gsec.exe):工具是bin目录下的gsec.exe
- 自带的帮助
\bin>gsec -help - 新增使用者
gsec -user sysdba -password masterkey
gsec> add Puser -pw 1111 -fname 普通用户 -lnmae 普通用户 - 修改密码
gsec> modify Puser -pw 123456 - 修改sysdba密码
gsec -user sysdba -password masterkey -modify sysdba -pw 123456 - 修改远程服务器sysdba密码
gsec -user sysdba -password masterkey -database beysky.com:"Z:\database\firebird\BSKY_DB.FDB" -modify sysdba -pw 666666 - 修改远程服务器ip( beysky.com)使用tcp port 3838
gsec -user sysdba -password masterkey -database beysky.com/3050:"Z:\database\firebird\BSKY_DB.FDB -modiyf sysdba -pw 383838 - 删除本地使用者
gsec -user sysdba -password masterkey -delete Puser
- 自带的帮助
- 其它工具:其它工具用的很少了。具体可以查看官网上的pdf手册。这里就不再说了(以后有机会再说吧。累了!)。 下一篇介绍强大的第三方工具 IBExpert。你会发现用开发时用这些命令行工具真的是找虐。当然,这些工具用于日常定时的备份、数据同步等成品数据库的管理还是很强大的。