Firebird,中文名就是火鳥數據庫,它提供了ANSI SQL特性支持,并且可以完美運行于Linux、Windows和Unix平臺。Firebird數據庫有著優秀的并發特性和強大的存儲過程和觸發器的語言,需要的朋友下載試試吧!
火鳥數據庫是什么
火鳥數據庫是開源數據庫,數據安全性比較好,費用也比較低,操作和維護就比較簡單。
如果需要卸載的話,雙擊安裝程序包,如果你已安裝的話就會彈出1個窗口,上面有修復和卸載兩個選擇,選擇卸載就能夠進行卸載了。
功能特性:
支持原子性,并發性,隔離性等概念。
支持事務的多個版本功能。
支持存儲過程。
支持事件:存儲過程和觸發器可以引發事件,這個事件可以被客戶端程序監聽到。
生成子:生成子也稱為序列,它可以很容易的實現自動增加的字段。它是一個INT64的長度,因此,它可以用在一個事務中,也可以用在其它很多方面。
只讀數據庫:我們可以把數據庫存放在CD中,形成一個只讀數據庫。如果我們的應用程序也在光盤上,再加上嵌入式的FB數據庫服務器,便可以得到一個無與倫比的 CDLIVE(即只用光盤就可以運行起來)應用。
全事務控制:一個客戶端可以存在多個并發的事務。并且每一個事務都可以獨立的進行控制,兩段提交功能可以保證數據庫的一致性。鎖優化機制也支持多個事務的保存點。
觸發器:每一個表可以有多個并發的行級觸發器,可以在插入前,插入后,更新前,更新后,刪除前,刪除后進行觸發。我們可以在觸發器中寫入PSQL語句,默認值,產生異常,firebird現在支持統一觸發器,即可以一個觸發器中,一次性管理插入,更新,刪除的操作。
字符集:Firebird實現了很多國際標準的字符集,包括Unicode。
擴展函數:可以使用C語言,C++,DELPHI寫UDF,使用UDF(用戶定義函數庫)可以很容易的掛入數據庫引擎中以擴展我們需要的功能.
SQL標準兼容:Firebird 實現了全部SQL92所要求的功能,實現了SQL99最常用的的要求。包括但不限于"FULL/LEFT/RIGHT [OUTER] JOIN , UNION, DISTINCT , 子查詢 (IN, EXISTS),內部函數 (AVG, SUM, MIN, MAX, COALESCE, CASE, ..), 主鍵,外鍵,唯一索引以及所有通用的數據類型。
在線備份:不需要停止數據庫即可進行備份,一個備份進程產生一個數據庫當前的快照。因此,用戶可以在備份期間持續的工作,即實現24x7(每天24小時,每周7天) 的操作。
Firebird還實現了域,字段級別的約束,視圖,異常,規則和權限管理
協議:Firebird協議使用IPL(interbase public license)和IDPL(Initial Developer's Public License),這種協議類似于Mozilla協議。你可以完全的自由使用并且可以自由的布署在你的客戶應用上。
包含三個版本:(a)標準服務器:每一個客戶連接將引發一個服務器進程(支持多處理器) ;(b)超級服務器:一相服務器進程模塊管理所有的客戶端連接,當前不支持多處理器;(c)嵌入服務器:整個服務器引擎就是一個動態庫,只支持本地通過IO進行調用;
NET C# 和 Java 的支持:官方提供了.NET Data Provider 和 JDBC Driver 。
Firebird數據庫如何打開
Firebird安裝使用教程
1.自定義函數問題.Access to UDF library "rfunc.dll" is denied by server administrator
花了很長時間,不明白為何,將rfunc.dll拷到udf目錄,bin目錄,windows\system32目錄都不能解決問題,google一下,網上有同樣的問題,但沒有解決方案,結果我重裝了一下firebird就解決了.
2.存儲過程中變量的定義
ms sql存儲過程中無論在哪都可以定義新的變量,但在firebird中,只能在as 與begin之間進行定義.firebird的變量不能用@符號,我將@全部變成a就好了.
3.存儲過程中變量的使用
select @i=count(*) from table1 //ms sql
select count(*) from table1 into :i//firebird引用變量使用冒號
4.嵌入式sql,
firebird支持select * from table exists (select ...) 或 select * from table in (select ...)
但不支持select * from (select * from ...) a,
我是將這類改寫成視圖解決的
5.case語句
mssql 可使用field= case (),但firebbird僅支持case () as field,
6.mssql getdate()變成CURRENT_DATE+CURRENT_TIME
select * from snartleave where dt_starttime<CURRENT_DATE+CURRENT_TIME
或
select * from snartleave where dt_starttime<CURRENT_DATE||' ' ||CURRENT_TIME
7.返回數據集的存儲過程寫法(firebird寫法有點麻煩)
CREATE PROCEDURE SPVARTST2 (
VAR_IPTARTNO CHAR(6))
RETURNS (
VAR_ARTNAME CHAR(10))
AS
begin
for select v_name1 from snart where v_artNo=:var_iptartno into :var_artname do
suspend;
end
8.自動增長字段的使用(autoincrement)
firebird有個發生器(generator)的東東,在發生器里記錄值的增長,
再用觸發器實現
begin
if (new.i_seqno is null) then
begin
NEW.i_seqno = GEN_ID(GEN_T_DB_ARTSEQNO_ID,1);
end
end
//GEN_T_DB_ARTSEQNO_ID就是創建的發生器,看到沒有,也就是說不同的表不同的字段可以共用一個發生器,gen_id相當于identity,看起來比mssql復雜,其實也很簡單。
9.發生器重置 mssql里自動增加的字段要重置好像很麻煩,較難控制,
firebird可以這樣(存儲過程中)
agenerator=Gen_ID(GEN_T_DB_ARTSEQNO_ID,Gen_ID(GEN_T_DB_ARTSEQNO_ID,0)*-1+1);
//agenerator是一個整形變量,好像一定要裝gen_id的值符給一個變量才行,不知道有沒有更好的辦法,不用定義一個多余的變量
可參考如下網址:http://www.fingerbird.de/generatorguide_body.htm
10 通過一個表更改另一個表的數據
mssql:update table1 set cname=b.cname from table1 a inner join table2 as b where a.id=b.id
firebird:update table1 a set cname=(select cname from table 2 b where b where a.id=b.id)
Firebird 更新日志
Firebird 2.5.5
2015年11月18日更新:
在這個版本改進:
時間戳和運行時統計數據中選擇可用GBAK輸出。
更好的驗證和修正GFIX丟失的數據頁。
Firebird 2.5.4
2015年3月30日更新:
在這個版本改進:
在線驗證用戶定義的表和索引。
優化處理內部臨時blob。
Firebird 2.5.3
2014年7月17日更新:
在這個版本改進:
新的上下文變量添加到系統的名稱空間。
增加一些限制:
最大連接數SuperServer / SuperClassic提出從1024年到2048年連接。
最大數量的輸入參數為用戶定義函數(udf)從10到15。
錯誤報告的改進。
物理備份提高處理性能和可靠性問題。
設置數據不再塊并發連接。
更新或插入語句,返回子句添加到嵌入式SQL。
- PC官方版
- 安卓官方手機版
- IOS官方手機版