If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Korzystanie z SQL do aktualizacji w bazie danych

Jak już wspominaliśmy wiele razy w tym kursie, często będziesz korzystał z języka SQL lub języka opartego o SQL w bazach danych. Możemy rozróżnić operacje "odczytu" i operacje "odczytu/zapisu"
Przykładem operacji "odczytu" jest analiza danych otrzymanych od aplikacji lub dane o pewnym badaniu. Na przykład, jeśli byłbym naukowcem piszącym dziennik mógłbym sprawdzić jaki procent ludzi je lody w tym samym dniu, w którym uprawiali jogging, aby zrozumieć czy ćwiczenia sprawiają, że ludzie chcą się nagradzać:
SELECT * FROM diary_logs WHERE
       food LIKE "%ice cream%" AND activity LIKE "%running%";
Jeśli analizuję dane w taki sposób, to potrzebuję jedynie SELECT - tylko do odczytu. Nie tworzymy nowych danych, pytamy o istniejące dane. Musimy bardzo dobrze znać zapytanie SELECT, ponieważ nie znamy żadnego innego polecenia, nie wiemy jak tworzyć tabele, zmieniać dane w rzędach itd.
Przykładowe wykorzystanie operacji "odczyt/zapis" znajdziemy w kodzie twórcy oprogramowania tworzącym zaplecze aplikacji internetowej. Na przykład, gdybym był twórcą oprogramowania monitorującego zdrowie mógłbym napisać kod, który wie jak dodać nowy wpis do bazy danych za każdym razem, gdy użytkownik wyśle formularz:
INSERT INTO diary_logs (id, food, activity)
            VALUES (123, "ice cream", "running");
Prawdopodobnie wywoływałbym to polecenie SQL za pomocą innego języka po stronie serwera, prawdopodobnie używając biblioteki, aby łatwiej było tworzyć polecenia. Tak wyglądało by polecenie jeśli używałbym Pythona i biblioteki SQLAlchemy:
diary_logs.insert().values(id=123, food="ice cream", activity='running')
Musiałbym również napisać kod modyfikujący bazę danych, jeśli użytkownik chciałby edytować swój dziennik, usunąć go lub nawet usunąć swoje konto. Jeśli zespół postanowiłby dodać więcej funkcji do dziennika użytkownika, na przykład kolumnę emotion wskazującą jak szczęśliwi byli użytkownicy jedzący lody i biegający (moja hipoteza: bardzo szczęśliwi), musiałbym napisać kod SQL do modyfikacji struktury tabeli.
To wszystko to operacje "zapisu" i są one bardzo potrzebne jeśli zamierzamy korzystać z bazy danych do przechowywania i zmieniania danych aplikacji. Polecenie INSERT jest stosunkowo bezpieczne, ponieważ jedyne co może zrobić to dodać dane, ale operacje takie jak UPDATE, DELETE,DROP czy ALTER mogą być dużo bardziej niebezpieczne, ponieważ zmieniają istniejące dane. Dlatego bardzo ważne jest pełne zrozumienie tych poleceń i używanie ich z rozwagą. Przejdź dalej, aby nauczyć się jak z nich korzystać!

Chcesz dołączyć do dyskusji?

Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.