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:

  1. Dowolnemu pracownikowi zmień nazwisko. Podejrzyj zmianę
  2. Podnieś wszystkim pracownikom działu o id 4 pensję o 10 tys. Wyświetl zmianę.
  3. 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:

  1. Usuń pracowników, których pensja nie jest znana
  2. Znajdź pracownika, który nie posiada managera. Usuń go z tabeli.
  3. 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.