建立 MySQL 資料表需指定表名、欄位名稱與各欄位定義。本文詳細說明 CREATE TABLE 語法、常見欄位屬性(NOT NULL、AUTO_INCREMENT、PRIMARY KEY),並示範命令列與 PHP 兩種建表方式。
CREATE TABLE table_name (column_name column_type);
CREATE TABLE tutorials_tbl(
tutorial_id INT NOT NULL AUTO_INCREMENT,
tutorial_title VARCHAR(100) NOT NULL,
tutorial_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY (tutorial_id)
);
root@host# mysql -u root -p
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> CREATE TABLE tutorials_tbl(
-> tutorial_id INT NOT NULL AUTO_INCREMENT,
-> tutorial_title VARCHAR(100) NOT NULL,
-> tutorial_author VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY (tutorial_id)
-> );
Query OK, 0 rows affected (0.16 sec)
mysql>
注意:MySQL 以分號 ; 判斷命令結束,若未輸入分號會持續等待續行(提示符顯示 ->)。
<html>
<head>
<title>Creating MySQL Tables</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully<br />';
$sql = "CREATE TABLE tutorials_tbl(
tutorial_id INT NOT NULL AUTO_INCREMENT,
tutorial_title VARCHAR(100) NOT NULL,
tutorial_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY (tutorial_id)
)";
mysql_select_db('TUTORIALS');
$retval = mysql_query($sql, $conn);
if(! $retval ) {
die('Could not create table: ' . mysql_error());
}
echo "Table created successfully\n";
mysql_close($conn);
?>
</body>
</html>
掌握建表語法後,即可依業務需求設計正規化的資料結構。