Pchełki SQL: Ile jest różnych skal muzycznych?

Liczymy ośmiodźwiękowe skale muzyczne za pomocą SQL-a. Czemu tak? Bo się da 😉

Pomysł na dzisiejszy wpis zerżnąłem (zresztą nie po raz pierwszy) od Johna: https://www.johndcook.com/blog/2017/09/30/how-many-musical-scales-are-there/

Analogicznie do chlebaka, który jak powszechnie wiadomo służy do noszenia granatów, oktawa, jak sama nazwa wskazuje, składa się z dwunastu półtonów.

To znaczy tak: półtonów jest rzeczywiście dwanaście, ale dźwięków tylko osiem. Czytaj dalej Pchełki SQL: Ile jest różnych skal muzycznych?

Pchełki SQL: leniwe przestępne

Zaskakująco prosta metoda na sprawdzenie przestępności roku.

Pisałem kiedyś o latach przestępnych: skąd się wzięły, na czym polegają i tak dalej.

Algo-rytm prze-stęp-NY

Dziś szybciutko o bardzo prostym, a zarazem bardzo efektownym sposobie sprawdzenia, czy dany rok jest przestępny czy nie. Za pomocą języka SQL! Czytaj dalej Pchełki SQL: leniwe przestępne

Pchełki SQL: ROW_NUMBER() bez sortowania

Rzecz o tym, jak nie posortować danych w SQL-u.

Każdy, kto przez jakiś czas pracował z językiem SQL wie, że prędzej czy później pojawia się potrzeba ponumerowania kolejnych rekordów. W tym celu wymyślono funkcję ROW_NUMBER(), która – jak sama nazwa wskazuje – generuje kolejne wartości od jeden wzwyż, dla każdego rekordu. Czytaj dalej Pchełki SQL: ROW_NUMBER() bez sortowania

Bug istnieje, oto dowód

Mało znany błąd SQL Servera dotyczący funkcji HASHBYTES w połączeniu z kolumną wyliczaną.

Dziś pchełka SQL o przewrotnym tytule, dzięki któremu mam cichą nadzieję ściągnąć tu jakiegoś wojującego… no nie wiem właściwie kogo. W każdym razie rzecz będzie o ciekawym i bardzo mało znanym błędzie SQL Servera, na który miałem niedawno okazję się nadziać (na szczęście bezboleśnie).

Jak powszechnie wiadomo[citation needed], jedną z bardziej wydajnych metod na sprawdzenie spójności danych jest ich haszowanie za pomocą funkcji skrótu. Czytaj dalej Bug istnieje, oto dowód

Pchełki SQL: Szanse kolizji

O synchronizacji danych i szansach kolizji kryptograficznych.

Dzisiejsza Pchełka nie zawiera ani jednej linii kodu SQL. Da się? Da się!

Jednym z możliwych podejść do synchronizacji danych między dwiema dużymi tabelami na SQL Serverze jest używanie funkcji haszującej.

W praktyce wygląda to tak: Czytaj dalej Pchełki SQL: Szanse kolizji

Pchełki SQL: między językami

Od tyłu też można, tylko bez palindromów. Po angielsku i po polsku.

Dziś Pchełka dość krótka, za to całkiem interesująca, ponieważ podczas jej pisania poznałem nową konstrukcję języka SQL (a konkretnie jego microsoftowej odmiany czyli TSQL).

W ramach zabaw z nową wersją SQL Servera zaciągnąłem sobie do bazy słownik polski oraz angielski.

Ograniczyłem się do słów o długości nieprzekraczającej 15 znaków – tyle bowiem ma w każdą stronę plansza do Literaków. Czytaj dalej Pchełki SQL: między językami

Pchełki SQL: Próba konwersji

Wpis głównie dla bazyli, o przydatnej funkcji TRY_CONVERT().

Patrzymy na okno i wiemy od razu, że to jest okno, prawda? Patrzymy na głowę, nieważne czyją – i od razu wiemy, że to jest głowa. Patrzymy na wieszak i prawie na pewno nie pomylimy go z glebogryzarką. Potrafimy kategoryzować w zasadzie odruchowo i bez większych oporów.

Komputery, może poza naiwnymi namiastkami sztucznej inteligencji, które co i rusz ktoś gdzieś próbuje promować, tak nie mają. Im trzeba powiedzieć konkretnie: to jest liczba siedem. A to jest tekst „siedem”. I tak dalej. Czytaj dalej Pchełki SQL: Próba konwersji

Pchełki SQL: kompresja, DotNet i triggery

O kompresji dużych danych na SQL Server 2012.

Dziś pchełka nieco bardziej zaawansowana niż zwykle, za to dość przydatna.

Jak powszechnie wiadomo[citation needed], dane komputerowe można kompresować. Robi się to z rozmaitych przyczyn, z których główna to – uwaga, niespodzianka – próba zaoszczędzenia miejsca, które owe dane zajmują. Czytaj dalej Pchełki SQL: kompresja, DotNet i triggery

Pchełki SQL: wiele kolumn i operator IN

O deduplikacji stałych w zapytaniach SQL.

Dziś króciutka pchełka, która narodziła mi się całkiem niechcący.

Tym razem zamiast wstępów od razu lecimy z gęstym. Czytelnik zorientowany sobie poradzi, a Czytelnik niezorientowany prawdopodobnie zamknął artykuł już po przeczytaniu tytułu 😉 Czytaj dalej Pchełki SQL: wiele kolumn i operator IN

Tabele temporalne

Już w latach 90 zeszłego stulecia firma Postgres próbowała zrealizować ideę tabel temporalnych, jednak ze względu na bardzo wysokie koszty składowania ogromnych ilości danych pomysł zarzucono.

W roku 2013 tabele temporalne trafiły do kolejnej wersji specyfikacji języka SQL.

Od niedawna wszyscy więksi dostawcy baz danych przejęli się tematem i zaczęli implementować tę opcję w swoich produktach. Jak na razie udało się to kilku firmom: Oracle, Postgres, Teradata, IBM DB2, Microsoft, Cockroach DB oraz MarkLogic (ten ostatni nie jest bazą stricte SQL-ową, ale mimo wszystko zaimplementowali „temporalność” w swoim produkcie). Czytaj dalej Tabele temporalne

Pchełki SQL: małe – duże

Praca programisty jest – przynajmniej w teorii – fajna, prosta i przyjemna. Dostajemy projekt, dostajemy dokumentację, z której jednoznacznie wynika co mamy na wejściu i co chcemy dostać na wyjściu, siadamy, piszemy kod, testujemy kod, prosimy kilku użytkowników, żeby przetestowali wyniki i jak wszyscy są zadowoleni, wrzucamy kod do ogólnego użytku, wystawiamy fakturę i voila, gotowe.

A zaraz potem przybiega pierdzący tęczą jednorożec w towarzystwie reniferów, Świętego Mikołaja i uczciwego polityka… Czytaj dalej Pchełki SQL: małe – duże