PHP Membuat Pangkalan Data MySQL

Pangkalan data menyimpan satu atau lebih tabel.

Membuat pangkalan data

Perintah CREATE DATABASE digunakan untuk membuat database di MySQL.

Sintaks

CREATE DATABASE database_name

Untuk menjalankan perintah di atas, kita harus menggunakan fungsi mysql_query(). Fungsi ini digunakan untuk mengirimkan kueri atau perintah ke koneksi MySQL.

Contoh

Dalam contoh di bawah ini, kami membuat sebuah pangkalan data yang dinamai "my_db":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Tidak dapat disambungkan: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
mysql_close($con);
?>

Membuat tabel

CREATE TABLE digunakan untuk membuat tabel database di MySQL.

Sintaks

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

Untuk melaksanakan perintah ini, saya harus menambahkan perintah CREATE TABLE ke fungsi mysql_query().

Contoh

Contoh di bawah ini menunjukkan bagaimana untuk membuat sebuah tabel yang dinamai "Persons", tabel ini memiliki tiga kolom. Nama kolom adalah "FirstName", "LastName" serta "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Tidak dapat disambungkan: ' . mysql_error());
  }
// Buat pangkalan data
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
// Create table in my_db database
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons 
(
FirstName varchar(15),
LastName varchar(15),
Usia int
)";
mysql_query($sql,$con);
mysql_close($con);
?>

重要事项:在创建表之前,必须首先选择数据库。通过 mysql_select_db() 函数选取数据库。

注释:当您创建 varchar 类型的数据库字段时,必须规定该字段的最大长度,例如:varchar(15)。

MySQL 数据类型

下面的可使用的各种 MySQL 数据类型:

数值类型 Penerangan
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
仅支持整数。在 size 参数中规定数字的最大值。
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

支持带有小数的数字。

在 size 参数中规定数字的最大值。在 d 参数中规定小数点右侧的数字的最大值。

文本数据类型 Penerangan
char(size)

支持固定长度的字符串。(可包含字母、数字以及特殊符号)。

在 size 参数中规定固定长度。

varchar(size)

支持可变长度的字符串。(可包含字母、数字以及特殊符号)。

在 size 参数中规定最大长度。

tinytext 支持可变长度的字符串,最大长度是 255 个字符。
  • text
  • blob
支持可变长度的字符串,最大长度是 65535 个字符。
  • mediumtext
  • mediumblob
支持可变长度的字符串,最大长度是 16777215 个字符。
  • longtext
  • longblob
支持可变长度的字符串,最大长度是 4294967295 个字符。
日期数据类型 Penerangan
  • date(yyyy-mm-dd)
  • datetime(yyyy-mm-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • time(hh:mm:ss)
Dukung tarikh atau masa
Jenis data serupa Penerangan
enum(value1,value2,ect) ENUM adalah singkatan untuk senarai DIKEMUKAAN. Boleh disimpan sehingga 65535 nilai di dalam kurungan.
set SET hampir sama dengan ENUM. Namun, SET boleh mempunyai sehingga 64 item dalam senarai, dan boleh menampung lebih daripada satu pilihan

Lapangan kunci utama dan lapangan auto-increment

Setiap tabel seharusnya mempunyai lapangan kunci utama.

Lapangan kunci digunakan untuk mengenal suatu baris di dalam tabel. Setiap nilai kunci utama di dalam tabel harus unik. Selain itu, lapangan kunci utama tidak boleh kosong, karena enjin database memerlukan nilai untuk menempatkan rekod.

Lapangan kunci utama selalu harus disertakan dalam indeks. Tidak ada pengecualian untuk aturan ini. Anda harus mengindeks lapangan kunci utama, supaya enjin database dapat menempatkan baris yang diberikan nilai kunci dengan pantas.

Contoh di bawah ini mengatur lapangan personID sebagai lapangan kunci utama. Lapangan kunci utama biasanya adalah nomor ID, dan biasanya digunakan pengaturan AUTO_INCREMENT. AUTO_INCREMENT akan meningkatkan nilai lapangan ini secara berturut-turut ketika rekod baru ditambahkan. Untuk memastikan bahwa lapangan kunci utama tidak boleh kosong, kita harus menambahkan pengaturan NOT NULL ke lapangan ini.

Contoh

$sql = "CREATE TABLE Persons 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Usia int
)";
mysql_query($sql,$con);