Działania arytmetyczne i operatory
Dodawaj, odejmuj, mnóż i dziel w SQL
Działania arytmetyczne i operatory to bezpłatna lekcja SQL Academy na CoddyKit. To lekcja 1 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.
Obliczenia w SELECT
SQL służy nie tylko do pobierania wierszy. Wartości można obliczać bezpośrednio w zapytaniu za pomocą operatorów arytmetycznych.
W tej lekcji nauczą się Państwo dodawać, odejmować, mnożyć i dzielić, korzystając z kolumn oraz literałów, nadawać wynikom nazwy i rozumieć, jak PostgreSQL ustala typ każdego wyniku.
Wyobraźmy sobie tabelę order_items zawierającą kolumny quantity i unit_price. Możemy obliczyć sumę pozycji bez ingerowania w kod aplikacji.
SELECT quantity, unit_price, quantity * unit_price AS line_total
FROM order_items;Pięć operatorów arytmetycznych
PostgreSQL obsługuje standardowe operatory:
+dodawanie-odejmowanie*mnożenie/dzielenie%modulo (reszta z dzielenia)
Działają one na kolumnach liczbowych i literałach tak samo jak w każdym języku programowania. Poniższe zapytanie pokazuje działanie każdego z nich.
SELECT
10 + 3 AS sum,
10 - 3 AS difference,
10 * 3 AS product,
10 / 3 AS quotient,
10 % 3 AS remainder;Priorytet operatorów
SQL stosuje standardowy priorytet działań matematycznych: *, / i % mają wyższy priorytet niż + i -.
Nawiasy pozwalają jednoznacznie określić zamierzone działanie i zmienić domyślną kolejność. Dwa poniższe wyrażenia dają zupełnie różne wyniki.
SELECT
2 + 3 * 4 AS without_parens, -- 14
(2 + 3) * 4 AS with_parens; -- 20Obliczanie ceny po rabacie
Częste zadanie w praktyce: zastosowanie rabatu procentowego. Należy pomnożyć cenę przez (1 - discount_rate).
W tym przypadku discount_rate jest przechowywany jako ułamek (0.15 = 15%). Nawiasy gwarantują, że odejmowanie zostanie wykonane przed mnożeniem.
SELECT
product_id,
price,
discount_rate,
price * (1 - discount_rate) AS final_price
FROM products;Obliczenia na wielu kolumnach
Operandy nie muszą być literałami. W jednym wyrażeniu można łączyć wiele kolumn.
Poniżej obliczamy zysk netto ze sprzedaży: przychód pomniejszony o koszt, pomnożony przez liczbę sprzedanych sztuk.
SELECT
sale_id,
(sale_price - cost) * quantity AS profit
FROM sales;Nadawanie wynikom nazw za pomocą AS
Obliczane kolumny otrzymują automatycznie nazwy, takie jak ?column?, chyba że nadadzą im Państwo alias. Zawsze warto używać AS, aby nadawać im czytelne nazwy.
Alias pozwala również wyraźniej odwoływać się do kolumny w używanych narzędziach i raportach.
SELECT
base_salary,
base_salary * 0.10 AS bonus,
base_salary + base_salary * 0.10 AS total_pay
FROM employees;Obliczenia w WHERE
Obliczeń arytmetycznych można używać również w klauzuli WHERE, a nie tylko w SELECT.
To zapytanie filtruje zamówienia, dla których obliczona suma przekracza 100. Uwaga: wykonywanie obliczeń na kolumnie może uniemożliwić użycie indeksu, dlatego gdy wydajność ma znaczenie, warto preferować filtrowanie po samych kolumnach.
SELECT order_id, quantity, unit_price
FROM order_items
WHERE quantity * unit_price > 100;Typ wyniku wynika z operandów
PostgreSQL wywnioskuje typ wyniku na podstawie operandów. Dodanie liczby całkowitej do liczby całkowitej daje liczbę całkowitą; jeśli jedna ze stron ma typ numeric lub float, wynik również będzie miał taki typ.
Ma to największe znaczenie przy dzieleniu, któremu przyjrzymy się później. Na razie warto zauważyć, jak mieszanie typów powoduje promocję typu wyniku.
SELECT
pg_typeof(4 + 2) AS int_type, -- integer
pg_typeof(4 + 2.0) AS numeric_type, -- numeric
pg_typeof(4 * 1.5); -- numericOperator modulo
% zwraca resztę z dzielenia całkowitego. Jest przydatny w logice cyklicznej, na przykład do wybierania „co N-tego wiersza” lub sprawdzania, czy wartości są parzyste albo nieparzyste.
Poniżej wyszukujemy identyfikatory parzystych produktów za pomocą % 2 = 0.
SELECT product_id, name
FROM products
WHERE product_id % 2 = 0;Aktualizowanie wartości za pomocą obliczeń
Obliczenia arytmetyczne nie ograniczają się do SELECT. Można ich używać również w UPDATE do modyfikowania przechowywanych wartości.
To zapytanie podnosi cenę każdego produktu w danej kategorii o 5%. Wyrażenie po prawej stronie jest obliczane dla każdego wiersza.
UPDATE products
SET price = price * 1.05
WHERE category = 'electronics';Uwaga na NULL
Każde działanie arytmetyczne z udziałem NULL daje wynik NULL, ponieważ wynik jest nieznany.
Jeśli kolumna może nie zawierać wartości, należy użyć COALESCE, aby przed wykonaniem obliczeń podstawić wartość domyślną.
SELECT
base + NULL AS is_null, -- NULL
base + COALESCE(bonus, 0) AS safe_total
FROM payroll;Szybkie sprawdzenie
Jaki wynik w PostgreSQL daje wyrażenie 2 + 6 / 2?
Podsumowanie
Wartości można obliczać bezpośrednio w SQL:
+ - * / %to podstawowe operatory*,/i%mają wyższy priorytet niż+i-; aby jednoznacznie określić kolejność, należy używać nawiasów- Obliczanym kolumnom należy nadawać aliasy za pomocą
AS - Obliczenia działają w
SELECT,WHEREiUPDATE - Typ wyniku wynika z operandów, a dowolny operand
NULLsprawia, że wynik również ma wartośćNULL
W następnej części zajmiemy się zaokrąglaniem i obcinaniem tych wyników liczbowych.
Często zadawane pytania
Czy lekcja „Działania arytmetyczne i operatory” jest bezpłatna?
Tak — pełny tekst „Działania arytmetyczne i operatory” 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 „Działania arytmetyczne i operatory”?
Dodawaj, odejmuj, mnóż i dziel w SQL Ć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 1 z 4.
Ile czasu zajmuje lekcja „Działania arytmetyczne i operatory”?
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