PHP + MySQL Komendy SQL do pracy z danymi Damian Urbańczyk
Jan 19, 2016
PHP + MySQL Komendy SQL do pracy
z danymi
Damian Urbańczyk
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 tabeliAby 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 rekordAby 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 warunkamiMoż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ę!