Komendy SQL do pracy z danymi Damian Urbańczyk PHP + MySQL Komendy SQL do pracy z danymi
SQL DML Do pracy z danymi, gromadzonymi w tabelach bazy danych, służy język SQL DML, czyli Data Manipulation Language. W ramach DMLa korzystamy z 4 komend: INSERT – dodawanie danych, SELECT – wybieranie danych, UPDATE – aktualizacja/zmiana danych, DELETE – usuwanie danych.
Przygotowanie tabeli Aby móc korzystać z języka DML, należy najpierw przygotować odpowiednie tabele. Dla potrzeb ćwiczeń stwórzmy tabelę uczniowie, która będzie się składać z 4 pól: identyfikator, imię, nazwisko, wiek. Aby utworzyć taką tabelę, skorzystamy z polecenia DDL: CREATE TABLE `uczniowie` ( `id` INT NOT NULL AUTO_INCREMENT , `imie` VARCHAR( 55 ) NOT NULL , `nazwisko` VARCHAR( 55 ) NOT NULL , `wiek` INT NOT NULL , PRIMARY KEY ( `id` ));
Dodajemy nowy rekord Aby dodać nowy rekord, zwany również wpisem, używamy polecenia INSERT: INSERT INTO uczniowie VALUES('', 'Jan', 'Kowalski', '18'); Po komendzie INSERT INTO definiujemy tabelę, do której ma trafić nowy rekord. Słowo VALUES (wartości) oznacza, że zaraz po nim zdefiniujemy nowe wartości, które mają się znaleźć w dodawanym rekordzie. W powyższym przykładzie nie wpisano nic do pierwszego pola, gdyż w naszej tabeli (uczniowie) pole to jest typem autonumerowanym, a więc automatycznie jest zwiększane o 1 przy każdym nowym rekordzie i nie wymaga ręcznego wprowadzania wartości, a nawet nie powinno być zmieniane.
Pobieramy dane z tabeli Aby pobrać dane z tabeli, należy użyć polecenia SELECT: SELECT * FROM uczniowie WHERE id='1'; Efektem powyższego zapytania będzie pobranie z bazy danych i wyświetlenie w wynikach wszystkich elementów, w których pole id jest równe 1 (id='1'). Należy pamiętać, aby zawsze określić, z której tabeli mają być pobierane dane. Jeśli korzystamy z warunków (WHERE…), aby nazwy pół użytych w zapytaniu były identyczne z tymi, które tworzą tabelę.
Pobieranie z warunkami Możemy pobierać dane, tworząc warunki… SELECT * FROM uczniowie WHERE imie='Jan' AND nazwisko='Kowalski'; Powyższe zapytanie wybierze z tabeli uczniowie wszystkie rekordy, które spełniają dwa warunki – w polu imie znajduje się wpis Jan, a w polu nazwisko Kowalski. Wyświetlone zostaną tylko te wpisy, gdzie oba warunki są spełnione – tak działa warunek AND. Inna sytuacja występuje w przypadku użycia operatora OR, który pozwala na wybranie tych rekordów, które spełniają jeden z podanych warunków, np.: SELECT * FROM uczniowie WHERE imie='Jan' OR nazwisko='Kowalski'; Powyższe zapytanie wybierze te rekordy, w których pole imię jest równe Jan lub nazwisko jest równe Kowalski.
Zmiana danych Jeśli chcemy zmienić dane w tabeli, korzystamy z polecenia UPDATE: UPDATE uczniowie SET nazwisko='Nowak' WHERE nazwisko='Kowalski‘; Powyższe zapytanie zmieni we wskazanej tabeli wszystkie dotychczasowe nazwiska Kowalski na Nowak. Po słowie SET wpisujemy, co ma zostać zmienione. Po słowie WHERE wpisujemy, gdzie ma zostać zmienione, a więc jest to warunek – zmień tam, gdzie…
Usuwanie danych Aby usunąć rekord/wpis z tabeli, używamy polecenia DELETE: DELETE FROM uczniowie WHERE nazwisko='Kowalski'; Efektem wysłania takiego polecenia do bazy danych będzie usunięcie z tabeli uczniowie wszystkich rekordów, w których pole nazwisko jest równe Kowalski. Usuniemy z tabeli wszystkich Kowalskich.
Zaawansowane opcje Przedstawione w niniejszej prezentacji opcje SQL DML to podstawa. Zainteresowanym polecam dobrze przygotowane internetowe poradniki dla webmasterów, z których dowiedzą się więcej na temat manipulacji danymi w tabeli.
Dziękuję za uwagę!