FireBird-ben minden változónak rendelkezni kell típussal. Sőt, minden változónak definiáltnak kell lennie a használat előtt, ellenkező esetben az értéke NULL, mely definiálatlant jelent minden típus esetében. A NULL értékre nem alkalmazhatók összehasonlítások, valamint a beépített függvények általában nem fogadnak el NULL értéket, mint paramétert.
A nyelv -tekintve, hogy az SQL nyelv kiterjesztése, és így szükségszerűen támogatja a natív SQL típusok használatát- meglehetősen nagy számú beépített adattípussal rendelkezik. A táblázat mutatja a lehetséges típusok csoportjait.
| Egész | SMALLINT | ||
| INTEGER | |||
| Valós | FLOAT | ||
| DOUBLE PRECISION | |||
| Fixpontos | DECIMAL(precision,scale) | ||
| NUMERIC(precision,scale) | |||
| Idő | DATE | ||
| TIME | |||
| TIMESTAMP | |||
| Szöveg | CHAR(n) | ||
| VARCHAR(n) | |||
| LOB | BLOB |
A fixpontos típusok valójában származtatott típusok, mely származtatást a következő táblázat tartalmazza (3-as SQL dialektus esetén):
| SMALLINT | |
| INTEGER | |
| DOUBLE PRECISION |
Referencia típusokat nem áll módunkban használni FireBird-ben. Szöveges típusok esetén mindig megadható, hogy a változó milyen karakterkészletet (Character Set) használjon, és azon belül milyen összehasonlítási sémát (Collation Order). Előbbit az adatbázis létrehozásakor kell meghatározni, utóbbit táblaszinten is megadhatjuk, illetve értelmezhetjük lokális változókra is. A lehetséges rendezések listája a helpben megtalálható. Példa:
FireBird alatt kétfajta típuskonverziót különböztetünk meg:
Az implicit konverzió a FireBird azon beépített mechanizmusát takarja, melyben a rendszer saját maga felismeri a konverzió szükségességét, és automatikusan végre is hajtja azt. Amennyiben ez nem sikerül, úgy kivétel generálódik. Példa:
Az explicit konverzió a programozó eszköze. Abban az esetben használandó, amikor a rendszer nem konvertálná az adatot automatikusan, azaz nem alkalmazza az implicit konverziót. Ez a funkció a CAST kulcszsóval érhetó el. Szintaxisa: CAST ( value | NULL AS datatype) A lehetséges konverziókat a következő táblázat tartalmazza:
| DATE, TIME, TIMESTAMP | CHAR, VARCHAR |
| CHAR, VARCHAR | DATE, TIME, TIMESTAMP |
| TIMESTAMP | TIME, DATE |
| TIME, DATE | TIMESTAMP |
| NUMERIC types | CHAR, VARCHAR |
Minden esetben, amikor a CAST aktuális paraméterei alapján a konverzió nem elvégezhető, kivétel generálódik. Példa: Egy példa az aktuális dátum -TIMESTAMP típusú- konvertálására DATE típusúra: CAST('now' as DATE)
FireBird-ben az azonosítók legfeljebb 31 karakter hosszúak lehetnek (Constraint-ek esetében ez a szám csak 27). A kezdő karakter kötelezően betű, a továbbiakban számok, betűk és speciális jelek (_, $) váltakozva követhetik egymást. A FireBird nem tesz különbséget a kis- és nagybetűk között. Az objektumok neveinek globálisan egyedieknek kell lenniük az adatbázisban. Amennyiben egy objektum nevének a FireBird valamelyik kifejezését (Reserved word) szeretnénk használni, abban az esetben kettős aposztrofokba (" ... ") kell foglalnunk a nevet.
A változókat használatuk előtt deklarálni kell.
Szintaxis: DECLARE VARIABLE valtozo_nev datatype; Egy változót inicializálnunk kell. Ez nem történik meg automatikusan, minden változó a deklarálás után a NULL értéket veszi fel. Egy változónak a '=' operátorral adhatunk értéket az őt deklaráló eljárás törzsében. FireBird alatt nincs lehetőségünk konstansokat létrehozni, egy objektum konstans voltát nekünk kell biztosítanunk.
Az operátorokat, és azok precedenciáját ábrázolja a következő négy táblázat:
| Szöveges | |
| Matematikai | |
| Összehasonlítás | |
| Logikai |
Az összehasonlító operátorokhoz még hozzávehetők:
Ezek precedenciájának jellemzője, hogy a szerver akkor hajtja végre őket balról jobbra sorrendben, amikor már semmilyen operátorral nem kerülhet összetűzésbe (conflict).
| BEGIN ... END | Blokk határoló |
| DECLARE VARIABLE ... | Deklaráció |
| /* ... */ | Komment |
| = | Értékadás |
| SELECT ... FROM ... INTO ... | Lekérdezés az adatbázisból (SQL utasítás) |
| FOR SELECT ... FROM ... INTO ... BEGIN ... END | Automatikus kurzorlétrehozás az eredményhez |
| INSERT | Adat beszúrása az adatbázisba (SQL utasítás) |
| UPDATE | Adatok módosítása az adatbázisban (SQL utasítás) |
| DELETE | Adat törlése az adatbázisból (SQL utasítás) |
| IF ... THEN ... ELSE ... | Feltételes elágazás |
| WHILE ... DO BEGIN ... END | Elöltesztelős ciklus |
| EXCEPTION ... | Adott kivétel dobása |
| EXECUTE PROCEDURE ... | Eljáráshívás |
| EXIT | Kilépés a teljes eljárásból |
| NULL | Üres utasítás |
| SUSPEND | Egy sornyi visszatérési érték elküldése |
| WHEN ... DO BEGIN ... END | Kivételkezelő utasításrész |
Az egyes műveletek végrehajtását számtalan segédfüggvény segíti, melyekkel többek között numerikus, karakterkezelési, dátumkezelési és konverziós műveletek végezhetők. Az utasítások felsorolásából is látszik, hogy a FireBird a külvilág felé zárt, csak az adatbázisban tárolt adatokhoz fér hozzá. Adatértékeket, mint például a változók tartalmát nem lehet vele a képernyőre, normál állományba kiírni, vagy a képernyőről, normál állományból beolvasni. A SELECT eredményeit a blokk változóiban kell felfogni. Természetesen ezen értékek nem vesznek el örökre előlünk, a kapcsolatot a FireBird blokk és a külvilág között a kapcsolódó segédprogramok tudják megjeleníteni.
Példa: