jednak to jeswt notatka na grzzymale
Data utworzenia: 31-10-2024 13:07:05
### Notatka o usuwaniu danych w MySQL: DELETE, TRUNCATE, DROP MySQL oferuje różne sposoby na usuwanie danych z tabel w bazie danych. Każde z poniższych poleceń działa inaczej, a ich użycie zależy od tego, jaki efekt chcemy osiągnąć. --- #### 1. **DELETE** Polecenie `DELETE` pozwala usunąć określone wiersze z tabeli. Używa się go, gdy chcemy usunąć dane spełniające konkretne warunki, ale bez usuwania struktury tabeli. ##### **Składnia:** ```sql DELETE FROM nazwa_tabeli WHERE warunek; ``` ##### **Przykład:** ```sql DELETE FROM pracownicy WHERE stanowisko = 'Junior'; ``` - **Opis:** Powyższe zapytanie usunie wszystkie rekordy z tabeli `pracownicy`, gdzie wartość kolumny `stanowisko` to "Junior". - Jeśli nie określimy klauzuli `WHERE`, MySQL usunie wszystkie wiersze, ale struktura tabeli pozostanie nienaruszona. ##### **Charakterystyka DELETE:** - Można stosować warunek `WHERE`, co pozwala na selektywne usuwanie wierszy. - Usunięte rekordy mogą być przywrócone, jeśli transakcje są aktywne i zostanie wykonane `ROLLBACK`. - Wpływa na integralność bazy danych, ale nie usuwa struktury tabeli. --- #### 2. **TRUNCATE** Polecenie `TRUNCATE` usuwa wszystkie dane z tabeli, ale zachowuje jej strukturę. Jest szybsze niż `DELETE` bez `WHERE`, ponieważ nie zapisuje każdej operacji w logach transakcyjnych. ##### **Składnia:** ```sql TRUNCATE TABLE nazwa_tabeli; ``` ##### **Przykład:** ```sql TRUNCATE TABLE produkty; ``` - **Opis:** To polecenie usuwa wszystkie rekordy z tabeli `produkty`, pozostawiając jednak tabelę pustą i gotową do nowych danych. - Nie można cofnąć tej operacji przez `ROLLBACK` (w większości systemów baz danych), co czyni ją trwałą i szybką. ##### **Charakterystyka TRUNCATE:** - Bardzo szybkie usuwanie wszystkich wierszy. - Nie jest możliwe użycie `WHERE`, ponieważ `TRUNCATE` działa na całej tabeli. - Nie zapisuje operacji dla każdego rekordu, co sprawia, że jest wydajniejsze niż `DELETE`. --- #### 3. **DROP** Polecenie `DROP` usuwa całą tabelę wraz z jej strukturą. Używane jest, gdy chcemy trwale usunąć tabelę z bazy danych. ##### **Składnia:** ```sql DROP TABLE nazwa_tabeli; ``` ##### **Przykład:** ```sql DROP TABLE archiwum; ``` - **Opis:** Powyższe zapytanie usuwa tabelę `archiwum` z bazy danych. Wszystkie dane i struktura tabeli zostają usunięte. - Po wykonaniu `DROP`, tabela nie istnieje i nie można jej przywrócić bez ponownego utworzenia. ##### **Charakterystyka DROP:** - Trwale usuwa tabelę oraz wszystkie jej dane i indeksy. - Nie można tego cofnąć bez odtworzenia tabeli. - Oszczędza miejsce w bazie danych. --- ### Podsumowanie | Polecenie | Zakres działania | Możliwość cofnięcia | Szybkość | Zachowanie struktury | |-----------|-----------------------------------|----------------------|----------|-----------------------| | DELETE | Usuwa wybrane rekordy | Tak (w transakcjach)| Wolniejsze| Tak | | TRUNCATE | Usuwa wszystkie rekordy | Nie | Szybsze | Tak | | DROP | Usuwa całą tabelę | Nie | Bardzo szybkie | Nie | Każde z tych poleceń powinno być używane zgodnie z zamierzeniami i potrzebami, aby zapewnić optymalną i bezpieczną manipulację danymi w MySQL.