数据库由一个或多个表组成。这些表包含使用列和行模型的数据。在MySQL数据库中创建表,表名在数据库系统中应该是唯一的。
CREATE TABLE语句用于在MySQL中创建表。创建表涉及为表提供名称并定义每列的名称和数据类型(例如 varchar、int、date等)。例如,要创建一个名为"Employee"的表,包含五列:"EmpID"、"Name"、"City"、"Age"和"Salary",可以使用以下查询:
CREATE TABLE Employee (
EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
City VARCHAR(100),
Age INT,
Salary DECIMAL(18,2)
)
在上面的查询中,数据类型指定了列可以保存什么类型的数据。在数据类型之后,为每列提供可选属性。这里使用的属性的描述如下:
- NOT NULL - 确保列不能有 NULL 值。
- UNIQUE - 确保列中的所有值是不同的。
- 主键 - 唯一标识表的列中的每一行/记录。 NOT NULL 和 UNIQUE 约束的组合。
- UNSIGNED - 用于数字类型,将存储的数据限制为正数和零
- AUTO_INCRMENT - 每次添加一条新记录,自动将字段的值增加1 。
要连接MySQL数据库,可以使用mysqli_connect()函数。建立与数据库的连接后,可以使用 mysqli_query() 函数对数据库执行查询以创建新表。
创建 MySQL 表 - 面向对象风格
下面的示例演示如何以面向对象的方式创建名为"Employee"的表。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";
//建立连接
$mysqli = new mysqli($servername, $username, $password, $dbname);
//检查连接
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: ". $mysqli->connect_error;
exit();
}
//建表查询
$sql = "CREATE TABLE Employee (
EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
City VARCHAR(100),
Age INT,
Salary DECIMAL(18,2)
)";
//执行查询
if (!$mysqli->query($sql)) {
echo "Error creating table: ". $mysqli->error;
} else {
echo "Table Employee created successfully.";
}
//关闭连接
$mysqli->close();
?>
创建 MySQL 表 - 面向过程风格
使用面向过程获得相同的结果,可以使用以下脚本。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";
//建立连接
$mysqli = mysqli_connect($servername, $username, $password, $dbname);
//检查连接
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: ". mysqli_connect_error();
exit();
}
//建表查询
$sql = "CREATE TABLE Employee (
EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(255) NOT NULL,
City VARCHAR(100),
Age INT,
Salary DECIMAL(18,2)
)";
//执行查询
if (!mysqli_query($mysqli, $sql)) {
echo "Error creating table: ". mysqli_error($mysqli);
} else {
echo "Table Employee created successfully.";
}
//关闭连接
mysqli_close($mysqli);
?>
完整 PHP MySQLi 参考
有关 PHP MySQLi 扩展的所有属性、方法和功能的完整参考,请参阅 PHP MySQLi 参考。