Marek Olšavský

Linux, databáze, astronomie, ham radio (OK1TOL), výletování a tak vůbec

Štítek: SQL

  • Strom kategorií pomocí CTE (SQL)

    Strom kategorií pomocí CTE (SQL)

    CTE jsem si na oblíbil a používám je především pro předvýběr, abych databázi ulehčil při následném spojování (JOIN). Jejich rekurzivní použití je možná ještě silnější zbraní. Použil jsem je pro zpracování stromu kategorií, bez traverzování, nebo bez ltree z PgSQL.

  • PostgreSQL: Intervaly (Range Types)

    V PostgreSQL přibylo (v řadě 9.x) několik zajímavých typů. Typ json/jsonb asi zaujal více a našel jsem hodně článků (není se čemu divit při popularitě NoSQL databází pro ukládání různě strukturovaných dokumentů); rozšíření o intervaly (range types) si možná všimlo méně vývojářů. Typ interval umí PgSQL od verze 9.2.

  • PostgreSQL: Common Table Expressions

    Při trochu pokročilejších databázových dotazech jsou často využívané korelované dotazy, kde výstup jednoho dotazu poskytuje datovou množinu pro další dotaz. Nejsou velmi efektivní, při požadavku na jejich rychlost je nezřídka nutné mít vytvořený i jinak zcela nelogický index a často je lze nahradit mnohem „čistším“ JOINem. Další možnost nabízí Common Table Expressions (dále jen CTE), […]

  • 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().

  • 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.

  • SQL: Jak nezjišťovat existenci záznamu v tabulce.

    Databáze a SQL mě baví, nepopírám. Jsem postižen svým studiem učitelství Matematiky  – Fyziky a databázařina je pro mě nejvíce aplikovaná matematika při mém programátorském povolání.

  • MariaDB, kde to vázne vážení webhosteři?

    MariaDB je na světě téměř 5 let (22. ledna 2009 byla vydána první verze) a ačkoliv si nachází cestu do distribucí GNU/Linuxu, aškoliv ji testují a nasazují provozovatelé nejvíce navštěvovaných webů, tak webhostingy, minimálně v ČR/SR ji zatím přehlíží. Zcela neoprávněně, stejně jako defakto ignorují PostgreSQL o němž lze napsat, že je to „funkčně open source konkurent Oracle“.

  • 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 […]

  • 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 […]

  • MySQL: Vícesloupcový podvýběr

    Výběry z tabulek jsou často využívány v nejjednodušší možné podobě SELECT * FROM `tabulka` WHERE podmina, zkušenější programátoři hnězdičku moc nepoužívají, vyjmenují pouze sloupce které potřebují, čímž trochu sníží datová zátěž pro přenosy mezi serverem a aplikací. Hodně používaný je JOIN (celá řada „programátorů“ skončí u LEFT JOIN) a v oprávněných případech někdo používá podvýběry.