PHP tworzy bazę danych MySQL

Baza danych zawiera jedną lub kilka tabel.

Tworzenie bazy danych

Zapytanie CREATE DATABASE służy do tworzenia bazy danych w MySQL.

Gramatyka

CREATE DATABASE database_name

Aby PHP mógł wykonać powyższe polecenie, musimy użyć funkcji mysql_query(). Funkcja ta służy do wysyłania zapytań lub poleceń do połączenia z MySQL.

Przykład

W poniższym przykładzie utworzyliśmy bazę danych o nazwie "my_db":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Nie można połączyć: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Baza danych utworzona";
  }
else
  {
  echo "Błąd tworzenia bazy danych: " . mysql_error();
  }
mysql_close($con);
?>

Tworzenie tabeli

CREATE TABLE służy do tworzenia tabel bazy danych w MySQL.

Gramatyka

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)

Aby wykonać to polecenie, muszę dodać do funkcji mysql_query() zapytanie CREATE TABLE.

Przykład

Poniższy przykład pokazuje, jak utworzyć tabelę o nazwie "Persons", która ma trzy kolumny. Nazwy kolumn to "FirstName", "LastName" oraz "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Nie można połączyć: ' . mysql_error());
  }
// Utwórz bazę danych
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Baza danych utworzona";
  }
else
  {
  echo "Błąd tworzenia bazy danych: " . mysql_error();
  }
// Utwórz tabelę w bazie danych my_db
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons 
(
Imię varchar(15),
Nazwisko varchar(15),
Wiek int
);
mysql_query($sql,$con);
mysql_close($con);
?>

Ważne:Przed utworzeniem tabeli musi być najpierw wybrana baza danych. Wybór bazy danych odbywa się za pomocą funkcji mysql_select_db().

Uwaga:Gdy tworzy się pole varchar w bazie danych, musi być określona maksymalna długość pola, np.: varchar(15).

Typy danych MySQL

poniżej wymienione typy danych MySQL, które można używać:

typy danych liczbowych Opis
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
obsługuje wyłącznie liczby całkowite. W parametrze size określa maksymalną wartość liczby.
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

obsługuje liczby z ułamkami.

w parametrze size określa maksymalną wartość liczby. W parametrze d określa maksymalną liczbę cyfr po przecinku.

typ danych tekstowych Opis
char(size)

obsługuje stałą długości stringi. (Może zawierać litery, cyfry oraz znaki specjalne).

w parametrze size określa stałą długość.

varchar(size)

obsługuje zmienne długości stringów. (Może zawierać litery, cyfry oraz znaki specjalne).

w parametrze size określa maksymalną długość.

tinytext obsługuje zmienne długości stringów, maksymalna długość to 255 znaków.
  • text
  • blob
obsługuje zmienne długości stringów, maksymalna długość to 65535 znaków.
  • mediumtext
  • mediumblob
obsługuje zmienne długości stringów, maksymalna długość to 16777215 znaków.
  • longtext
  • longblob
obsługuje zmienne długości stringów, maksymalna długość to 4294967295 znaków.
typ danych daty Opis
  • data(yyyy-mm-dd)
  • data(czas yyyy-mm-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • czas(hh:mm:ss)
Obsługuje daty lub czasy
Różnorodne typy danych Opis
enum(value1,value2,ect) ENUM to skrót od ENUMERATED listy. Można umieścić do 65535 wartości w nawiasach.
set Podobne do ENUM. Ale SET może mieć do 64 elementów listy i może przechowywać więcej niż jeden wybór

Pole kluczowe przedstawne i pole automatycznego zwiększania

Każda tabela powinna mieć pole kluczowe przedstawne.

Pole kluczowe przedstawne służy do unikalnego identyfikowania wierszy w tabeli. Każda wartość klucza przedstawnego w tabeli musi być unikalna. Ponadto, pole kluczowe przedstawne nie może być puste, ponieważ silnik bazy danych potrzebuje wartości, aby zlokalizować rekord.

Pola kluczowe przedstawne zawsze muszą być zaindeksowane. To zasada bez wyjątków. Musisz zaindeksować pole kluczowe przedstawne, aby silnik bazy danych mógł szybko zlokalizować wiersze z daną wartością klucza.

Poniższy przykład ustawia pole personID jako klucz przedstawny. Pola kluczowe przedstawne są zazwyczaj numerami ID i są zazwyczaj ustawiane na AUTO_INCREMENT. AUTO_INCREMENT zwiększa wartość pola w sposób sekwencyjny przy dodawaniu nowego rekordu. Aby upewnić się, że pole kluczowe przedstawne nie jest puste, musimy dodać ustawienie NOT NULL do tego pola.

Przykład

$sql = "CREATE TABLE Persons 
(
personID int NOT NULL AUTO_INCREMENT, 
KLUCZ PRZEDSTAWNY(personID),
Imię varchar(15),
Nazwisko varchar(15),
Wiek int
);
mysql_query($sql,$con);