[MySQL][PHP] Jak zakładać i kasować tabele w bazie danych?
Chcesz dowiedzieć się, jak zakładać i kasować proste tabele przechowujące informacje w bazach danych.
Jedna baza danych może składać się z wielu różnych tabel, w których przechowywane są informacje (rekordy). Stwórzymy prostą tabelę, w której będzie można przechowywać dane o książkach.
Niech tabela składa się z czterech pól - identyfikatora książki, tytułu, autora i ceny. Zobacz jak utworzyć i skasować tabelę lub tylko jej zawartość...
Tworzenie tabeli
<?
$baza = mysql_connect("localhost", "user", "password");
if ($baza) {
$wynik = mysql_select_db("baza1",$baza);
if ($wynik) {
$wynik = mysql_query("CREATE TABLE ksiazki (
id INT NOT NULL PRIMARY KEY,
tytul CHAR(100) NOT NULL,
autor CHAR(100) NOT NULL,
cena INT NOT NULL DEFAULT '0'
)", $baza);
if ($wynik) echo "Tabela została utworzona";
}
mysql_close($baza);
}
?>
Za pomocą funkcji mysql_connect() łączymy się z MySQL i następnie funkcją mysql_select_db() wybieramy bazę danych, w której będziemy zakładać tabelę. U nas jest to baza danych o nazwie baza1. Jeżeli obie operacje się powiodą można już zakładać tabelę wysyłając odpowiednio skonstruowane polecenie SQL.
Aby utworzyć tabelę trzeba użyć polecenia
CREATE TABLE nazwaTabeli (nazwaPola typPola, nazwaPola typPola, ...)
W naszym wypadku polami są id, tytul, autor i cena.
Pole id to identyfikator książki. Jest ono typu INT, czyli może zawierać liczby całkowite. Nie może być polem pustym, dlatego ma dodatkowy atrybut NOT NULL. Kolejny atrybut PRIMARY KEY określa, że kolumna id jest niepowtarzalnym kluczem podstawowym tabeli. Nie może więc wystąpić dwa razy ten sam numer id książki. Rekord z takim samym numerem id nie zostanie dodany do tabeli.
Pola tytul i autor są typu tekstowego i składają się z maksymalnie 100 znaków co określa CHAR(100). Też nie mogą być puste.
Pole cena również zawiera liczby całkowite, nie może być puste, a jeżeli jego wartość nie zostanie określona, przyjmie wartość 0 - załóżmy, że takie książki będą bezpłatne.
Jeżeli powiodło się założenie tabeli z podanymi polami, pojawi się komunikat, że "Tabela została utworzona". Można już z niej korzystać i dokonywać na niej różnych operacji, np. zapisywać rekordy, uaktualniać je lub kasować.
Nasza tabela może więc po wypełnieniu przykładowymi rekordami przyjmować np. taką postać:
id tytul autor cena
----------------------------------------------------------
08 Dziady Adam Mickiewicz 27
10 Alien Alan Dean Foster 45
itd...
Struktura tabel przypomina nieco znany Ci z pewnością arkusz kalkulacyjny.
Kasowanie tabeli i danych z tabeli
<?
$baza = mysql_connect("localhost", "user", "password");
if ($baza) {
$wynik = mysql_select_db("baza1",$baza);
if ($wynik) {
$wynik = mysql_query("DROP TABLE ksiazki", $baza);
if ($wynik) echo "Tabela została usunięta";
}
mysql_close($baza);
}
?>
Kasowanie tabeli razem z danymi jest znacznie łatwiejsze - wystarczy posłużyć się jednym poleceniem "DROP TABLE nazwaTabeli". Po takiej operacji tabela ksiazki przestanie istnieć, dlatego zachowaj szczególną ostrożność przy wykonywaniu tego polecenia i sprawdź dwa razy czy kasujesz tą tabelę, której faktycznie chcesz się pozbyć.
Jeżeli chcesz skasować wszystkie dane, ale nie chcesz kasować struktury tabeli (definicji pól), możesz zastosować polecenie "TRUNCATE TABLE nazwaTabeli":
<?
$baza = mysql_connect("localhost", "user", "password");
if ($baza) {
$wynik = mysql_select_db("baza1",$baza);
if ($wynik) {
$wynik = mysql_query("TRUNCATE TABLE ksiazki", $baza);
if ($wynik) echo "Tabela została, dane są usunięte";
}
mysql_close($baza);
}
?>
Jeżeli tabela zawierała jakieś rekordy, teraz jej zawartość jest pusta. Skasowane zostały tylko dane, a struktura tabeli pozostała nietknięta. Czasem wystarczy wykasować tylko dane, aby nie tworzyć tabeli od nowa, jeżeli ma ona zawierać identyczne kolumny.