KategorieBazy danych

[MySQL] Co oznaczają liczby przy typach liczbowych INT(11) ?

Większość z nas używa programów do zarządzania bazami danych, w przypadku bazy MySQL najpopularniejszym jest PHPMyAdmin. Przedstawiony klient bazodanowy podobnie jak inne generują za nas zapytania tworzenia tabel w których widzimy zapisy INT(11) przy polach typu INT (ewentualnie zapis INT(10)). Część początkujących programistów uważa że zapis ten jest odpowiedzialny za ograniczenie ilości cyfr np. zapis INT(5) pozwoli na wpisanie cyfry 77777 zaś cyfra 77777777777 zostanie ucięta.
Czytaj dalej

KategorieBazy danych

[MySQL] W jaki sposób dodać kolumnę z numeracją kolejnych rekordów ?

Przy wyświetlaniu listy rekordów czy to na stronie internetowej czy w aplikacji desktopowej z reguły mam numerację rekordów co często ułatwia życie. Jestem za tym, aby tego typu numeracje robić po stronie widoku nie zaś zaprzęgać do tego bazę danych, lecz ile razy przeglądamy bazę danych w konsoli czy kliencie bazodanowym, a numeracja by się przydała ?
Czytaj dalej

KategorieBazy danych

[MySQL] Jak zadać pytanie o wszystkie wpisy między godziną 8 a 9 nie zależnie od daty ?

W zależności od sposobu przechowywania daty i czasu rozwiązanie tego problemu może być różne. Na potrzeby tego przykładu założymy że mamy jedną kolumnę typu datetime. Jest to dość często spotykane rozwiązanie w projektowanych bazach.

Typ kolumny mówi nam że będziemy mieli datę i czas zapisane razem np. “2013-11-05 12:00:00” co zmusza nas do wyizolowania tylko czasu bez daty. Do tego celu posłużymy się funkcją TIME do której przekazujemy nazwę naszej kolumny np. “data_utworzenia”.

SELECT TIME(data_utworzenia) FROM nazwa_tabeli

Powyższe zapytanie pozwoli zobrazować jaki efekt otrzymamy wykorzystując funkcji TIME, dla naszego przypadku będzie to “12:00:00”.

Teraz napisanie zapytania wybierającego tylko rekordy z określonego przedziału czasu wydaje się trywialne 😉

SELECT 
    * 
FROM 
    nazwa_tabeli 
WHERE 
    (TIME(data_utworzenia) > '8:00:00') AND 
    (TIME(data_utworzenia) < '9:00:00')
KategorieBazy danych

[MySQL] Jak dodać zera wiodące do wartości w określonej kolumnie?

Dodawanie zer wiodących jest dość popularne w przypadku wszelkich dokumentów z numeracją np. faktury, korekty. Jakiś czas temu pisałem w artykule jak wykonać tę operację w PHP, jednak podobnie jak wiele innych operacji możemy wykonać i tę bezpośrednio z poziomu bazy danych, a posłuży nam do tego funkcja wbudowana LPAD.
Czytaj dalej

KategorieBazy danych

[MySQL] W jaki sposób połączyć kilka kolumn w jedną ?

Łączenie kolumn po stronie bazy danych wydaje się mało zasadne, gdyż równie dobrze tę operację możemy wykonać po stronie widoku danej aplikacji, jednak zdarzają się przypadki w których takie połączenia są pożądane. Takim przypadkiem może być chęć stworzenia widoku w którym będzie od razu wypisane imię i nazwisko klienta bez niepotrzebnego rozbicia. Oczywiście baza umożliwia nam taką operację dzięki funkcji wbudowanej CONCAT.
Czytaj dalej

KategorieBazy danych

[MySQL] Jak posortować rekordy według dnia tygodnia ?

Bazy danych dają nam duże możliwości w zakresie ich przeszukiwania i przeglądania zgromadzonych w nich danych. Tak więc powinniśmy opanować podstawowe funkcje jakie nam oferują, taką właśnie funkcją jest funkcja DATE_FORMAT, która tak samo jak funkcja date w PHP pozwala na dowolne sformatowanie daty. To właśnie nią się posłużymy do przesortowania rekordów po dniu tygodnia.
Czytaj dalej

KategorieBazy danych

[MySQL] Jak policzyć ile produktów należy do danej kategorii ?

Agregacja danych jest niezbędnym elementem w większości projektów z jakimi można się spotkać, czy jest to sklep internetowy pokazujący liczbę produktów w kategoriach czy zwykła lista rekordów pokazująca ich łączną liczbę. W każdym przypadku mamy do czynienia z agregacją danych, która może zostać wykorzystana do różnych celów czy to wyznaczenie maksimum, minimum, średniej czy zwykłego zliczenia rekordów.
Czytaj dalej