Cách tạo bảng trong MySQL

Một bảng cơ sở dữ liệu MySQL có tên duy nhất của nó và bao gồm các cột và hàng.


Tạo một bảng MySQL sử dụng MySQLi và PDO

Câu lệnh CREATE TABLE được dùng để tạo bảng trong MySQL.

Chúng ta sẽ tạo một bảng có tên “MyGuests”, với năm cột: “id”, “firstname”,”lastname”, “email” và “rag_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
)

Một số lưu ý về bảng trên:

Kiểu dữ liệu chỉ định loại dữ liệu của cột có thể có. Để có một thư mục đầy đủ tất các các dạng dữ liệu có thể cung cấp, hãy vào khu vực Thư Mục Kiểu Dữ Liệu của chúng tôi.

Sau kiểu dữ liệu, bạn có thể chỉ định các thuộc tính tuỳ chọn khác cho mỗi cột:

  • NOT NULL – Mỗi hàng phải bao gồm một giá trị cho cột đó, giá trị null không được phép;
  • giá trị DEFAULT  – Thiết lập giá trị mặc định được thêm vào khi không giá trị nào khác được thông qua;
  • UNSIGNED – Sử dụng cho kiểu số, giới hạn lưu trữ dữ liệu cho kiểu số dương và zero;
  • AUTO INCREMENT – MySQL tự động tăng giá trị lên một mỗi khi có bản ghi mới được thêm vào;
  • PRIMARY KEY – Sử dụng để tạo định danh duy nhất của các hàng trong một bảng. Cột với PRIMARY KEY được thiết lập thường với một số ID và thường sử dụng AUTO_INCREMENT;

Mỗi bảng phải có một khoá chính (primary key – trong trường hợp này là cột “id”). Giá trị của nó phải duy nhất cho mỗi bản ghi trong bảng.

Các ví dụ dưới đây hiển thị cách tạo bảng trong PHP:

Ví dụ (MySQLi Hướng đối tượng):

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Ket noi csdl
$conn = new mysqli($servername, $username, $password, $dbname);

// Kiem tra ket noi
if ($conn->connect_error) {
die("Ket noi bi loi: " . $conn->connect_error);
}

// sql de tao bang
$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
)";

if ($conn->query($sql) === TRUE) {
echo "Bang MyGuests da tao thanh cong";
} else {
echo "Gap loi khi tao bang: " . $conn->error;
}

$conn->close();
?>

Ví dụ (MySQLi Thủ tục):

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Ket noi csdl
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Kiem tra ket noi
if (!$conn) {
die("Loi ket noi: " . mysqli_connect_error());
}

// Tao bang 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
)";

if (mysqli_query($conn, $sql)) {
echo "Bang da tao thanh cong";
} else {
echo "Loi khi tao bang: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

Ví dụ (PDO):

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

// đặt chế độ lỗi PDO thành ngoại lệ
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Tạo bảng 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
)";

// su dung exec() vi khong co ket qua tra ve
$conn->exec($sql);
echo "Tao bang MyGuests thanh cong";
}
catch(PDOException $e)
{
echo $sql . “<br>” . $e->getMessage();
}

$conn = null;
?>

Chia sẻ bài này: