LibreOfficeLogo

Příručka aplikace Base 7.3

Dodatek B
Porovnání HSQLDB a Firebird

Datové typy a funkce

Autorská práva

Tento dokument je chráněn autorskými právy © 2022 týmem pro dokumentaci LibreOffice. Přispěvatelé jsou uvedeni níže. Dokument lze šířit nebo upravovat za podmínek licence GNU General Public License (https://www.gnu.org/licenses/gpl.html), verze 3 nebo novější, nebo the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), verze 4.0 nebo novější.

Všechny ochranné známky uvedené v této příručce patří jejich vlastníkům.

Přispěvatelé

Pro toto vydání

Pulkit Krishna

Steve Fanning

Olivier Hallot

Pro předchozí vydání

Randolph Gamo

Robert Großkopf

Pulkit Krishna

Jost Lange

Hazel Russman

Jochen Schiffers

Jean Hollis Weber

 

 

Zpětná vazba

Jakékoli připomínky nebo návrhy k tomuto dokumentu prosím směřujte do fóra dokumentačního týmu na adrese https://community.documentfoundation.org/c/documentation/loguides/ (registrace je nutná) nebo pošlete e-mail na adresu: loguides@community.documentfoundation.org.

Poznámka

Vše, co napíšete do fóra, včetně vaší e-mailové adresy a dalších osobních údajů, které jsou ve zprávě napsány, je veřejně archivováno a nemůže být smazáno. E-maily zaslané do fóra jsou moderovány.

Datum vydání a verze programu

Vydáno Srpen 2022. Založeno na LibreOffice 7.3 Community.
Jiné verze LibreOffice se mohou lišit vzhledem a funkčností.

Používání LibreOffice na systému macOS

Některé klávesové zkratky a položky nabídek jsou v systému macOS jiné než v systémech Windows a Linux. V následující tabulce jsou uvedeny nejdůležitější rozdíly, které se týkají informací v této knize. Podrobnější seznam se nachází v nápovědě aplikace.

Windows nebo Linux

Ekvivalent pro macOS

Akce

Výběr v nabídce Nástroje > Možnosti

LibreOffice > Předvolby

Otevřou se možnosti nastavení.

Klepnutí pravým tlačítkem

Ctrl + klepnutí a/nebo klepnutí pravým tlačítkem v závislosti na operačním systému počítače

Otevře se místní nabídka.

Ctrl (Control)

(Command)

Používá se také s dalšími klávesami.

Alt

⌥ (Option)

Používá se také s dalšími klávesami.

Ctrl+Q

+ Q

Ukončí LibreOffice

 

Datové typy a funkce v HSQLDB a Firebird

Tabulky v tomto dodatku jsou převzaty z příruček pro HSQLDB a Firebird. 

Informace pro interní HSQLDB jsou stejné jako v dodatku A této knihy.

Dodatečná interní databáze Firebird je klasifikována jako experimentální.

V tabulkách je nejprve uvedeno srovnání funkcí, zejména funkcí, které jsou na fórech oblíbené, jako např.:

jsou v současné době k dispozici pouze v externí databázi Firebird, ale ne v interní verzi.

Vestavěné funkce a uložené procedury

Ve vestavěných databázích jsou k dispozici následující funkce. Jednu nebo dvě funkce lze použít pouze při volbě Spustit SQL příkaz přímo. V tomto režimu nelze dotazy upravovat.

Funkce, které pracují s grafickým uživatelským rozhraním, jsou označeny [funguje v grafickém uživatelském rozhraní]. Funkce, které fungují pouze v přímých příkazech SQL, jsou označeny [nefunguje v grafickém uživatelském rozhraní].

Číselné funkce

Upozornění

Protože se zde jedná o čísla s pohyblivou řádovou čárkou, dbejme na nastavení polí v dotazech. Většinou je omezeno zobrazování desetinných míst, což může v některých případech vést k neočekávanému chování. Například ve sloupci 1 může být uvedeno 0,00, ale ve skutečnosti obsahuje 0,001 a ve sloupci 2 1000. Pokud je sloupec 3 nastaven tak, aby zobrazoval sloupec 1 * sloupec 2, zobrazí se ve skutečnosti 1.

Tabulka 1: Číselné funkce

HSQLDB

Firebird

Syntaxe

Popis

Syntaxe

Popis

ABS(d)

Vrací absolutní hodnotu čísla. [funguje v grafickém uživatelském rozhraní]

ABS(d)

 

ACOS(d)

Vrací arkuskosinus. [funguje v grafickém uživatelském rozhraní]

ACOS(d)

 

ASIN(d)

Vrací arkussinus. [funguje v grafickém uživatelském rozhraní]

ASIN(d)

 

ATAN(d)

Vrací arkustangens. [funguje v grafickém uživatelském rozhraní]

ATAN(d)

 

ATAN2(a,b)

Vrací arkustangens prostřednictvím souřadnic. 'a' je hodnota osy x, 'b' je hodnota osy y.
[funguje v grafickém uživatelském rozhraní]

ATAN2(x,y)

 

BITAND(a,b)

"a“ i "b" jsou uvedeny formou binárního zápisu. Musí mít na stejné pozici '1', aby výsledek byl '1'.
BITAND (3,5) vrací 1; 0011 AND 0101 = 0001
[funguje v grafickém uživatelském rozhraní]

BIN_AND(x,y [,z...])

 

BITOR(a,b)

"a“ i "b" jsou uvedeny formou binárního zápisu. Aby výsledek pro danou pozici byl „1“, musí být na stejné pozici v "a" nebo v "b" hodnota „1“.
BITOR (3,5) vrací 7; 0011 OR 0101 = 0111
[funguje v grafickém uživatelském rozhraní]

BIN_OR(x,y [,z...])

 

 

 

BIN_SHL(n,exp)

n · 2 exp [funguje v grafickém uživatelském rozhraní]

 

 

BIN_SHR(n,exp)

n / 2 exp 
Výsledek se zobrazí jako zaokrouhlené celé číslo.
[funguje v grafickém uživatelském rozhraní]

 

 

BIN_XOR(x,y [,z...])

"a“ i "b" jsou uvedeny formou binárního zápisu. Aby výsledek pro danou pozici byl „1“, musí být na stejné pozici v "a" nebo v "b" hodnota „1“.
BIN_XOR(3,5) vrátí 6; 0011 X OR 0101 = 011 0 [funguje v grafickém uživatelském rozhraní]

CEILING(d)

Určuje nejmenší celé číslo, které není menší než d. [funguje v grafickém uživatelském rozhraní]

CEIL(d)

CEILING(d)

 

COS(d)

Vrací kosinus. [funguje v grafickém uživatelském rozhraní]

COS(radians)

Radiány lze také znázornit pomocí úhlu (zde pro jednotkovou kružnici):
radiány = (2 * PI () * úhly / 360)

 

 

COSH(d)

Vrací hyperbolický kosinus.

COT(d)

Vrací kotangens. [funguje v grafickém uživatelském rozhraní]

COT(d)

 

DEGREES(d)

Převádí radiány na stupně. [funguje v grafickém uživatelském rozhraní]

 

 

EXP(d)

Vrací hodnotu d-té mocniny čísla e ( e: (2.718...) ). [funguje v grafickém uživatelském rozhraní]

EXP(d)

 

FLOOR(d)

Vrací největší celé číslo, které není větší než d. [funguje v grafickém uživatelském rozhraní]

FLOOR(d)

 

LOG(d)

Vrací přirozený logaritmus se základem 'e'.
[funguje v grafickém uživatelském rozhraní]

LN(d)

 

LOG10(d)

Vrátí logaritmus o základu 10. [funguje v grafickém uživatelském rozhraní]

LOG10(d)

 

 

 

LOG(base,d)

Vrátí logaritmus čísla d při základu base.

MOD(a,b)

Vrací zbytek jako celé číslo, které vznikne dělením 2 celých čísel.
MOD (11,3) vrátí 2, protože 3 * 3 + 2 = 11
[funguje v grafickém uživatelském rozhraní]

MOD(a,b)

 

PI()

Vrací π (3.1415...) [funguje v grafickém uživatelském rozhraní]

PI()

 

POWER(a,b)

ab , POWER (2,3) = 8, protože 2^3 = 8
[funguje v grafickém uživatelském rozhraní]

POWER(x,y)

 

RADIANS(d)

Převádí stupně na radiány. [funguje v grafickém uživatelském rozhraní]

 

 

EDGE()

Vrátí náhodné číslo x větší nebo rovno 0,0 a menší než 1,0. [funguje v grafickém uživatelském rozhraní]

EDGE( )

 

ROUND(a,b)

Zaokrouhluje číslo a na b číslic za desetinnou čárkou. [funguje v grafickém uživatelském rozhraní]

ROUND(d [, místa])

Zaokrouhluje po zadaném počtu číslic od desetinné čárky.
ROUND (123.45, 1) vrátí 123.50
ROUND (123.45, –2) vrací 100.00
[funguje v grafickém uživatelském rozhraní]

ROUNDMAGIC (d)

Řeší problémy se zaokrouhlováním způsobené čísly s pohyblivou řádovou čárkou. 3,11 – 3,1 – 0,01 nemusí být přesně 0, ale v grafickém uživatelském rozhraní se zobrazuje jako 0. ROUNDMAGIC ji změní na skutečnou hodnotu 0. [funguje v grafickém uživatelském rozhraní]

 

 

SIGN(d)

Vrací –1, pokud je 'd' menší než 0; 0, pokud je 'd' rovno 0; a 1, pokud je 'd' větší než 0. [funguje v grafickém uživatelském rozhraní]

SIGN(d)

 

SIN(A)

Vrací sinus úhlu v radiánech.
[funguje v grafickém uživatelském rozhraní]

SIN(radians)

 

 

 

SINH(d)

Vrací hyperbolický sinus.

SQRT(d)

Vrací druhou odmocninu. [funguje v grafickém uživatelském rozhraní]

SQRT(d)

 

TAN(A)

Vrací tangens úhlu v radiánech.
[funguje v grafickém uživatelském rozhraní]

TAN(radians)

 

 

 

TANH(d)

Vrací hyperbolický tangens.

TRUNCATE (a,b)

Ořízne znaky „a“ až „b“ za desetinnou čárkou.

TRUNCATE(2.37456.2) = 2.37 [funguje v grafickém uživatelském rozhraní]

TRUNC(d[,jobs])

Nastaví na 0 po zadaném počtu číslic od desetinné čárky.
TRUNC (123.45, 1) vrací 123. 4 0
ROUND (123.45, –2) vrací 100.00
[funguje v grafickém uživatelském rozhraní]

Textové funkce

Tabulka 2: Textové funkce

HSQLDB

Firebird

Syntaxe

Popis

Syntaxe

Popis

ASCII(s)

Vrací kód ASCII prvního písmene řetězce. [funguje v grafickém uživatelském rozhraní]

ASCII_VAL ('s')

Vrátí číselnou hodnotu, která odpovídá zadanému znaku. [funguje v grafickém uživatelském rozhraní]

BIT_LENGTH (str)

Vrací délku textu str v bitech. [funguje v grafickém uživatelském rozhraní]

BIT_LENGTH ('s')

 

CHAR(c)

Vrátí písmeno, které patří zadanému kódu ASCII. Nejde jen o písmena, ale také o řídicí znaky.
Znak CHAR (13) vytvoří v dotazu zalomení řádku, které je viditelné ve víceřádkových polích formuláře nebo v sestavách. [funguje v grafickém uživatelském rozhraní]

ASCII_CHAR (n)

Vrátí písmeno, které patří zadanému kódu ASCII. Nejde jen o písmena, ale také o řídicí znaky. [funguje v grafickém uživatelském rozhraní]

CHAR_LENGTH (str)

Vrací délku textu v písmenech. [funguje v grafickém uživatelském rozhraní]

CHAR_LENGTH ('s')

CHARACTER_LENGTH('s')

 

 

 

CHAR_TO_UUID

Převede 36znakový univerzálně jedinečný identifikátor (UUID) na 16bajtový UUID
.(vypíše nečitelné znaky).

CONCAT (STR1,STR2)

Spojí str1 + str2. [funguje v grafickém uživatelském rozhraní]

 

 

DIFFERENCE (s1,s2)

Zobrazuje zvukový rozdíl mezi s1 a s2. Výstupem je pouze celé číslo. 0 znamená stejný zvuk. Takže „for“ a „four“ je rovno 0 (zní stejně), shortening a seasoning je rovno 1 a mouth a moon je opět 0. [funguje v grafickém uživatelském rozhraní]

 

 

HEXTORAW (s1)

Převádí hexadecimální kód na jiné znaky. [funguje v grafickém uživatelském rozhraní]

 

 

INSERT(s, start, len,s2)

Vrací textový řetězec s nahrazenou částí textu. Počínaje „start“ se z textu „s“ vyřízne délka „len“ a nahradí se textem „s2“.

INSERT('Bundesbahn', 3, 4, 'mmel' ) převede Bundesbahn na Bummelbahn, přičemž délka vloženého textu může být větší než délka odstraněného textu, aniž by to způsobilo nějaké problémy. Takže INSERT('Bundesbahn', 3, 5, 's und B' ) dává výsledek 'Bus und Bahn'. [funguje v grafickém uživatelském rozhraní]

OVERLAY ('s' PLACING 's2' FROM pos [FOR délka])

Pokud je počáteční pozice nastavena tak, že je větší nebo rovna aktuálnímu textu „s“, pak se k „s“ přímo připojí „s2“.
OVERLAY „Bundesbahn“ PLACING „mmel“ FROM 3 FOR 4) změní „Bundesbahn“ na „Bummelbahn“, přičemž délka vloženého textu může být delší než délka vystřiženého textu. Takže
OVERLAY („Bundesbahn“ PLACING ' s a B ' FROM 3 FOR 5 ) vede k „Bus und Bahn“.
[nefunguje v grafickém uživatelském rozhraní]

LCASE(s)

Převede řetězec na malá písmena. [funguje v grafickém uživatelském rozhraní]

 

 

LEFT(s, count)

Vrátí počet znaků zadaných pomocí count od začátku řetězce s. [funguje v grafickém uživatelském rozhraní]

LEFT('s', length)

 

LENGTH(s)

Vrací délku řetězce. [funguje v grafickém uživatelském rozhraní]

 

 

LOCATE (search,s [,start])

Vrátí první shodu výrazu search v řetězci s. Shoda je uvedena číselně: (1 = nalezeno, 0 = nenalezeno).
Zadání počátečního bodu v řetězci je nepovinné.
[funguje v grafickém uživatelském rozhraní]

POSITION ('s2' IN 's')

POSITION („s2“, „s“ [, S tartpos ition ])

 

POSITION (<řetězcový výraz> IN <řetězcový výraz>)

Pokud je první řetězec obsažen v druhém, vrátí se pozice prvního řetězce, jinak se zobrazí 0.
To lze použít místo možnosti vyhledávání pomocí LIKE. [funguje v grafickém uživatelském rozhraní]

 

 

LTRIM(s)

Odstraní z textu počáteční mezery a netisknutelné znaky. [funguje v grafickém uživatelském rozhraní]

 

 

OCTET_LENGTH (str)

Vrací délku textového řetězce v bajtech. V zásadě to odpovídá dvojnásobku délky ve znacích. [funguje v grafickém uživatelském rozhraní]

OCTET_LENGTH (str)

Vrátí skutečný počet znaků se započtením mezer. Počet závisí na znakové sadě. UTF-8 potřebuje dva bajty pro speciální znaky.

RAWTOHEX(s1)

Převede na hexadecimální zápis; opačná funkce než HEXTORAW(). [funguje v grafickém uživatelském rozhraní]

 

 

REPEAT(s, count)

Opakuje textový řetězec 's' count-krát. [funguje v grafickém uživatelském rozhraní]

 

 

REPLACE(s, replace,s2)

Nahradí všechny existující výskyty slova 'replace' v řetězci 's' textem 's2'. [funguje v grafickém uživatelském rozhraní]

REPLACE('s', 's2', replacement)

REPLACE ('Schule', 'ul', 'eib' ) převede 'Schule' na 'Schieibe'. Pokud se 's2' v 's' nevyskytuje, nebude nahrazeno nic. Pokud se v položce 's2' nebo náhradě objeví N2, výsledkem je NULL.

 

 

LPAD('s', celková délka [,znaků])

LPAD ('Hello', 8 , '+') = +++ Hello

Umístí libovolné znaky před řetězec, dokud není dosaženo celkové délky. Pokud je celková délka menší než délka řetězce, řetězec se vpravo odřízne. Pokud třetí parametr zůstane prázdný, umístí se před něj mezery.

 

 

RPAD('s', celková délka [,znaků])

RPAD ('Hello', 8 , '+') = Hello +++

Umístí libovolné znaky za řetězec, dokud není dosaženo celkové délky. Pokud je celková délka menší než délka řetězce, řetězec se vpravo odřízne. Pokud třetí parametr zůstane prázdný, umístí se za něj mezery.

 

 

REVERSE('s')

Úplně invertuje řetězec. To může být užitečné, například pokud chceme řadit podle koncovek znaků (např. koncovek domén).

RIGHT(s, count)

Obrácená funkce k LEFT; vrací počet znaků zadaný počtem od konce řetězce.
[funguje v grafickém uživatelském rozhraní]

RIGHT('s', length)

 

RTRIM(s)

Odstraní všechny mezery a netisknutelné znaky na konci řetězce. [funguje v grafickém uživatelském rozhraní]

 

 

SOUNDEX(s)

Vrací kód o 4 znacích, který by měl odpovídat zvuku řetězce 's' – odpovídá funkci DIFFERENCE (). [funguje v grafickém uživatelském rozhraní]

 

 

SPACE(count)

Vrací počet mezer zadaný v parametru count. [funguje v grafickém uživatelském rozhraní]

 

 

SUBSTR(s, start [,len])

Zkratka pro SUBSTRING. [funguje v grafickém uživatelském rozhraní]

 

 

SUBSTRING (s,start [,len])

Vrací řetězec 's' od počáteční pozice. (1 = vlevo). Pokud je délka vynechána, je vrácen celý řetězec. [funguje v grafickém uživatelském rozhraní]

 

 

SUBSTRING (<řetězcový výraz> FROM <číselný výraz> [FOR <číselný výraz>])

Vrátí část řetězce od počáteční pozice zadané ve FROM, volitelně v délce zadané ve FOR.
Pokud se například v poli "Name" objeví "Roberta", výsledkem SUBSTRING ("Name" FROM 3 FOR 3) je podřetězec "bert".
[funguje v grafickém uživatelském rozhraní]

SUBSTRING ('s' FROM start position [FOR length])

 

TRIM ([{LEADING | TRAILING | BOTH}] FROM <řetězcový výraz>)

Speciální znaky a mezery, které nelze vytisknout, jsou odstraněny.
[funguje v grafickém uživatelském rozhraní]

TRIM ([Where 's2' FROM] 's')

Where: BOTH | LEADING | TRAILING
standardem je zde BOTH pro obě strany 's'.
s2: Znak, který má být odstraněn. Ve výchozím nastavení jsou to mezery (' '), ale mohou to být i jiné znaky.

TRIM (TRAILING '!' FROM 'Hallo!') vrátí 'Hallo'

UCASE(s)

Převede řetězec na velká písmena. [funguje v grafickém uživatelském rozhraní]

 

 

LOWER(s)

Jako LCASE(s) [pracuje v grafickém uživatelském rozhraní]

LOWER('s')

 

UPPER(s)

Jako UCASE(s). [funguje v grafickém uživatelském rozhraní]

UPPER('s')

 

 

 

UUID_TO_CHAR ('s')

Převede 16bajtový UUID na 36znakový formát ASCII.

Funkce data a času

Tabulka 3: Funkce data a času

HSQLDB

Firebird

Syntaxe

Popis

Syntaxe

Popis

 

 

DATEADD ( n DAY TO date )

DATEADD (DAY, n, date)

n je celé číslo a pro odčítání může být i záporné.
YEAR | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND | MILLISECOND se používají jako termíny pro časový interval.
Jako termín data použijeme buď datum / datumové pole, čas / časové pole, nebo časové razítko.

DATEDIFF (string, datetime1, datetime2)

Rozdíl mezi dvěma daty nebo časy.

Položka v řetězci rozhoduje o tom, v jaké jednotce se rozdíl zobrazí: ms“ = „milisekunda“, „ss“ = „sekunda“, „mi“ = „minuta“, „hh“ = „hodina“, „dd“ = „den“, „mm“ = „měsíc“, „yy“ = „rok“.

Lze použít dlouhou i krátkou verzi řetězce. [funguje v grafickém uživatelském rozhraní]

DATEDIFF ( DAY FROM date TO date )

DATEDIFF (DAY, date, date)

Viz DATEADD.

EXTRACT ({YEAR|MONTH |DAY|HOUR| MINUTE| SECOND} FROM <date or time value>)

Může nahradit mnoho funkcí data a času. Vrátí rok, měsíc, den atd. z hodnoty data nebo denního času.
EXTRACT (DAY FROM "date") zobrazí den v měsíci.
[funguje v grafickém uživatelském rozhraní]

EXTRACT ({YEAR| MONTH | WEEK | DAY | WEEKDAY | YEARDAY | HOUR | MINUTE | SECOND | MILLISECOND } FROM <hodnota data nebo času>)

WEEKDAY  Sunday = 0 

YEARDAY  January 1st = 0 

WEEK  1. týden: min. 4 dny v roce 

DAY(date)

Vrátí den v měsíci (1-31). [funguje v grafickém uživatelském rozhraní]

 

 

DAYNAME (date)

Vrátí anglický název dne. [funguje v grafickém uživatelském rozhraní]

 

 

DAYOFMONTH (date)

Vrací den v měsíci (1-31), synonymum pro DAY(). [funguje v grafickém uživatelském rozhraní]

 

 

DAYOFWEEK (date)

Vrátí den v týdnu jako číslo (1 znamená neděli.) [funguje v grafickém uživatelském rozhraní]

 

 

DAYOFYEAR (date)

Vrátí den v roce (1-366). [funguje v grafickém uživatelském rozhraní]

 

 

HOUR(time)

Vrátí hodinu (0-23). [funguje v grafickém uživatelském rozhraní]

 

 

MINUTE(time)

Vrátí minutu (0-59). [funguje v grafickém uživatelském rozhraní]

 

 

MONTH(date)

Vrátí měsíc (1-12). [funguje v grafickém uživatelském rozhraní]

 

 

MONTHNAME (date)

Vrátí anglický název měsíce. [funguje v grafickém uživatelském rozhraní]

 

 

QUARTER (date)

Vrátí čtvrtletí roku (1-4). [funguje v grafickém uživatelském rozhraní]

 

 

SECOND(time)

Vrátí sekundy času (0-59). [funguje v grafickém uživatelském rozhraní]

 

 

WEEK(date)

Vrátí týden v roce (1-53). [funguje v grafickém uživatelském rozhraní]

 

 

YEAR(date)

Vrátí rok ze zadaného data. [funguje v grafickém uživatelském rozhraní]

 

 

Funkce připojení k databázi

Tabulka 4: Funkce připojení k databázi

HSQLDB

Firebird

Syntaxe

Popis

Syntaxe

Popis

DATABASE()

Vrací cestu a název databáze patřící k tomuto připojení. [funguje v grafickém uživatelském rozhraní]

 

 

 

 

CURRENT_TRANSACTION

SELECT CURRENT_T RANSACTION FROM RDB $ DATABASE vrátí jedinečný identifikátor transakce jako celé číslo.

 

 

CURRENT_CONNECTION

SELECT CURRENT_CONNECTION FROM RDB $ DATABASE vrátí celočíselnou hodnotu pro aktuální připojení.

 

 

CURRENT_ROLE

SELECT CURRENT_ROLE FROM RDB $ DATABASE odráží roli aktuálního uživatele. Pokud není definována žádná role, výsledkem je NONE.

 

 

RDB $ SET_CONTEXT ('<namespace>', '<název proměnné>', value | NULL )

Namespace: USER_SESSION | USER_TRANSACTION

Název proměnné může mít maximálně 80 znaků a value může mít maximálně 255 znaků.

CURRENT_USER

Standardní funkce SQL, synonymum funkce USER(). Je třeba poznamenat, že zde nejsou závorky. [funguje v grafickém uživatelském rozhraní]

CURRENT_USER

 

USER()

Vrací uživatelské jméno tohoto připojení. Uživatelské jméno je důležité, pokud má být databáze převedena do externí databáze.
[SQL direct – nefunguje s grafickým uživatelským rozhraním]

USER

 

IDENTITY()

Vrací poslední hodnotu pole automatická hodnota, které bylo vytvořeno v aktuálním spojení. Používá se při programování maker k vytvoření cizího klíče pro jinou tabulku z primárního klíče vytvořeného pro jednu tabulku. [funguje v grafickém uživatelském rozhraní]

GEN_ID (název generátoru, <krok>)

Automatické hodnoty se vytvářejí pomocí generátoru. Velikost kroku by zde měla být uvedena jako 1. V zásadě je ale možná jakákoliv celočíselná hodnota.

new.rec_id = gen_id (gen_recnum, 1);

Funkce systému

Tabulka 5: Systémové funkce

HSQLDB

Firebird

Syntaxe

Popis

Syntaxe

Popis

IFNULL (exp, value)

Pokud má parametr exp hodnotu NULL, je vrácena hodnota parametru value, jinak je vrácena hodnota parametru exp. Místo toho lze jako rozšíření použít také COALESCE (). Parametry exp a value musí mít stejný datový typ.
Funkce IFNULL je důležitá, pokud jsou pole vzájemně propojena pomocí faktury nebo CONCAT. Obsah výsledku by byl NULL, i když je NULL pouze jedna hodnota.
"Last name" || ',' || "first name" by vedlo k prázdnému poli pro osoby, které například nemají položku "first name", tj. NULL.
"Last Name" || IFNULL (',' || "First Name", '') by místo toho vypsalo jen "Last Name".
[funguje v grafickém uživatelském rozhraní]

 

 

CASE WHEN (exp, v1, v2)

Pokud má parametr exp hodnotu true, vrátí se v1, jinak v2. Místo toho lze použít také CASE WHEN.
CASEWHEN ("a" > 10, 'goal reached', 'still practice') vrátí 'goal reached', pokud je obsah pole "a" větší než 10.
[funguje v grafickém uživatelském rozhraní]

IIF (<podmínka>, v1, v2)

 

CONVERT (term, type)

Převede term na jiný datový typ uvedený v type.
CONVERT ("a", DECIMAL (5,2)) vytvoří z pole "a" pole s 5 číslicemi včetně 2 desetinných míst. Pokud je číslo příliš velké, vypíše se chyba.
[funguje v grafickém uživatelském rozhraní]

 

 

CAST (term AS type)

Synonymum pro CONVERT ()
[funguje v grafickém uživatelském rozhraní]

CAST (term AS type)

From 

To

Číselné typy

Číselné typy [VAR] CHAR
BLOB

[VAR] CHAR  
BLOB 

[VAR] CHAR
BLOB
Numeric types  
DATE  
TIME  
TIMESTAMP

DATE  
TIME

[VAR] CHAR 
BLOB
TIMESTAMP

TIMESTAMP

[VAR] CHAR 
BLOB  
DATE  
TIME

COALESCE (expr1, expr2, expr3, ...)

Pokud expr1 není NULL, zobrazí se expr1, jinak se zkontroluje expr2, pak expr3 atd. Všechny výrazy musí mít alespoň podobný datový typ. Jedná se o alternativní reprezentaci celých čísel a čísel s plovoucí desetinnou čárkou, nikoli však také data nebo hodnoty času.
[funguje v grafickém uživatelském rozhraní]

COALESCE (expr1, expr2 [, expr3 ...]

 

NULLIF (v1, v2)

Pokud se v1 rovná v2, vrátí se null, jinak se vrátí hodnota v1. Hodnoty v1 a v2 musí být typově srovnatelné.
[funguje v grafickém uživatelském rozhraní]

NULLIF (v1, v2)

 

CASE v1 WHEN v2 THEN v3 [ELSE v4] END

Pokud se v1 rovná v2, provede se v3. V opačném případě se provede v4 nebo NULL, pokud není definováno ELSE.
[SQL direct – nefunguje s grafickým uživatelským rozhraním]

DECODE ( test expression , expression , result [, expression2 , Earnings2 ...] [, default expression ])

DECODE (UPPER ("gender"), 'M', 'male', 'F', 'female', 'unknown')

CASE WHEN expr1 THEN v1 [WHEN expr2 THEN v2] [ELSE v4] END

Pokud má expr1 hodnotu true, je vrácena hodnota v1 [Volitelně lze zadat další případy]. V opačném případě je reprodukováno v4 nebo NULL, pokud není formulováno ELSE.
CASE WHEN DAYOFWEEK ("date") = 1 THEN 'Sunday' WHEN DAYOFWEEK ("date") = 2 THEN 'Monday'… END
by mohl vypsat den v týdnu pomocí SQL, který je jinak ve funkci k dispozici pouze v angličtině.
[funguje v grafickém uživatelském rozhraní]

 

DECODE (EXTRACT ( WEEK DAY FROM "date"), 0 , ' Sunday ', 1 , ' Monday ', ' etc. ')

 

 

GEN_UUID ()

Vrátí jedinečné ID jako 16bajtovou sadu znaků.

 

 

HASH (s)

Vrací hodnotu hash libovolně dlouhého řetězce. Hodnoty hash stejných řetězců znaků musí být stejné.

 

 

MAXVALUE (expr [, expr ...])

Vrací maximální hodnotu seznamu hodnot. Pracuje s řetězci, číselnými hodnotami, daty nebo časovými hodnotami.

 

 

MINVALUE (expr [, expr ...])

Vrací minimální hodnotu seznamu hodnot. Pracuje s řetězci, číselnými hodnotami, daty nebo časovými hodnotami.

Agregační funkce

Tabulka 6: Agregační funkce (zejména s GROUP BY)

HSQLDB

Firebird

Syntaxe

Popis

Syntaxe

Popis

 

 

MAX (expr)

Maximální hodnota pole v tabulce.

 

 

MIN (expr)

Minimální hodnota pole v tabulce.

 

 

LIST ( [ALL | DISTINCT] 's' , [ ' s2'] )

Připojí pole několika datových záznamů k jednomu poli s odpovídajícím termínem připojení „s2“. [funguje v grafickém uživatelském rozhraní]

Proměnné

Tabulka 7: Proměnné (v závislosti na počítači)

HSQLDB

Firebird

Proměnná

Popis

Proměnná

Popis

CURRENT_TIME

Synonymum pro CURTIME (), standard SQL.
[funguje v grafickém uživatelském rozhraní]

CURRENT_TIME

Čas v hodinách, minutách a sekundách.
CURRENT_TIME (3) rovněž udává milisekundy.

CURTIME ()

Vrací aktuální čas. [funguje v grafickém uživatelském rozhraní]

 

 

CURRENT_TIMESTAMP

Synonymum pro NOW (), standard SQL.
[funguje v grafickém uživatelském rozhraní]

CURRENT_TIMESTAMP [(přesnost)]

Zadání času s datem a milisekundami.
Přesnost lze nastavit pomocí [0 | 1 | 2 | 3]. Standardem jsou 3 desetinná místa.

SELECT CURRENT_TIMESTAMP (2) FROM RDB $ DATABASE
vrátí časové razítko s desetinami a setinami sekundy (2 desetinná místa).

NOW ()

Vrátí aktuální datum a čas společně jako časové razítko. Místo toho lze použít také CURRENT_TIMESTAMP. [funguje v grafickém uživatelském rozhraní]

CAST ('NOW' AS DATE | TIME | TIMESTAMP)

nebo DATE 'NOW'

Samotné 'NOW' je chápáno jako řetězec. Vhodným převodem se z něj stane datum, čas nebo časové razítko (každé s 1/1000 s).

Zkrácená forma v grafickém uživatelském rozhraní nefunguje.

CURRENT_DATE

Synonymum pro CURDATE (), standard SQL. [funguje v grafickém uživatelském rozhraní]

CURRENT_DATE

 

CURDATE ()

Vrací aktuální datum. [funguje v grafickém uživatelském rozhraní]

 

 

Operátory a příkazy

Tabulka 8: Operátory a příkazy

HSQLDB

Firebird

Operátor nebo příkazy

Popis

Operátor nebo příkazy

Popis

'str1' || 'str2' || 'str3' or 'str1' + 'str2' + 'str3'

Spojí str1 + str2 + str3; jednodušší alternativa ke CONCAT. [funguje v grafickém uživatelském rozhraní]

's1' || ' s 2 ' [ ||' s3 '... ]

Připojí s1, s2 atd. k novému řetězci [funguje v grafickém uživatelském rozhraní]

 

 

ALL

 

 

 

ANY / SOME

 

 

 

IN ( )

 

 

 

IS [NOT] DISTINCT FROM

Výsledkem je „ano“ nebo „ne“.

 

 

NEXT VALUE FOR název sekvence

Viz GEN_ID (), ale neumožňuje jiné kroky než 1.

 

 

SOME

 

Datové typy pro editor tabulek

Celočíselné datové typy

Tabulka 9: Datové typy celých čísel

Typ

Možnost

HSQLDB

Firebird

Rozsah

Velikost v paměti

Tiny integer

TINYINT

TINYINT

 

28 = 256 | – 128 to + 127

1 bajt

Small integer

SMALLINT

SMALLINT

SMALLINT

216 = 65536 | – 32768 to + 32767

2 bajty

integer

INTEGER

INTEGER | INT

INTEGER

232 = 4294967296 | – 2147483648 to + 2147483647

4 bajty

BigInt

BIGINT

BIGINT

BIGINT

264  (–263 to +263 )

8 bajtů

Datové typy s pohyblivou řádovou čárkou

Tabulka 10: Datové typy čísla s pohyblivou desetinnou čárkou

Typ

Možnost

HSQLDB

Firebird

Rozsah

Požadavky na paměť

Desetinné číslo

DECIMAL

DECIMAL

DECIMAL (n, m)

Neomezeně, přes GUI až na 50 číslic, nastavitelné, pevná desetinná místa, vysoká přesnost

2, 4 nebo 8 bajtů

Číslo

NUMERIC

NUMERIC

NUMERIC (n, m)

Neomezeně, přes GUI až na 50 číslic, nastavitelné, pevná desetinná místa, vysoká přesnost

2, 4 nebo 8 bajtů

Float

FLOAT

(místo toho se používá DOUBLE)

FLOAT

3.4 * 10–38  to 3.4 * 1038
nastavitelný, ne přesný, maximálně 7 desetinných míst

4 bajty

Reálná část

REAL

REAL

 

 

 

Double

DOUBLE

DOUBLE [PRECISION] | FLOAT

DOUBLE PRECISION

1 , 7 * 10-308 až 1 , 7 * 10308 nastavitelné, ne přesné, maximálně 15 desetinných míst

8 bajtů

Datové typy textu

Tabulka 11: Datové typy textu

Typ

Možnost

HSQLDB

Firebird

Rozsah

Požadavky na paměť

Text

VARCHAR

VARCHAR

VARCHAR (n)

Nastavitelný

Proměnná
Firebird: 1 až 32767 bajtů

Text

VARCHAR_IGNORECASE

VARCHAR_IGNORECASE

 

Nastavitelné, ovlivňuje třídění, ignoruje rozdíly mezi velkými a malými písmeny

proměnná

Text (pevný)

CHAR

CHAR | CHARACTER

 

Nastavitelný, zbytek textu je vyplněn mezerami.

pevná

Memo

LONGVARCHAR

LONGVARCHAR

BLOB (BLOB SUB_TYPE 1)

 

proměnná
Firebird: <32 GB

Datové typy datum/čas

Tabulka 12: Datové typy datum/čas

Typ

Možnost

HSQLDB

Firebird

Rozsah

Požadavky na paměť

Datum

DATE

DATE

DATE

 

4 bajty

Čas

TIME

TIME

TIME

Firebird: 0:00 až 23:59,9999

4 bajty

Datum/čas

TIME STAMP

TIMESTAMP | DATE TIME

TIME STAMP

Nastavitelné ( HSQLDB: 0, 6 – 6 znamená s milisekundami)

8 bajtů

Ostatní typy dat

Tabulka 13: Další datové typy

Typ

Možnost

HSQLDB

Firebird

Rozsah

Požadavky na paměť

Ano Ne

BOOLEAN

BOOLEAN | BIT

 

 

 

Binární pole (pevné)

BINARY

BINARY

 

Stejně jako integer

pevná

Binární pole

VARBINARY

VARBINARY

 

Stejně jako integer

proměnná

Image

LONGVARBINARY

LONGVARBINARY

BLOB SUB_TYPE 0
BLOB SUB_TYPE binary

Stejně jako integer

proměnná, určená pro větší obrázky
Firebird: <32 GB

OTHER

OTHER

OTHER | OBJECT

 

 

 

Obsah