Zadanie 70: Funkcje Arytmetyczne i Matematyczne

MySQL
Priorytet: Normalny Szkic

Zadanie 70: Funkcje Arytmetyczne i Matematyczne w MySQL

Wstęp

MySQL oferuje bogaty zestaw operatorów i funkcji matematycznych, które pozwalają na wykonywanie obliczeń bezpośrednio w zapytaniach SQL. Jest to bardzo przydatne do generowania raportów, wyliczania cen, czy analizy danych liczbowych.

Podstawowe Operatory

  • + (Dodawanie)
  • - (Odejmowanie)
  • * (Mnożenie)
  • / (Dzielenie)
  • % lub MOD (Reszta z dzielenia - Modulo)

Przydatne Funkcje

  • ROUND(liczba, miejsca_po_przecinku) - Zaokrąglanie
  • CEIL(liczba) - Zaokrąglanie w górę (sufit)
  • FLOOR(liczba) - Zaokrąglanie w dół (podłoga)
  • ABS(liczba) - Wartość bezwzględna
  • POW(liczba, potęga) - Potęgowanie
  • SQRT(liczba) - Pierwiastek kwadratowy

Część 1: Przygotowanie Bazy (DDL + DML)

Utwórz bazę Sklep i tabelę Produkty.

CREATE DATABASE Sklep;
USE Sklep;

CREATE TABLE Produkty (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nazwa VARCHAR(100),
    cena_netto DECIMAL(10, 2), -- Cena bez podatku
    stawka_vat DECIMAL(4, 2),  -- np. 0.23 dla 23%
    ilosc_magazyn INT,
    waga_kg DECIMAL(6, 3)
);

-- Wstawianie danych przykładowych
INSERT INTO Produkty (nazwa, cena_netto, stawka_vat, ilosc_magazyn, waga_kg) VALUES 
('Laptop Gamingowy', 4500.00, 0.23, 10, 2.500),
('Myszka Bezprzewodowa', 49.99, 0.23, 150, 0.120),
('Klawiatura Mechaniczna', 250.50, 0.23, 45, 0.950),
('Dysk SSD 1TB', 399.00, 0.23, 30, 0.050),
('Monitor 27"', 1200.00, 0.23, 15, 5.200),
('Oprogramowanie Edukacyjne', 99.00, 0.08, 100, 0.000), -- VAT 8%
('Usługa Instalacji', 150.00, 0.23, 999, 0.000); 

Część 2: Przykłady

Przykład A: Obliczanie Ceny Brutto

Cena brutto to cena netto + (cena netto * VAT). Możemy to uprościć do: cena_netto * (1 + stawka_vat).

SELECT nazwa, cena_netto, 
       cena_netto * (1 + stawka_vat) AS cena_brutto 
FROM Produkty;

Przykład B: Zaokrąglanie Wyników

Często wyniki obliczeń mają zbyt wiele miejsc po przecinku. Użyjmy ROUND.

SELECT nazwa, 
       ROUND(cena_netto * (1 + stawka_vat), 2) AS cena_brutto_ladna 
FROM Produkty;

Przykład C: Modulo (Parzystość ID)

Sprawdźmy, które produkty mają parzyste ID.

SELECT * FROM Produkty WHERE id % 2 = 0;

Część 3: Zadania do wykonania

Wykonaj poniższe zapytania SELECT.

  1. Cena Brutto: Wyświetl nazwę produktu oraz obliczoną cenę brutto (nazwij kolumnę Brutto).
  2. Wartość Magazynu: Oblicz całkowitą wartość netto towaru w magazynie dla każdego produktu (cena netto * ilość). Nazwij kolumnę WartoscNetto.
  3. Promocja -20%: Oblicz cenę netto po obniżce o 20% dla wszystkich produktów.
  4. Ciężar Całkowity: Oblicz, ile ważą wszystkie sztuki danego produktu w magazynie (waga * ilość).
  5. Dziwne Ceny (CEIL): Sklep postanowił zaokrąglać ceny netto W GÓRĘ do pełnych złotówek. Wyświetl nazwę i nową cenę używając CEIL.
  6. Dziwne Ceny (FLOOR): A teraz w dół do pełnych złotówek używając FLOOR.
  7. Pierwiastek z Ceny: Z czystej ciekawości matematycznej, wyświetl pierwiastek kwadratowy z ceny netto każdego produktu (SQRT).
  8. Potęgowanie: Wyświetl cenę netto podniesioną do kwadratu (POW).
  9. Co 3 produkt: Wybierz produkty, których id jest podzielne przez 3 (użyj modulo %).
  10. Prognoza Zysku: Załóżmy, że marża sklepu to 15% ceny netto. Oblicz przewidywany zysk ze sprzedaży WSZYSTKICH sztuk danego produktu, zaokrąglając wynik do 2 miejsc po przecinku.

Commit

git add .
git commit -m "MySQL Zadanie 70: Funkcje Arytmetyczne"