SELECT, INSERT, DELETE, UPDATE
Skoro mamy już stworzoną tabelę to czas na dodanie pierwszych rekordów – nie przedłużajmy do dzieła!
SELECT
Nasza tabela składa się z rekordów i bez problemu możemy je wszystkie wyświetlić przy użyciu komendy Select.
Przed wykonaniem komendy zobacz czy używasz bazy danych people!
select * from employees;
Jak widać metoda select wybiera nam wszystkie – ponieważ używamy gwiazdki * – z tabeli o nazwie employess.
Empty set (0.00 sec)
Niestety nasza tabela póki co jest pusta, więc najpierw dodajmy coś do niej.
INSERT
Komenda Insert służy do dodawania nowych rekordów do konkretnej tabeli – jej konstrukcja wygląda tak:
insert into nazwa-tabeli(kolumna1, kolumna2, kolumna3, ...) values(wartosc1, wartosc2, wartosc3, ...);
Na podstawie tego schematu stwórzmy sobie komendę do dodanie rekordu o wartościach: Jan Kowalski 21.
insert into employees(name, lastname, age) values('Jan', 'Kowalski', 22);
Pamiętaj o odpowiedniej kolejności wartości względem kolumn!
Dodajmy sobie jeszcze kilka rekordów, aby było ciekawiej! 😉
insert into employees(name, lastname, age) values('John', 'Rambo', 45); insert into employees(name, lastname, age) values('Johny', 'Bravo', 53); insert into employees(name, lastname, age) values('Pablo', 'Escabo', 33);
I teraz możemy w końcu użyć z efektem komendy select..
select * from employees;
I powinniśmy otrzymać taki rezultat:
+----+-------+----------+-----+ | ID | name | lastname | age | +----+-------+----------+-----+ | 1 | Jan | Kowalski | 22 | | 2 | John | Rambo | 45 | | 3 | Johny | Bravo | 53 | | 4 | Pablo | Escabo | 33 | +----+-------+----------+-----+
Jak widać dane się zgadzają – zostały poprawnie zapisane do tabeli. 😉
WHERE
Bardzo ważną częścią zapytania jest klauzula where, która ograniczna nasz zbiór na podstawie podanego warunku logicznego – już tłumaczę.
Przypuśćmy, że chcemy wyciągnać tylko osoby, które mają więcej niż 40 lat. Zrobimy to tak:
select * from employees where age > 40;
I wtedy otrzymamy już tylko:
+----+-------+----------+-----+ | ID | name | lastname | age | +----+-------+----------+-----+ | 2 | John | Rambo | 45 | | 3 | Johny | Bravo | 53 | +----+-------+----------+-----+
Podobnych funkcji i klauzul jest sporo w SQL – na początek wystarczy, że będziesz znał where – będzie on wykorzystywany również przy zapytania UPDATE oraz DELETE.
DELETE
Możemy również usuwać rekordy z tabeli – albo wszystkie, albo tylko wybrane dzięki klauzuli where.
Jeśli chcemy usunąć rekord o id 1 to zapytanie będzie wyglądało tak:
delete from employees where id = 1;
I jak tym razem wywołamy komendę:
select * from employees;
To otrzymamy już tylko 3 rekordy:
+----+-------+----------+-----+ | ID | name | lastname | age | +----+-------+----------+-----+ | 2 | John | Rambo | 45 | | 3 | Johny | Bravo | 53 | | 4 | Pablo | Escabo | 33 | +----+-------+----------+-----+
Można również usunąć wiele rekordów naraz np. usuńmy osoby, które mają ponad 40 lat.
delete from employees where age > 40;
No i już został nam tylko jeden rekord
+----+-------+----------+-----+ | ID | name | lastname | age | +----+-------+----------+-----+ | 4 | Pablo | Escabo | 33 | +----+-------+----------+-----+
Oszczędźmy go jeszcze do następnej metody. 😉
UPDATE
Na naszych tabelach możemy również wykonywać update – czyli edytować wiersze, masowo lub pojedyńczo. Zależy od takie jaki warunek where ustawimy. My zrobimy to tylko na jeden rekord – tylko jeden nam został 😉 – zmienimy wiek naszemu Pablo.
Konstrukcja update wygląda tak:
update nazwa-tabeli set nazwa-kolumny=wartosc1, nazwa-kolumny2 = wartosc2 where = jakiś warunek;
Na tej podstawie zmieńmy wiek rekordu, który ma nazwę name = Pablo.
update employees set age = 60 where name = "Pablo";
I jak widać to się powiodło:
+----+-------+----------+-----+ | ID | name | lastname | age | +----+-------+----------+-----+ | 4 | Pablo | Escabo | 60 | +----+-------+----------+-----+
Podczas update oraz delete uważaj! Warunek where może zmienić/usunąć Ci wiele rekordów na raz – jeśli chcesz zmienić jeden rekord to używaj do tego ID.
Podsumowanie
I to na tyle podstawowych komend potrzebnych do operacji na tabeli, dowiesz się o innych w trakcie rozrastania się projektu – póki co wystarczy Ci tyle, aby przechowywać podstawowe informację. 😉
Aby utrwalić swoją wiedzę wykonaj poniższe zadania:
- Dodaj do tabeli rekordy:
- Jan Kowalski 45
- Johny Rambo 34
- Anna Kowalska 19
- Josh Qwert 53
- Johny Bravo 33
- Team Red 12
- Wszystkim osobom, których wiek jest mniejszy niż 34 zmień imię na: “young”
- Usuń z tabeli osoby będące po 50stce.
Przykładowy rezultat zadania: (ID mogą się różnić):
+----+-------+----------+-----+ | ID | name | lastname | age | +----+-------+----------+-----+ | 5 | Johny | Rambo | 34 | | 6 | Jan | Kowalski | 45 | | 7 | young | Kowalska | 19 | | 9 | young | Bravo | 33 | | 10 | young | Red | 12 | +----+-------+----------+-----+
UWAGA PRZYKŁADOWE ROZWIĄZANIE PONIŻEJ!
insert into employees(name, lastname, age) values('Johny', 'Rambo', 34); insert into employees(name, lastname, age) values('Jan', 'Kowalski', 45); insert into employees(name, lastname, age) values('Anna', 'Kowalska', 19); insert into employees(name, lastname, age) values('Josh', 'Qwert', 53); insert into employees(name, lastname, age) values('Johny', 'Bravo', 33); insert into employees(name, lastname, age) values('Team', 'Red', 12); update employees set name = "young" where age < 34; delete from employees where age > 50;
I to na tyle, w następnym tygodniu spotkamy się z SQL już bezpośrednio w Javie podłączać bazę danych do projektu. 😉