CRUD

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest CRUD?

CRUD to akronim od Create, Read, Update, Delete — czyli czterech podstawowych operacji wykonywanych na danych w systemach informatycznych i bazach danych:

  • Create – tworzenie, czyli dodawanie nowych rekordów,
  • Read – odczyt, czyli przeglądanie lub wyszukiwanie danych,
  • Update – aktualizacja, czyli edytowanie istniejących rekordów,
  • Delete – usuwanie danych.

CRUD opisuje typowy zestaw funkcji aplikacji, która współpracuje z bazą danych. Klasycznym przykładem jest panel administracyjny sklepu internetowego, w którym administrator dodaje produkty (Create), przegląda listę zamówień (Read), zmienia ceny (Update) i usuwa nieaktualne pozycje (Delete).

Infografika wyjaśniająca CRUD jako cztery podstawowe operacje na danych: Create, Read, Update i Delete, z przykładami formularzy, instrukcji SQL oraz panelu administracyjnego aplikacji.

CRUD a formularze w aplikacjach

Formularze w aplikacjach bazodanowych niemal zawsze realizują jedną z operacji CRUD. Najczęstsze powiązania:

  • formularz rejestracjiCreate (zapisuje nowego użytkownika w bazie),
  • widok profilu / lista produktówRead (pobiera i wyświetla dane),
  • formularz edycji profiluUpdate (modyfikuje istniejący rekord),
  • przycisk „Usuń konto”Delete (kasuje rekord z bazy).

Stąd ważne pytanie egzaminacyjne: formularze do obsługi baz danych tworzy się w celu wprowadzania, modyfikowania, przeglądania i usuwania danych — czyli realizacji operacji CRUD.


Odpowiedniki CRUD w języku SQL

Każda z czterech operacji CRUD ma swój odpowiednik w postaci instrukcji SQL należącej do podzbioru DML (Data Manipulation Language — język manipulacji danymi).

Create → INSERT INTO

INSERT INTO Pracownicy (imie, nazwisko, stanowisko)
VALUES ('Anna', 'Nowak', 'Kasjer');

Aby dodać nowy rekord do tabeli, używamy polecenia INSERT INTO wraz z klauzulą VALUES.

Read → SELECT

SELECT * FROM Pracownicy;
SELECT imie, nazwisko FROM Pracownicy WHERE stanowisko = 'Kasjer';

SELECT to najczęściej używane polecenie SQL — służy do odczytu danych z jednej lub wielu tabel.

Update → UPDATE ... SET ... WHERE

UPDATE podzespoly
SET URL = 'toshiba.pl'
WHERE producent = 'TOSHIBA';

Powyższy zapis to klasyczne pytanie egzaminacyjne: zaktualizuj wartość pola URL na 'toshiba.pl' dla wszystkich rekordów, w których pole producent jest równe TOSHIBA.

Inny przykład — zmiana wartości w kolumnie:

UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania';

Uwaga na brak WHERE! Polecenie UPDATE tab SET kol = 'Zosia'; — bez warunku — zmieni wartość we wszystkich wierszach tabeli. Pominięcie WHERE to jeden z najczęstszych haczyków egzaminacyjnych.

Delete → DELETE FROM ... WHERE

DELETE FROM produkty WHERE stan = 0;

Podobnie jak przy UPDATE, pominięcie klauzuli WHERE w DELETE spowoduje usunięcie wszystkich rekordów z tabeli.


DML kontra DDL — częsty haczyk

To ważne rozróżnienie, bo CKE lubi je sprawdzać.

Podzbiór SQLCzego dotyczyPolecenia
DML (Data Manipulation Language)dane w tabelach (operacje CRUD)INSERT, SELECT, UPDATE, DELETE
DDL (Data Definition Language)struktura bazy (tabele, kolumny)CREATE, ALTER, DROP, TRUNCATE

DROP TABLE pracownicy; — to nie jest operacja CRUD. Polecenie DROP w języku SQL służy do usuwania całej tabeli (wraz z jej strukturą i danymi), a nie pojedynczych rekordów. Jest to operacja DDL.

Różnica praktyczna:

  • DELETE FROM pracownicy; — usuwa wszystkie wiersze, ale tabela istnieje dalej (pusta),
  • DROP TABLE pracownicy; — usuwa całą tabelę wraz ze strukturą.

CRUD a frameworki aplikacji

Większość nowoczesnych aplikacji webowych korzysta z frameworków (Laravel, Symfony, Django, Spring), które automatyzują operacje CRUD. W skład typowego frameworka wchodzą m.in.:

  • biblioteki gotowych funkcji — w tym do obsługi bazy (ORM),
  • szablony stron i komponenty interfejsu,
  • mechanizmy routingu — przypisanie adresów URL do funkcji,
  • narzędzia walidacji danych z formularzy,
  • system uwierzytelniania użytkowników.

Dzięki temu programista zamiast pisać surowe zapytania INSERT, SELECT, UPDATE, DELETE może korzystać z gotowych metod modelu (np. User::create(), User::find(), $user->save(), $user->delete()), które realizują te same operacje CRUD pod spodem.


CRUD a raporty w bazach danych

W systemach zarządzania relacyjnymi bazami danych (SZRBD) na podstawie operacji Read generuje się raporty — zestawienia danych w czytelnej formie. Raport to wynik zapytania SELECT (często z grupowaniem, sortowaniem i filtrowaniem), przygotowany do prezentacji lub wydruku.

SELECT producent, COUNT(*) AS liczba_produktow, AVG(cena) AS srednia_cena
FROM produkty
GROUP BY producent
ORDER BY liczba_produktow DESC;

W raporcie można uzyskać m.in. podsumowania, liczniki rekordów, wartości średnie, grupowania według wybranych kolumn — wszystko to są operacje typu Read.


Co warto zapamiętać na egzamin INF.03

  1. CRUD = Create, Read, Update, Delete — cztery podstawowe operacje na danych.
  2. Formularze w aplikacjach bazodanowych służą do realizacji operacji CRUD: wprowadzania, modyfikowania, przeglądania i usuwania danych.
  3. Odpowiedniki w SQL: INSERT (Create), SELECT (Read), UPDATE (Read/Update), DELETE (Delete).
  4. Aby dodać nowy rekord do tabeli — używamy INSERT INTO ... VALUES (...).
  5. UPDATE tabela SET kolumna = wartość WHERE warunek — to składnia aktualizacji rekordu.
  6. Bez WHERE polecenia UPDATE i DELETE modyfikują/usuwają wszystkie wiersze tabeli.
  7. DROP to NIE CRUD — to operacja DDL usuwająca całą tabelę (strukturę + dane).
  8. DML (INSERT, SELECT, UPDATE, DELETE) operuje na danych; DDL (CREATE, ALTER, DROP) na strukturze bazy.
  9. Raporty w SZRBD bazują na operacji Read — wyniki zapytań SELECT z grupowaniem i sortowaniem.
  10. Framework zawiera m.in. biblioteki, szablony, routing i mechanizmy ułatwiające implementację CRUD.