一個資料表有一個唯一名稱,並且有行和列組成。
使用MySQLi 和PDO 建立MySQL 表
CREATE TABLE 語句用於建立MySQL 表。
在建立表格前,我們需要使用use myDB來選擇要操作的資料庫:
use myDB;
我們將建立一個名為"MyGuests" 的表,有5 個欄位: "id", "firstname", "lastname", "email" 和"reg_date":
CREATE TABLE MyGuests ( id INT ( 6 ) UNSIGNED AUTO_INCREMENT PRIMARY KEY , firstname VARCHAR ( 30 ) NOT NULL , lastname VARCHAR ( 30 ) NOT NULL , email VARCHAR ( 50 ) , reg_date TIMESTAMP )上表中的注意事項:
資料類型指定列可以儲存什麼類型的資料。完整的資料類型請參考我們的資料類型參考手冊。
在設定了資料類型後,你可以為每個列指定其他選項的屬性:
NOT NULL - 每一行都必須含有值(不能為空),null 值是不允許的。
DEFAULT value - 設定預設值
UNSIGNED - 使用無符號數值類型,0 及正數
AUTO INCREMENT - 設定MySQL 欄位的值在新增記錄時每次自動增長1
PRIMARY KEY - 設定資料表中每筆記錄的唯一識別。 通常列的PRIMARY KEY 設定為ID 數值,與AUTO_INCREMENT 一起使用。
每個表都應該有一個主鍵(本列為"id" 列),主鍵必須包含唯一的值。
以下實例展示如何在PHP 中建立表格:
實例(MySQLi - 物件導向)
<?php $servername = " localhost " ; $username = " username " ; $password = " password " ; $dbname = " myDB " ; //建立連接$conn = new mysqli ( $servername , $username , $password , $dbname ) ; //偵測連接if ( $conn -> connect_error ) { die ( "連線失敗: " . $conn -> connect_error ) ; } //使用sql 建立資料表$sql = " CREATE TABLE MyGuests (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL,lastname VARCHAR(30) NOT NULL,email VARCHAR(50),reg_date TIMESTAMP ) ; ( $conn -> query ( $sql ) === TRUE ) { echo " Table MyGuests created successfully " ; } else { echo "建立資料表錯誤: " . $conn -> error ; } $conn -> close ( ) ; ?>實例(MySQLi - 面向過程)
<?php $servername = " localhost " ; $username = " username " ; $password = " password " ; $dbname = " myDB " ; //建立連接$conn = mysqli_connect ( $servername , $username , $password , $dbname ) ; //偵測連接if ( ! $conn ) { die ( "連線失敗: " . mysqli_connect_error ( ) ) ; } //使用sql 建立資料表$sql = " CREATE TABLE MyGuests (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL,lastname VARCHAR(30) NOT NULL,email VARCHAR(50),reg_date TIMESTAMP ) ; ( mysqli_query ( $conn , $sql ) ) { echo "資料表MyGuests 建立成功" ; } else { echo "建立資料表錯誤: " . mysqli_error ( $conn ) ; } mysqli_close ( $conn ) ; ?>實例(PDO)
<?php $servername = " localhost " ; $username = " username " ; $password = " password " ; $dbname = " myDBPDO " ; try { $conn = new PDO ( " mysql:host= $servername ;dbname= $dbname " , $username , $password ) ; //設定PDO 錯誤模式,用來拋出例外 $conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; //使用sql 建立資料表 $sql = " CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL
, lastname
VARCHAR (30) NOT NULL, email VARCHAR(50), ESTdate TIMESTAMPcA ) ; ) ,沒有結果返回 $conn -> exec ( $sql ) ; echo "資料表MyGuests 建立成功" ; } catch ( PDOException $e ) { echo $sql . " <br> " . $e -> getMessage ( ) ; } $conn = null ; ?>