PHP MySQL 創(chuàng)建數(shù)據(jù)庫和表-4.3PHP 數(shù)據(jù)庫

閱讀 ?·? 發(fā)布日期 2019-06-28 18:42 ?·? admin

數(shù)據(jù)庫存有一個(gè)或多個(gè)表。

創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE 語句用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫。

語法

CREATE DATABASE database_name

為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。此函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。

例子

在下面的例子中,我們創(chuàng)建了一個(gè)名為 "my_db" 的數(shù)據(jù)庫:

<?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);
?>

創(chuàng)建表

CREATE TABLE 用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫表。

語法

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

為了執(zhí)行此命令,我必須向 mysql_query() 函數(shù)添加 CREATE TABLE 語句。

例子

下面的例子展示了如何創(chuàng)建一個(gè)名為 "Persons" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// Create database
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),
Age int
)";
mysql_query($sql,$con);

mysql_close($con);
?>

重要事項(xiàng):在創(chuàng)建表之前,必須首先選擇數(shù)據(jù)庫。通過 mysql_select_db() 函數(shù)選取數(shù)據(jù)庫。

注釋:當(dāng)您創(chuàng)建 varchar 類型的數(shù)據(jù)庫字段時(shí),必須規(guī)定該字段的最大長度,例如:varchar(15)。

MySQL 數(shù)據(jù)類型

下面的可使用的各種 MySQL 數(shù)據(jù)類型:

數(shù)值類型 描述
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
僅支持整數(shù)。在 size 參數(shù)中規(guī)定數(shù)字的最大值。
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

支持帶有小數(shù)的數(shù)字。

在 size 參數(shù)中規(guī)定數(shù)字的最大值。在 d 參數(shù)中規(guī)定小數(shù)點(diǎn)右側(cè)的數(shù)字的最大值。

文本數(shù)據(jù)類型 描述
char(size)

支持固定長度的字符串。(可包含字母、數(shù)字以及特殊符號(hào))。

在 size 參數(shù)中規(guī)定固定長度。

varchar(size)

支持可變長度的字符串。(可包含字母、數(shù)字以及特殊符號(hào))。

在 size 參數(shù)中規(guī)定最大長度。

tinytext 支持可變長度的字符串,最大長度是 255 個(gè)字符。
  • text
  • blob
支持可變長度的字符串,最大長度是 65535 個(gè)字符。
  • mediumtext
  • mediumblob
支持可變長度的字符串,最大長度是 16777215 個(gè)字符。
  • longtext
  • longblob
支持可變長度的字符串,最大長度是 4294967295 個(gè)字符。
日期數(shù)據(jù)類型 描述
  • date(yyyy-mm-dd)
  • datetime(yyyy-mm-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • time(hh:mm:ss)
支持日期或時(shí)間
雜項(xiàng)數(shù)據(jù)類型 描述
enum(value1,value2,ect) ENUM 是 ENUMERATED 列表的縮寫。可以在括號(hào)中存放最多 65535 個(gè)值。
set SET 與 ENUM 相似。但是,SET 可擁有最多 64 個(gè)列表項(xiàng)目,并可存放不止一個(gè) choice

主鍵和自動(dòng)遞增字段

每個(gè)表都應(yīng)有一個(gè)主鍵字段。

主鍵用于對表中的行進(jìn)行唯一標(biāo)識(shí)。每個(gè)主鍵值在表中必須是唯一的。此外,主鍵字段不能為空,這是由于數(shù)據(jù)庫引擎需要一個(gè)值來對記錄進(jìn)行定位。

主鍵字段永遠(yuǎn)要被編入索引。這條規(guī)則沒有例外。你必須對主鍵字段進(jìn)行索引,這樣數(shù)據(jù)庫引擎才能快速定位給予該鍵值的行。

下面的例子把 personID 字段設(shè)置為主鍵字段。主鍵字段通常是 ID 號(hào),且通常使用 AUTO_INCREMENT 設(shè)置。AUTO_INCREMENT 會(huì)在新記錄被添加時(shí)逐一增加該字段的值。要確保主鍵字段不為空,我們必須向該字段添加 NOT NULL 設(shè)置。

例子

$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);