I_R_W09_M17 Modyfikowanie zawartości i struktury bazy danych w języku SQL, etap I
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.
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ć, kto i kiedy 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.
Zastosujesz instrukcję SQL do zmieniania danych.
Wykorzystasz podzapytania w klauzulach warunkowych.
Użyjesz instrukcji SQL do usuwania danych z bazy.