6. Dodawanie i usuwanie rekordów ✒️ - ritaly/wprowadzenie-do-sql GitHub Wiki
Dodawanie nowych rekordów do tabeli 👶
Dodawanie danych do tabeli odbywa się poleceniem INSERT
Składnia:
INSERT INTO nazwa_tabeli
(pole_1, pole_2, pole_3, ...)
VALUES
(wartosc_1, wartosc_2, wartosc_3, ...);
Nowego pracownika stworzymy, więc w następujący sposób
INSERT INTO employee (employee_id, first_name, last_name, salary, department_id, manager_id, hire_date) VALUES (201, 'Rita', 'Lyczywek', 91000, 5, 175, TO_DATE('01-OCT-2020','DD-MON-YYYY'));
i od razu mogę wyświetlić czy mój rekord powstał np. na podstawie unikalnego imienia:
SELECT * FROM employee WHERE first_name = 'Rita';
💡 Uwaga: używamy osobno dołączonego Schema SQL tworzącego tabelę, więc aby wyświetlić, że rekord prawidłowo został wstawiony uruchamiamy oba polecenia razem:
INSERT INTO employee
(employee_id, first_name, last_name, salary, department_id, manager_id, hire_date)
VALUES
(201, 'Rita', 'Lyczywek', 91000, 5, 175, TO_DATE('01-OCT-2020','DD-MON-YYYY'));
SELECT * FROM employee WHERE first_name = 'Rita';
Aktualizowanie danych 🍩
Często zdarza się, że musimy zmienić dane w bazie. SQL pozwala zaktualizować wiersze za pomocą instrukcji UPDATE
.
UPDATE tabela
SET nowe_wartosci
WHERE warunek
Nie musimy aktualizować wszystkich pól na raz. Przykładowo w bazie filmów chcielibyśmy zmienić nazwę rodzaju filmu np.
UPDATE films SET kind = 'Scary' WHERE kind = 'Horror';
Mogę zmienić własne nazwisko:
UPDATE employee
SET last_name = 'Smith'
WHERE employee_id = 201
Zadania:
- Dowolnemu pracownikowi zmień nazwisko. Podejrzyj zmianę
- Podnieś wszystkim pracownikom działu o id
4
pensję o 10 tys. Wyświetl zmianę. - Podnieś pensję pracownikom, których manager ma id większe niż 190 i których pensja była niższa niż 70 tys. Wynik przed i po wyświetl.
Usuwanie danych 🗑️
Usuwanie danych z tabeli, konkretnych wierszy odbywa się za pomocą komendy DELETE
DELETE FROM nazwa_tabeli
WHERE warunek
Mogę usunąć teraz rekord, który dodałam za pomocą polecenia INSERT
(rekord "Rita"), wybierając odpowiednią osobę z tabeli pracowników na podstawie unikalnego id pracownika.
DELETE FROM employee
where employee_id = 201;
Przed i po operacji mogę wyświetlic, czy faktycznie pracownik został usunięty.
⚠️ Ponieważ korzystamy z Schema SQL, która się odnawia przy każdorazowym uruchomieniu "Run" nie stracimy danych początkowych na stałę! Przy operacji na bazie, wszelkie dane zostałyby usunięte trwale.
Zadania:
- Usuń pracowników, których pensja nie jest znana
- Znajdź pracownika, który nie posiada managera. Usuń go z tabeli.
- Znajdź pracowników działu 5 i usuń wszystkich ❌
Przed i po każdej operacji wyświetl w wygodny sobie sposób dane z tabeli.