PHP MySQL 創(chuàng)建數(shù)據(jù)庫和表
數(shù)據(jù)庫存有一個或多個表。
創(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)建了一個名為 "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)建一個名為 "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);
?>
重要事項:在創(chuàng)建表之前,必須首先選擇數(shù)據(jù)庫。通過 mysql_select_db() 函數(shù)選取數(shù)據(jù)庫。
注釋:當(dāng)您創(chuàng)建 varchar 類型的數(shù)據(jù)庫字段時,必須規(guī)定該字段的最大長度,例如:varchar(15)。
MySQL 數(shù)據(jù)類型
下面的可使用的各種 MySQL 數(shù)據(jù)類型:
| 數(shù)值類型 | 描述 |
|---|---|
|
僅支持整數(shù)。在 size 參數(shù)中規(guī)定數(shù)字的最大值。 |
|
支持帶有小數(shù)的數(shù)字。 在 size 參數(shù)中規(guī)定數(shù)字的最大值。在 d 參數(shù)中規(guī)定小數(shù)點右側(cè)的數(shù)字的最大值。 |
| 文本數(shù)據(jù)類型 | 描述 |
|---|---|
| char(size) |
支持固定長度的字符串。(可包含字母、數(shù)字以及特殊符號)。 在 size 參數(shù)中規(guī)定固定長度。 |
| varchar(size) |
支持可變長度的字符串。(可包含字母、數(shù)字以及特殊符號)。 在 size 參數(shù)中規(guī)定最大長度。 |
| tinytext | 支持可變長度的字符串,最大長度是 255 個字符。 |
|
支持可變長度的字符串,最大長度是 65535 個字符。 |
|
支持可變長度的字符串,最大長度是 16777215 個字符。 |
|
支持可變長度的字符串,最大長度是 4294967295 個字符。 |
| 日期數(shù)據(jù)類型 | 描述 |
|---|---|
|
支持日期或時間 |
| 雜項數(shù)據(jù)類型 | 描述 |
|---|---|
| enum(value1,value2,ect) | ENUM 是 ENUMERATED 列表的縮寫?梢栽诶ㄌ栔写娣抛疃 65535 個值。 |
| set | SET 與 ENUM 相似。但是,SET 可擁有最多 64 個列表項目,并可存放不止一個 choice |
主鍵和自動遞增字段
每個表都應(yīng)有一個主鍵字段。
主鍵用于對表中的行進行唯一標(biāo)識。每個主鍵值在表中必須是唯一的。此外,主鍵字段不能為空,這是由于數(shù)據(jù)庫引擎需要一個值來對記錄進行定位。
主鍵字段永遠要被編入索引。這條規(guī)則沒有例外。你必須對主鍵字段進行索引,這樣數(shù)據(jù)庫引擎才能快速定位給予該鍵值的行。
下面的例子把 personID 字段設(shè)置為主鍵字段。主鍵字段通常是 ID 號,且通常使用 AUTO_INCREMENT 設(shè)置。AUTO_INCREMENT 會在新記錄被添加時逐一增加該字段的值。要確保主鍵字段不為空,我們必須向該字段添加 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);