PHP สร้างฐานข้อมูล MySQL

ฐานข้อมูลมีหนึ่งหรือหลายตาราง。

สร้างฐานข้อมูล

คำสั่ง CREATE DATABASE ใช้เพื่อสร้างฐานข้อมูลใน MySQL。

การใช้งาน

CREATE DATABASE database_name

เพื่อให้ PHP ปฏิบัติคำสั่งด้านบน เราต้องใช้ฟังก์ชัน mysql_query() ซึ่งใช้เพื่อส่งคำถามหรือคำสั่งไปยังการเชื่อมต่อ MySQL。

ตัวอย่าง

ในตัวอย่างด้านล่างนี้ เราสร้างฐานข้อมูลชื่อว่า "my_db":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('ไม่สามารถเชื่อมต่อ: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
mysql_close($con);
?>

สร้างตาราง

CREATE TABLE ใช้เพื่อสร้างตารางฐานข้อมูลใน MySQL。

การใช้งาน

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

เพื่อปฏิบัติคำสั่งนี้ ฉันต้องเพิ่มคำสั่ง CREATE TABLE ในฟังก์ชัน mysql_query()

ตัวอย่าง

ตัวอย่างด้านล่างนี้แสดงวิธีการสร้างตารางที่มีชื่อว่า "Persons" ซึ่งมีคอลัมน์สามคอลัมน์. ชื่อคอลัมน์คือ "FirstName", "LastName" และ "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('ไม่สามารถเชื่อมต่อ: ' . mysql_error());
  }
// สร้างฐานข้อมูล
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
// สร้างตารางในฐานข้อมูล my_db
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons 
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);
mysql_close($con);
?>

ความสำคัญ:ก่อนที่จะสร้างตาราง คุณจำเป็นต้องเลือกฐานข้อมูลก่อน โดยใช้ฟังก์ชัน mysql_select_db()

หมายเหตุ:เมื่อคุณสร้างฟิลด์ประเภท varchar ในฐานข้อมูล คุณจำเป็นต้องกำหนดความยาวสูงสุดของฟิลด์ ตัวอย่าง: varchar(15)

ประเภทข้อมูล MySQL

ประเภทข้อมูล MySQL ที่สามารถใช้งานได้:

ประเภทข้อมูลตัวเลข คำอธิบาย
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
สนับสนุนตัวเลขเต็มเท่านั้น สูงสุด 4294967295
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

สนับสนุนตัวเลขที่มีเลขภาพ

กำหนดค่าสูงสุดของตัวเลขในตัวแปร size และกำหนดค่าสูงสุดของตัวเลขที่อยู่ด้านขวาของจุดของตัวแปร d

ประเภทข้อมูลข้อความ คำอธิบาย
char(size)

สนับสนุนข้อความยาวที่แก้ไขได้ (สามารถประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์พิเศษได้)

กำหนดความยาวสูงสุดเป็นค่าแน่นอนในตัวแปร size

varchar(size)

สนับสนุนข้อความยาวที่แก้ไขได้ (สามารถประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์พิเศษได้)

กำหนดความยาวสูงสุดในตัวแปร size

tinytext สนับสนุนข้อความยาวที่แก้ไขได้ สูงสุด 255 ตัวอักษร。
  • text
  • blob
สนับสนุนข้อความยาวที่แก้ไขได้ สูงสุด 65535 ตัวอักษร。
  • mediumtext
  • mediumblob
สนับสนุนข้อความยาวที่แก้ไขได้ สูงสุด 16777215 ตัวอักษร。
  • longtext
  • longblob
สนับสนุนข้อความยาวที่แก้ไขได้ สูงสุด 4294967295 ตัวอักษร。
ประเภทข้อมูลวันที่ คำอธิบาย
  • date(ปี-เดือน-วัน)
  • datetime(ปี-เดือน-วัน hh:mm:ss)
  • timestamp(ปีปีเจือเดือนวัน hhmmss)
  • time(เวลา hh:mm:ss)
สนับสนุนวันที่หรือเวลา
ประเภทข้อมูลที่เป็นส่วนเกิน คำอธิบาย
enum(value1,value2,ect) ENUM คือย่อของ ENUMERATED ลิสต์ สามารถจัดไว้เป็นค่าถึง 65535 รายการในวงเล็บ
set SET คล้าย ENUM แต่ SET สามารถมีข้อมูลถึง 64 รายการในรายการและสามารถจัดไว้เป็นกลุ่มหลายกลุ่ม

คอลัมน์หลักและคอลัมน์ที่เพิ่มเติมเพื่อเพิ่มเข้ามา

แต่ละตารางควรมีคอลัมน์หลัก

คอลัมน์หลักใช้เพื่อระบุบันทึกในตารางโดยเด็ดขาด ค่าหลักในแต่ละบันทึกควรเป็นเด็ดขาดในตาราง นอกจากนี้ คอลัมน์หลักไม่ควรมีช่องว่าง เนื่องจากเครื่องกลไกของฐานข้อมูลจำเป็นต้องมีค่าเพื่อจะสามารถติดตามบันทึก

คอลัมน์หลักต้องถูกเข้าใส่ในตารางดัชนีตลอดทั้งหมด ไม่มีความปราศจากข้อกฎนี้ คุณจำเป็นต้องทำคอลัมน์หลักเข้าใส่ในตารางดัชนี เพื่อให้เครื่องกลไกของฐานข้อมูลจะสามารถติดตามบรรดาบันทึกที่มีค่าหลักในรวมทั้งหมด

ตัวอย่างด้านล่างนี้จัดตั้งคอลัมน์ personID ให้เป็นหลักในตาราง。คอลัมน์หลักมักเป็นเลขที่แสดงตัว (ID) และมักใช้ AUTO_INCREMENT ตั้งค่า。AUTO_INCREMENT จะเพิ่มค่าของคอลัมน์เดียวละครั้งเมื่อบันทึกใหม่ถูกเพิ่มเข้ามา。เพื่อที่จะให้คอลัมน์หลักไม่มีช่องว่าง เราต้องเพิ่มการตั้งค่า NOT NULL ให้กับคอลัมน์นี้。

ตัวอย่าง

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