Funkcje wbudowane w MySQL

W tym odcinku poznasz funkcje, które pojawiają się bezpośrednio w zadaniach egzaminacyjnych: agregujące, zaokrąglające, tekstowe i datowe. Każda ma swój charakterystyczny wzorzec.


Zadanie 1: Funkcje agregujące – COUNT, AVG, SUM, MIN, MAX

  • Cel: Wykonywanie obliczeń statystycznych na zbiorach danych za pomocą funkcji agregujących.
  • Logika: Funkcje te ignorują wartości NULL (z wyjątkiem COUNT(*)) i przetwarzają pionowo całe kolumny, aby zwrócić pojedynczą wartość podsumowującą (skalarną) dla zdefiniowanego zbioru rekordów.

Zadanie 2: ROUND() – zaokrąglanie

  • Cel: Kontrola precyzji wyświetlanych danych liczbowych za pomocą funkcji ROUND.
  • Logika: Funkcja przyjmuje dwa argumenty: pierwszy to liczba (lub działanie), a drugi to liczba miejsc po przecinku. Jeśli drugi argument zostanie pominięty lub wyniesie 0, wynik zostanie zaokrąglony do najbliższej liczby całkowitej zgodnie z zasadami matematycznymi.

Wskazówka: ROUND(AVG(kolumna), 2)AVG jest wewnątrz ROUND. Kolejność: najpierw oblicz AVG, potem zaokrąglij.


Zadanie 3: LOWER() i UPPER() – zmiana wielkości liter

  • Cel: Transformacja wielkości liter w tekście.
  • Wzorzec: Słowa kluczowe w poleceniu: „dużymi literami” → UPPER(), „małymi literami” → LOWER(). Pamiętaj, aby funkcją "opakować" nazwę kolumny w SELECT.

Zadanie 4: Funkcje daty – YEAR(), MONTH(), DATEDIFF(), NOW()

  • Cel: Ekstrakcja składowych daty oraz obliczanie interwałów czasowych.
  • Logika: Używaj YEAR() i MONTH() do izolowania konkretnych jednostek czasu z pełnej daty (np. 2024-05-12). Funkcja DATEDIFF(data1, data2) oblicza różnicę dni, odejmując drugą datę od pierwszej.
Funkcja Co robi
NOW() Aktualna data i godzina
CURDATE() Aktualna data (bez godziny)
YEAR(data) Wyciąga rok z daty
MONTH(data) Wyciąga miesiąc (1–12)
DAY(data) Wyciąga dzień miesiąca
DATEDIFF(d1, d2) Liczba dni między datami (d1 − d2)

Wskazówka: DATEDIFF(NOW(), data_rejestracji) – pierwszy argument to data nowsza, drugi – starsza. Wynik jest dodatni gdy NOW() > data_rejestracji.


Zadanie 5: CONCAT() – łączenie tekstów

  • Cel: Łączenie danych z kilku kolumn lub dodawanie własnych znaków (np. spacji, tekstu) w jeden ciąg znaków.
  • Logika: Funkcja CONCAT() przyjmuje dowolną liczbę argumentów oddzielonych przecinkami i łączy je w kolejności występowania. Jeśli jakakolwiek wartość wewnątrz CONCAT to NULL, cała funkcja zwróci NULL (dlatego warto dbać o kompletność danych).

Wskazówka: Pamiętaj o spacji ' ' jako osobnym argumencie wewnątrz funkcji, np. CONCAT(imie, ' ', nazwisko). Bez tego napisy zostaną sklejone (np. "JanKowalski").

materiały: link