Lekcja 2: Podstawowe typy danych

Preview Mode

You're viewing this material in preview mode. Sign up to track your progress and access all features.

Lekcja 2: Podstawowe typy danych
Required In Progress

Dlaczego typy danych są ważne?

Typ danych to "kontrakt" lub zestaw reguł nałożony na kolumnę, który precyzyjnie określa, jaki rodzaj danych (np. liczba całkowita, tekst, data) może być w niej legalnie przechowywany. Jest to absolutna podstawa projektowania baz danych, kluczowa z trzech powodów:

Źródło: Lekcja 2 – Podstawowe typy danych

Kluczowe powody

  1. Integralność i walidacja danych:

    Typy danych to pierwsza linia obrony przed "śmieciowymi" danymi. Baza danych fizycznie odrzuci próbę wstawienia tekstu 'Jan' do kolumny zdefiniowanej jako INT. Podobnie typ DATE odrzuci niepoprawną datę, np. 2023-02-30.

  2. Wydajność i optymalizacja:

    Przechowywanie danych we właściwym formacie oszczędza miejsce i przyspiesza przetwarzanie. Liczba 100 zapisana jako INT zajmuje mniej miejsca i jest szybsza w obliczeniach niż zapisana jako tekst '100'.

  3. Poprawność obliczeń:

    Typ danych determinuje, jakie operacje można wykonać. Można obliczyć średnią z kolumny liczbowej, ale nie z tekstowej.

Główne kategorie

  • Tekst (np. VARCHAR, CHAR)
  • Liczby (np. INT, DECIMAL/NUMERIC)
  • Daty (np. DATE, TIMESTAMP)

Typy tekstowe (ciągi znaków)

  • VARCHAR(n) — Variable-Length Character

    Przechowuje tekst o zmiennej długości, maksymalnie do n znaków. Przykład: słowo 'Jan' w kolumnie VARCHAR(100) zajmie tylko 3 znaki na dysku (plus niewielki narzut).

  • CHAR(n) — Fixed-Length Character

    Przechowuje tekst o stałej długości n znaków. Wstawienie 'Jan' do CHAR(10) spowoduje dopełnienie do 10 znaków (np. spacjami).

Typy liczbowe

  • INT (INTEGER)

    Służy do przechowywania liczb całkowitych (bez części ułamkowej). Idealny dla identyfikatorów (ID), liczników, wieku.

  • DECIMAL(p, s) / NUMERIC

    Przechowuje liczby o stałej precyzji — kluczowe dla wartości finansowych. p (precision) to łączna liczba cyfr, s (scale) to liczba cyfr po przecinku.

    Przykład: DECIMAL(10, 2)  -- przechowa kwoty do 99,999,999.99

    Do przechowywania pieniędzy powinno się używać DECIMAL/NUMERIC, ponieważ typy zmiennoprzecinkowe (FLOAT, REAL) są nieprecyzyjne i podatne na błędy zaokrągleń.

Typy daty i czasu

  • DATE

    Przechowuje tylko datę (rok, miesiąc, dzień), np. 2024-10-25. Idealny dla daty urodzenia, daty zatrudnienia.

  • TIMESTAMP / DATETIME

    Przechowuje datę oraz czas (często z precyzją do milisekund), np. 2024-10-25 14:30:15.123. Idealny do logowania zdarzeń (data utworzenia rekordu, data zakupu).

Pojęcie wartości NULL (brak wartości)

NULL to specjalny znacznik oznaczający „brak wartości”, „wartość nieznaną” lub „wartość niedotyczącą”. NULL nie jest wartością samą w sobie.

  • NULL ≠ 0 — zero to konkretna, znana liczba.
  • NULL ≠ '' — pusty ciąg to konkretny tekst o długości 0.
  • Przykład praktyczny: jeśli uczeń nie przystąpił jeszcze do egzaminu, wynik w kolumnie WynikEgzaminu powinien być NULL, a nie 0 (0 oznaczałoby, że uzyskał 0 punktów).

Zrozumienie NULL jest kluczowe dla poprawnego filtrowania, agregacji i łączenia tabel.