0Pricing
SQL Academy · Lekcja

Przydatne funkcje matematyczne

ABS, MOD, POWER i inne

Przydatne funkcje matematyczne to bezpłatna lekcja SQL Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SQL Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SQL Academy zawiera 4 lekcji w sumie.

Dlaczego funkcje matematyczne są ważne

SQL służy nie tylko do przechowywania i pobierania tekstu — jest również potężnym narzędziem do obliczeń liczbowych. Wbudowane funkcje matematyczne pozwalają obliczać wartości bezwzględne, reszty, potęgi i wiele więcej, bez opuszczania zapytania.

W tej lekcji poznasz najbardziej przydatne funkcje liczbowe w SQL: ABS, MOD, POWER, SQRT, ROUND, CEIL, FLOOR i SIGN.

ABS — wartość bezwzględna

ABS(n) zwraca wartość bezwzględną (nieujemną) liczby. Liczby ujemne stają się dodatnie, a liczby dodatnie i zero pozostają bez zmian.

Jest to przydatne, gdy liczy się odległość od zera, a nie kierunek — na przykład przy obliczaniu, jak bardzo temperatura odbiega od wartości docelowej, niezależnie od tego, czy znajduje się powyżej, czy poniżej tej wartości.

SELECT ABS(-42),  -- 42
       ABS(15),   -- 15
       ABS(0);    -- 0

ABS w rzeczywistym zapytaniu

Wyobraźmy sobie tabelę transactions, w której wypłaty są przechowywane jako wartości ujemne. Można użyć ABS, aby wyświetlić każdą kwotę jako liczbę dodatnią, niezależnie od jej kierunku.

CREATE TABLE transactions (
  id     INTEGER,
  amount NUMERIC
);

INSERT INTO transactions VALUES (1, 200.00), (2, -50.00), (3, -120.00), (4, 80.00);

SELECT id,
       amount,
       ABS(amount) AS absolute_amount
FROM   transactions;

MOD — reszta z dzielenia

MOD(dividend, divisor) zwraca resztę z dzielenia pierwszej liczby przez drugą. Jest odpowiednikiem operatora % używanego w wielu językach programowania.

Klasycznym zastosowaniem jest sprawdzanie, czy liczba jest parzysta, czy nieparzysta: jeśli MOD(n, 2) = 0, liczba jest parzysta, w przeciwnym razie jest nieparzysta.

SELECT MOD(10, 3),  -- 1  (10 = 3*3 + 1)
       MOD(15, 5),  -- 0  (15 = 5*3 + 0)
       MOD(7,  2);  -- 1  (odd number)

MOD w rzeczywistym zapytaniu

Można użyć MOD wewnątrz klauzuli WHERE, aby filtrować wiersze. W tym przykładzie wybierane są tylko zamówienia, których id jest parzyste.

CREATE TABLE orders (
  id    INTEGER,
  total NUMERIC
);

INSERT INTO orders VALUES (1, 99.99), (2, 45.00), (3, 130.50), (4, 22.00), (5, 75.00), (6, 60.00);

SELECT id, total
FROM   orders
WHERE  MOD(id, 2) = 0;

POWER — potęgowanie

POWER(base, exponent) podnosi liczbę do podanej potęgi. POWER(2, 10) daje 1024, a POWER(9, 0.5) daje 3 (pierwiastek kwadratowy z 9).

Funkcja ta jest przydatna przy obliczeniach odsetek składanych, wzorach na pola powierzchni oraz wszędzie tam, gdzie występuje wzrost wykładniczy.

SELECT POWER(2, 10),   -- 1024
       POWER(3, 3),    -- 27
       POWER(9, 0.5);  -- 3 (square root)

SQRT — pierwiastek kwadratowy

SQRT(n) to wygodny skrót zapisu POWER(n, 0.5). Zwraca pierwiastek kwadratowy z liczby nieujemnej.

Na przykład, jeśli przechowywane jest pole kwadratowej działki, długość jej boku można obliczyć za pomocą SQRT(area).

SELECT SQRT(25),   -- 5
       SQRT(2),    -- 1.4142...
       SQRT(100);  -- 10

ROUND — zaokrąglanie do N miejsc dziesiętnych

ROUND(n, d) zaokrągla n do d miejsc dziesiętnych. Jeśli pominie się d (lub przekaże 0), wynikiem jest liczba całkowita. Ujemne wartości d zaokrąglają w lewo od przecinka dziesiętnego.

SELECT ROUND(3.14159, 2),  -- 3.14
       ROUND(2.555, 2),    -- 2.56
       ROUND(1234.5, -2),  -- 1200
       ROUND(9.9);         -- 10

CEIL i FLOOR — zawsze zaokrąglaj w górę lub w dół

CEIL(n) (zapisywane również jako CEILING) zawsze zaokrągla w górę do najbliższej liczby całkowitej, natomiast FLOOR(n) zawsze zaokrągla w dół.

Użyj CEIL, gdy potrzebna jest minimalna liczba czegoś (np. stron potrzebnych do wydrukowania wierszy), a FLOOR, gdy potrzebna jest największa liczba całkowita, która nie przekracza danej wartości (np. liczba pełnych tygodni, które upłynęły).

SELECT CEIL(4.1),   -- 5
       CEIL(-4.1),  -- -4
       FLOOR(4.9),  -- 4
       FLOOR(-4.9); -- -5

SIGN — jaki jest znak liczby?

SIGN(n) zwraca 1, jeśli liczba jest dodatnia, -1, jeśli jest ujemna, oraz 0, jeśli wynosi zero. Jest to szybki sposób klasyfikowania wartości liczbowych bez pisania wyrażenia CASE.

SELECT SIGN(42),   -- 1
       SIGN(-7),   -- -1
       SIGN(0);    -- 0

Łączenie funkcji matematycznych

Funkcje matematyczne można swobodnie łączyć w jednym wyrażeniu. Poniższy przykład oblicza miesięczną ratę prostego kredytu, używając razem funkcji ROUND i POWER, pokazując, jak funkcje te uzupełniają się w rzeczywistej logice biznesowej.

-- Monthly payment formula: P * r / (1 - (1+r)^-n)
-- P=10000, annual rate 6% (r=0.005/month), n=24 months
SELECT ROUND(
  10000.0 * 0.005 / (1 - POWER(1 + 0.005, -24)),
  2
) AS monthly_payment;

Szybki test

Sprawdź swoją wiedzę na temat funkcji matematycznych SQL.

Podsumowanie lekcji

Świetna praca! Oto podsumowanie funkcji matematycznych SQL poznanych w tej lekcji:

  • ABS(n) — wartość bezwzględna (usuwa znak)
  • MOD(a, b) — reszta z dzielenia a przez b
  • POWER(base, exp) — podnosi liczbę do potęgi
  • SQRT(n) — pierwiastek kwadratowy
  • ROUND(n, d) — zaokrągla do d miejsc dziesiętnych
  • CEIL(n) — zawsze zaokrągla w górę do następnej liczby całkowitej
  • FLOOR(n) — zawsze zaokrągla w dół do poprzedniej liczby całkowitej
  • SIGN(n) — zwraca 1, -1 lub 0 w zależności od znaku liczby

Funkcje te działają we wszystkich głównych bazach danych SQL i można je zagnieżdżać lub łączyć, aby bezpośrednio w zapytaniach obsługiwać złożoną logikę liczbową.

Często zadawane pytania

Czy lekcja „Przydatne funkcje matematyczne” jest bezpłatna?

Tak — pełny tekst „Przydatne funkcje matematyczne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SQL Academy, przejdź na CoddyKit PRO. Kurs SQL Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Przydatne funkcje matematyczne”?

ABS, MOD, POWER i inne Ćwiczysz SQL Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć SQL Academy?

Nie wymagamy żadnego doświadczenia. SQL Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Przydatne funkcje matematyczne”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji SQL Academy?

Tak. Każda lekcja SQL Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Działania arytmetyczne i operatory
  2. Zaokrąglanie i obcinanie
  3. Dzielenie całkowite a dziesiętne
  4. Przydatne funkcje matematyczne
← Powrót do SQL Academy