CodeGym /Kursy /SQL SELF /Formatowanie danych

Formatowanie danych

SQL SELF
Poziom 5 , Lekcja 0
Dostępny

Zacznijmy od banału, ale mega ważnego: dane same w sobie są często "surowe". Nierozkminiony strumień cyfr, dat czy stringów jest ciężki do ogarnięcia. Wyobraź sobie raport, gdzie daty są w różnych formatach: coś jest zapisane jako 01/02/2023, a coś jako 2023-02-01. Nawet najbardziej ogarnięty analityk może się w tym pogubić. I tu właśnie wchodzi magia formatowania danych.

Formatowanie danych pozwala na:

  • Przerabianie danych na czytelny format, co mega ułatwia pracę z nimi.
  • Bycie lifehackerem w analizie danych, szybkie wyciąganie tego, co trzeba.
  • Przygotowanie danych do eksportu albo integracji z innymi systemami.
  • Robienie raportów i wizualizacji czytelnymi i dokładnymi.

Wyobraź sobie, że pracujesz na uniwerku i musisz zrobić raport, żeby wypisać wszystkich studentów z ich pełnym imieniem, datą urodzenia i wydziałem. Zamiast ręcznie sklejać dane, używasz zapytania z formatowaniem, które łączy imię i nazwisko w jednej kolumnie, a datę urodzenia pokazuje w ogarniętym formacie, np. 12 marca 2001.

Podstawowe zadania formatowania danych

Formatowanie to trochę jak krojenie sałatki owocowej. Nie chodzi tylko o wrzucenie owoców do miski, ale o to, żeby je ładnie pokroić i ułożyć na talerzu. W SQL ta robota dzieli się na kilka typów zadań:

Formatowanie stringów

To może być łączenie stringów, zmiana wielkości liter (wszystko na wielkie albo małe), dodawanie albo usuwanie spacji i znaków.

Formatowanie liczb

Czasem warto zamienić liczby na stringi albo zaokrąglić je do konkretnej liczby miejsc po przecinku.

Praca z datami i czasem

Tu można zautomatyzować rzeczy typu pobranie aktualnej daty, formatowanie danych czasowych albo wyciąganie konkretnych części daty (np. tylko rok albo tylko miesiąc).

Wyciąganie unikalnych wartości

Jeśli w raporcie mają być tylko unikalne rekordy (np. unikalne miasta albo wydziały), to też podpada pod formatowanie danych.

Narzędzia do formatowania w PostgreSQL

Do pracy z danymi PostgreSQL daje spory zestaw wbudowanych funkcji. Oto krótka lista tego, o czym pogadamy szerzej na kolejnych wykładach:

Formatowanie stringów

  • CONCAT(): łączenie stringów.
  • UPPER(), LOWER(): zmiana wielkości liter w tekście.

Formatowanie dat i czasu

  • NOW(): aktualna data i czas.
  • CURRENT_DATE: aktualna data (bez czasu).
  • DATE_PART(): wyciąganie części daty, np. roku albo miesiąca.

Konwersja typów

  • CAST(): zmiana typu danych.
  • Składnia: <wartość>::<typ>.

Sortowanie danych

  • ORDER BY: sortowanie danych po jednej albo kilku kolumnach.
  • DISTINCT: wyciąganie unikalnych wartości.

Przykład formatowania danych: jak to wygląda w praktyce?

Żeby cię zaciekawić, rozkminimy kilka przykładów. Zaczniemy od prostego.

Przykład 1: Formatowanie stringa

SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM students;

To zapytanie łączy first_name i last_name w jedną kolumnę full_name. Na przykład, jeśli student ma na imię "Otto", a nazwisko "Art", wynik będzie: "Otto Art".

Przykład 2: Formatowanie daty

SELECT DATE_PART('year', date_of_birth) AS birth_year
FROM students;

Tu wyciągamy tylko rok urodzenia z kolumny date_of_birth. Jeśli data urodzenia w bazie to 2001-03-15, wynik będzie 2001.

Przykład 3: Konwersja typów

SELECT birth_year::text || ' rok' AS formatted_year
FROM (
  SELECT DATE_PART('year', date_of_birth) AS birth_year
  FROM students
) subquery;

W tym zapytaniu najpierw wyciągamy rok urodzenia, a potem zamieniamy go na stringa, dodając tekst " rok". Na przykład wynik będzie: 2001 rok.

Gdzie to się przydaje?

Raporty dla menedżerów

Nie każdy chce widzieć "surowe" dane. Na przykład w raporcie o obrotach firmy lepiej podawać kwoty z podziałem na tysiące (1,000,000 zamiast 1000000), a daty — w formacie 21 FEB 2025.

Raporty dla klientów

Na przykład mail do klienta z tekstem: "Szanowny [Imię Nazwisko], twoje zamówienie N123 zostało pomyślnie dostarczone 12 października 2023 roku".

Integracja z innymi systemami

Niektóre formularze wymagają konkretnego formatu danych: daty mogą być w formacie ISO, stringi — z odpowiednią wielkością liter, liczby — zaokrąglone.

Analiza i wizualizacja

Wyobraź sobie, że robisz wykresy albo diagramy. Bez formatowania mogą wyglądać totalnie nieczytelnie.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION