SQLite: emulace RPAD a LPAD

SQLite je velmi lehké řešení SQL databáze, ne vždy je potřebný „těžkotonážní server“ (PostgreSQL, MariaDB, …), a tak postrádá některou funkčnost. Mírně jsem postrádal ZEROFILL INTEGER, nebo možnost si jej emulovat pomocí funkce LPAD().

Pokračování textu SQLite: emulace RPAD a LPAD

Flattr this!

SQL: podmínka v UPDATE

Každý, kdo pracuje při programování s databázemi, zná příkaz UPDATE a ví, jak se aktualizuje konkrétní řádek/řádky, když si je omezí podmínkami v části WHERE. I měněnou hodnotu lze zapodmínkovat, aby se ušetřil zbytečný dotaz.

Pokračování textu SQL: podmínka v UPDATE

Flattr this!

SQL: Indexujte a experimentujte s indexy

Dovolím si navázat na článek „Jak psát kód: Databázové indexy vytvářejte při psaní dotazů“ Jakuba Vrány. Na indexaci je dobré klást důraz při návrhu databáze, odobně ji řadím na 2. místo za správným ER modelem, a drtivá většina databází nabízí nástroj pro vyladění indexů. Vedle indexů stojí složité dotazy, jejichž využitím lze z SQL databáze dostat data efektivněji a jichž se není nutné bát.

Pokračování textu SQL: Indexujte a experimentujte s indexy

Flattr this!

Databáze pro eshop/cms, váhání mezi MySQL/MariaDB a SQLite

Evidentně nejsem první, kdo dospěl do stavu, kdy řešení webů v instantním open source systému začíná být nepohodlné. Nekritizuji funkčnost; byť ZenCart mi připadá jako učebnice toho, jak se psát nemá a hlavně jak nemá aplikace používat databázi; ale při potřebě dopsat vlastní rozšíření/úpravy to prostě bolí. Pronikání co cizího způsobu psaní kódu a prohledávání neznámého frameworku asi nemá rád žádný programátor.

Pokračování textu Databáze pro eshop/cms, váhání mezi MySQL/MariaDB a SQLite

Flattr this!

Nepoužíváním k zapomínání.

Posledních cca 5-6 let jsem se snažil propagovat databázový server PostgreSQL, ale poslední 3 roky jsem byl spíše v úrovni teorie, než praxe, protože jej již nepoužívám. Není to proto, že bych na něj zanevřel, ale jednoduše nemám moc příležitostí.

Pokračování textu Nepoužíváním k zapomínání.

Flattr this!

SQLite

SQLite je nesporně velmi zajímavým kusem software. Jde o velmi jednoduché a přesto dokonale efektivní řešení databáze. Pro některé uživatele/programátory se nejedná o plnohodné řešení databáze, nicméně, pokud si najdete (třeba na wikipedii) definici databáze, tak zjistíte, že ji SQLite bezezbytku splňuje.

SQLite je databáze, která je primárně beztypová, tj. můžete databázi nadefinovat jak chcete a potřebujete a data můžete uložit naprosto bez ladu a skladu :-D, což ale není zcela rozumný nápad. Tabulky můžete definovat buď jen beztypovým vyjmenováním sloupců, nebo jim udáte i typy. Udáním typů pro jednotlivé sloupce jen udáte prioritu, jak si je má databáze uložit, pokud se jí to nepodaří, bude hodnota uložena jako text. Všiml jsem si, že třeba Borlandí prostředí, pokud se nenatypují sloupce nemá moc příjemné vybírání dat z jednotlivých buněk.

SQLite je, aktuálně, v řadě 3 a jestli nemáte důvody používat starší řadu, například díky tomu, že je zaembedována do PHP5 (od verze 5.1 už není, ale je jako externí modul), použijte ji. Jednako tato aktuální řada pracuje podstatně lépe s Unicode/UTF-8 a je optimalizovanější v nárocích na diskový prostor.

Protože mě plně vyhovuje práce z příkazového zdroje, neprozradím vám mnoho z použití gui nástrojů, nicméně v prostředí MS Windows mě velmi zaujal …. Databázi vytvoříte jednoduše použitím příkazu:

sqlite3 ~/sqlite/prvni.sq3
# pokud potrebujete pouzivat SQLite rady 2
sqlite ~/sqlite/prvni.sq2

Sqlite3, eventuálně sqlite pro verzi 2.x, je cli administrační nástroj. Předchozím příkazem vytvoříte v podadresáři sqlite/ soubor prvni.sq3, do nějž postupně nadefinujete tabulky a kde budou uložená data. Na koncovce nezáleží, ale pokud používáte některý gui nástrojů pro správu, je rozumné používat stejnou koncovku, kterou si naasociujete na oblíbený administrační program. Pokud již databáze existuje, tak výše uvedeným příkazem databázi pouze otevřete, stejně je tomu, například, v PHP5.

Pokud máte databázi otevřenu, můžete vytvořit tabulky, triggery, pohledy, triggery a uložené dotazy. Můžete manipulovat s daty.

Překvapivě je SQLite velmi rychlá databáze, pokud zkusíte porovnání s MySQL, FirebirdSQL, či PostgreSQL, budete velmi příjemně překvapeni. Já sám tuto databázi nasazuji do míst, kde je téměř jisté, že nebudu moci mít spuštěný plnohodnotný databázový server. V současné době jím nahrazuji poměrně nepříjemné, nestabilní a pomalé řešení, kdy můj předchůdce ve vývoji jednoho software ukládal data z Borlandích paměťových tabulek do XML souborů. Znamená to sice poměrně rozsáhlé přepisování aplikace, nicméně výsledky jsou velmi pozitivní.

Pokud hledáte vhodnou databázi, nejen pro malé projekty, doporučuji zaměřit pozornost na SQLite. Jediným limitem v množství uložených dat je omezení souborového systému, kde databáze běží. Pochopitelně se jedná o multiversion databázi a je třeba občas ji vyčistit od neplatných záznamů.

Flattr this!