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); -- 0ABS 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); -- 10ROUND — 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); -- 10CEIL 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); -- -5SIGN — 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
- Działania arytmetyczne i operatory
- Zaokrąglanie i obcinanie
- Dzielenie całkowite a dziesiętne
- Przydatne funkcje matematyczne