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('Could not connect: ' . 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('Could not connect: ' . mysql_error());
  }
// ສ້າງຖານຂໍ້ມູນ
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 
(
ຊື່ຜູ້ບັນຊາ varchar(15),
ຊື່ສະມາຊິກ varchar(15),
ອາຍຸ 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)
ສະໜັບສະໜູນຈຳນວນທີ່ມີສະເພາະ. ຕາມການກຳນົດຈຳນວນຂອງຈຳນວນທີ່ສູງສຸດໃນ size.
  • 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(yyyy-mm-dd)
  • datetime(yyyy-mm-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • time(hh:mm:ss)
支持日期或时间
杂项数据类型 描述
enum(value1,value2,ect) ENUM 是 ENUMERATED 列表的缩写。可以在括号中存放最多 65535 个值。
set SET 与 ENUM 相似。但是,SET 可拥有最多 64 个列表项目,并可存放不止一个 choice

主键和自动递增字段

每个表都应有一个主键字段。

ລະຫັດສະໜອງຕ້ອງຖືກນໍາໃຊ້ເພື່ອບັນທຶກບັນດາການບັນທຶກໃນບັນດາບັນດາ. ແລະວ່າແຕ່ລະລະຫັດສະໜອງຕ້ອງມີຄວາມອັນສະນະພຽງພຽງໃນບັນດາ. ລະຫັດສະໜອງບໍ່ອາດຫາຍຫຍັງ ເພື່ອວ່າບັນດາບັນດາການບັນທຶກຈະມີຄວາມອັນສະນະພຽງພຽງ.

ບັນດາລະຫັດສະໜອງຕ້ອງຖືກກໍາກັບໃນບັນດາບັນທຶກ. ກົດລະບຽບນີ້ບໍ່ມີອັນດັບລົງ. ທ່ານຕ້ອງກໍາກັບບັນດາລະຫັດສະໜອງເພື່ອອຸປະກອນດິນບັນດາບັນດາການບັນທຶກທີ່ຈະຕິດຕາມບັນດາລະຫັດດັ່ງກ່າວຄືກັບລະຫັດທີ່ຈະຄົ້ນຫາບັນດາການບັນທຶກທີ່ມີລະຫັດດັ່ງກ່າວ.

ຕົວຢ່າງດັ່ງກ່າວລົງມາຕັ້ງຂອງບັນດາລະຫັດ personID ຄືກັບລະຫັດ. ລະຫັດສະໜອງບໍ່ອາດຫາຍຫຍັງ ແລະຈະມີການຕັ້ງ AUTO_INCREMENT. AUTO_INCREMENT ຈະຂັດຂຶ້ນຄັດຄ້ານຄືກັບບັນດາລະຫັດໃໝ່ທີ່ຖືກເພີ່ມເຂົ້າມາ. ເພື່ອຮັບປະກັນວ່າບັນດາລະຫັດສະໜອງບໍ່ຫາຍຫຍັງ ພວກເຮົາຕ້ອງເພີ່ມການຕັ້ງ NOT NULL ໃຫ້ບັນດາລະຫັດດັ່ງກ່າວ.

ຕົວຢ່າງ

$sql = "CREATE TABLE Persons 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
ຊື່ຜູ້ບັນຊາ varchar(15),
ຊື່ສະມາຊິກ varchar(15),
ອາຍຸ int
)";
mysql_query($sql,$con);