R12n3kYJkq4qh
Fotografia przedstawiająca wnętrze piętrowej biblioteki.

I_R_W09_M17 Modyfikowanie zawartości i struktury bazy danych w języku SQL, etap I

Źródło: Tobias Fischer, domena publiczna.

Praca z relacyjną bazą danych nie ogranicza się do odczytywania informacji. Równie istotne jest umiejętne modyfikowanie jej zawartości, tak aby dane pozostawały aktualne, spójne i zgodne z potrzebami użytkowników. W tym rozdziale poznasz podstawowe mechanizmy zmieniania rekordów w języku SQL, w tym aktualizowanie wybranych pól, usuwanie danych oraz formułowanie warunków z wykorzystaniem podzapytań. Opanowanie tych zagadnień pozwoli ci świadomie zarządzać bazą danych i rozumieć konsekwencje każdej wprowadzanej zmiany - zarówno na poziomie pojedynczych rekordów, jak i całej struktury informacji.

Ciekawostka

W wielu profesjonalnych systemach bazodanowych instrukcja DELETEnie usuwa danych „na zawsze”. Rekordy często trafiają najpierw do tzw. kosza logicznego - pola oznaczającego, że wpis jest nieaktywny. Dzięki temu można je później odzyskać lub prześledzić historię zmian. Dopiero specjalne procesy administracyjne usuwają je fizycznie z bazy.

Co ciekawe, w niektórych systemach takie „usunięte” rekordy nadal zajmują miejsce w pamięci i mogą być widoczne dla administratorów w specjalnych widokach systemowych. Oznacza to, że baza danych pamięta więcej, niż użytkownik widzi na pierwszy rzut oka. To rozwiązanie chroni przed przypadkowymi błędami, ale też pozwala analizować, ktokiedy zmodyfikował dane - coś w rodzaju czarnej skrzynki dla baz danych.

SQLite, którego używasz w tym rozdziale, działa inaczej: DELETE usuwa rekord natychmiast i bezpowrotnie. Nie ma kosza, historii zmian ani cofania operacji. To sprawia, że praca z SQLite jest świetnym treningiem precyzji - każde polecenie modyfikujące dane powinno być przemyślane i poprzedzone sprawdzeniem, czy warunek w klauzuli WHERE na pewno wskazuje właściwe rekordy.

Twoje cele
  • Zastosujesz instrukcję SQL do zmieniania danych.

  • Wykorzystasz podzapytania w klauzulach warunkowych.

  • Użyjesz instrukcji SQL do usuwania danych z bazy.