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