Một bảng được tạo trong mysql như thế nào?

Bản tóm tắt. trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng câu lệnh MySQL CREATE TABLE để tạo một bảng mới trong cơ sở dữ liệu

Cú pháp MySQL CREATE TABLE

Câu lệnh CREATE TABLE cho phép bạn tạo một bảng mới trong cơ sở dữ liệu

Phần sau đây minh họa cú pháp cơ bản của câu lệnh CREATE TABLE  

CREATE TABLE [IF NOT EXISTS] table_name( column_1_definition, column_2_definition, ..., table_constraints ) ENGINE=storage_engine;

Code language: SQL (Structured Query Language) (sql)

Hãy xem xét cú pháp chi tiết hơn

Trước tiên, bạn chỉ định tên của bảng mà bạn muốn tạo sau các từ khóa CREATE TABLE. Tên bảng phải là duy nhất trong cơ sở dữ liệu.

column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

Code language: SQL (Structured Query Language) (sql)
3 là tùy chọn. Nó cho phép bạn kiểm tra xem bảng bạn tạo đã tồn tại trong cơ sở dữ liệu chưa. Nếu đây là trường hợp, MySQL sẽ bỏ qua toàn bộ câu lệnh và sẽ không tạo bất kỳ bảng mới nào

Thứ hai, bạn chỉ định danh sách các cột của bảng trong phần

column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

Code language: SQL (Structured Query Language) (sql)
4, các cột cách nhau bởi dấu phẩy

Thứ ba, bạn có thể tùy ý chỉ định công cụ lưu trữ cho bảng trong mệnh đề

column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

Code language: SQL (Structured Query Language) (sql)
5. Bạn có thể sử dụng bất kỳ công cụ lưu trữ nào như InnoDB và MyISAM. Nếu bạn không khai báo rõ ràng một công cụ lưu trữ, MySQL sẽ sử dụng InnoDB theo mặc định

InnoDB trở thành công cụ lưu trữ mặc định kể từ phiên bản MySQL 5. 5. Công cụ lưu trữ InnoDB mang lại nhiều lợi ích của hệ thống quản lý cơ sở dữ liệu quan hệ như giao dịch ACID, tính toàn vẹn tham chiếu và khôi phục sự cố. Trong các phiên bản trước, MySQL đã sử dụng MyISAM làm công cụ lưu trữ mặc định

Sau đây là cú pháp cho định nghĩa của một cột

column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

Code language: SQL (Structured Query Language) (sql)

Đây là những thông tin chi tiết

  • ____1_______6 chỉ định tên của cột. Mỗi cột có một kiểu dữ liệu cụ thể và kích thước tùy chọn e. g. ,

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    7
  • Ràng buộc 

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    8 đảm bảo rằng cột sẽ không chứa

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    9. Bên cạnh ràng buộc

    PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    0, một cột có thể có thêm ràng buộc như CHECK và UNIQUE
  • PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    1 chỉ định giá trị mặc định cho cột
  • PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    2  cho biết giá trị của cột được tự động tăng thêm một mỗi khi một hàng mới được chèn vào bảng. Mỗi bảng có tối đa một cột

    PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    3

Sau danh sách cột, bạn có thể xác định các ràng buộc bảng như ĐỘC ĐÁO, KIỂM TRA, KHÓA CHÍNH và KHÓA NGOÀI

Ví dụ bạn muốn đặt một cột hoặc một nhóm cột làm khóa chính thì bạn sử dụng cú pháp sau

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)

Các ví dụ về câu lệnh MySQL CREATE TABLE

Hãy lấy một số ví dụ về việc tạo bảng mới

1) MySQL CREATE TABLE ví dụ đơn giản

Câu lệnh sau tạo một bảng mới có tên

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
6

CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;

Code language: SQL (Structured Query Language) (sql)

Bảng nhiệm vụ có các cột sau

  • PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    7 là cột tăng tự động. Nếu bạn sử dụng câu lệnh

    PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    8 để chèn một hàng mới vào bảng mà không chỉ định giá trị cho cột

    PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    7, MySQL sẽ tự động tạo một số nguyên tuần tự cho

    PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    7 bắt đầu từ 1
  • Cột

    CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;

    Code language: SQL (Structured Query Language) (sql)
    1 là một cột chuỗi ký tự biến đổi có độ dài tối đa là 255. Điều đó có nghĩa là bạn không thể chèn chuỗi có độ dài lớn hơn 255 vào cột này. Ràng buộc

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    8 chỉ ra rằng cột không chấp nhận

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    9. Nói cách khác, bạn phải cung cấp giá trị không phải NULL khi chèn hoặc cập nhật cột này
  • CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;

    Code language: SQL (Structured Query Language) (sql)
    4 và

    CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;

    Code language: SQL (Structured Query Language) (sql)
    5 là cột

    CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;

    Code language: SQL (Structured Query Language) (sql)
    6. Vì các cột này không có ràng buộc

    PRIMARY KEY (col1,col2,...)

    Code language: SQL (Structured Query Language) (sql)
    0 nên chúng có thể lưu trữ

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    9. Cột start_date có giá trị mặc định là ngày hiện tại. Nói cách khác, nếu bạn không cung cấp giá trị cho cột start_date khi chèn một hàng mới, thì cột start_date sẽ lấy ngày hiện tại của máy chủ cơ sở dữ liệu
  • CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=INNODB;

    Code language: SQL (Structured Query Language) (sql)
    9 và

    DESCRIBE tasks;

    Code language: SQL (Structured Query Language) (sql)
    0 là các cột

    DESCRIBE tasks;

    Code language: SQL (Structured Query Language) (sql)
    1 không cho phép

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    9
  • Cột

    DESCRIBE tasks;

    Code language: SQL (Structured Query Language) (sql)
    3 là cột

    DESCRIBE tasks;

    Code language: SQL (Structured Query Language) (sql)
    4 chấp nhận

    column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;

    Code language: SQL (Structured Query Language) (sql)
    9
  • DESCRIBE tasks;

    Code language: SQL (Structured Query Language) (sql)
    6 là cột

    DESCRIBE tasks;

    Code language: SQL (Structured Query Language) (sql)
    7 chấp nhận thời gian hiện tại làm giá trị mặc định

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
7 là cột khóa chính của bảng

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
6. Điều đó có nghĩa là các giá trị trong cột

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
7 sẽ xác định duy nhất các hàng trong bảng

Khi bạn thực thi câu lệnh CREATE TABLE để tạo bảng

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
6, bạn có thể xem cấu trúc của nó bằng cách sử dụng câu lệnh

CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );

Code language: SQL (Structured Query Language) (sql)
3

DESCRIBE tasks;

Code language: SQL (Structured Query Language) (sql)
Một bảng được tạo trong mysql như thế nào?
Một bảng được tạo trong mysql như thế nào?

Ảnh này hiển thị sơ đồ cơ sở dữ liệu của bảng

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
6

Một bảng được tạo trong mysql như thế nào?
Một bảng được tạo trong mysql như thế nào?

2) MySQL CREATE TABLE với ví dụ về khóa chính khóa ngoại

Giả sử mỗi nhiệm vụ có một danh sách kiểm tra hoặc danh sách việc cần làm. Để lưu trữ danh sách kiểm tra các nhiệm vụ, bạn có thể tạo một bảng mới có tên là

CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );

Code language: SQL (Structured Query Language) (sql)
6 như sau

CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );

Code language: SQL (Structured Query Language) (sql)

Bảng

CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );

Code language: SQL (Structured Query Language) (sql)
6 có khóa chính bao gồm hai cột. Do đó, chúng tôi đã sử dụng ràng buộc bảng để xác định khóa chính

PRIMARY KEY (todo_id , task_id)

Code language: SQL (Structured Query Language) (sql)

Ngoài ra,

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
7 là cột khóa ngoại tham chiếu đến cột

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
7 của bảng

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
6, chúng tôi đã sử dụng ràng buộc khóa ngoại để thiết lập mối quan hệ này

FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE

Code language: SQL (Structured Query Language) (sql)

Bạn sẽ tìm hiểu thêm về ràng buộc khóa ngoại trong hướng dẫn tiếp theo

Hình ảnh này minh họa bảng

CREATE TABLE IF NOT EXISTS checklists ( todo_id INT AUTO_INCREMENT, task_id INT, todo VARCHAR(255) NOT NULL, is_completed BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (todo_id , task_id), FOREIGN KEY (task_id) REFERENCES tasks (task_id) ON UPDATE RESTRICT ON DELETE CASCADE );

Code language: SQL (Structured Query Language) (sql)
6 và mối quan hệ của nó với bảng

PRIMARY KEY (col1,col2,...)

Code language: SQL (Structured Query Language) (sql)
6

Một bảng được tạo trong mysql như thế nào?
Một bảng được tạo trong mysql như thế nào?

Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh MySQL CREATE TABLE để tạo một bảng mới trong cơ sở dữ liệu

Làm cách nào để tạo bảng trong MySQL cho người mới bắt đầu?

Bạn có thể tạo một bảng mới trong cơ sở dữ liệu mặc định bằng lệnh " CREATE TABLE tableName " và " DROP TABLE tableName " . Bạn cũng có thể áp dụng điều kiện " IF EXISTS " hoặc " IF NOT EXISTS ". Để tạo một bảng, bạn cần xác định tất cả các cột của nó bằng cách cung cấp tên, loại và thuộc tính của các cột.

Làm thế nào là một bảng được tạo ra?

Bạn có thể tạo bảng bằng cách tạo cơ sở dữ liệu mới, bằng cách chèn bảng vào cơ sở dữ liệu hiện có hoặc bằng cách nhập hoặc liên kết đến bảng từ một nguồn dữ liệu khác — such as a Microsoft Excel workbook, a Microsoft Word document, a text file, or another database.

Làm cách nào để tạo cơ sở dữ liệu và TẠO BẢNG trong MySQL?

CREATE DATABASE – tạo cơ sở dữ liệu. Để sử dụng câu lệnh này, bạn cần có đặc quyền CREATE cho cơ sở dữ liệu
CREATE TABLE – tạo bảng. Bạn phải có đặc quyền CREATE cho bảng
INSERT – Để thêm/chèn dữ liệu vào bảng i. e. chèn các hàng mới vào một bảng hiện có

Có bao nhiêu cách chúng ta có thể TẠO BẢNG trong MySQL?

Có hai cách chính để tạo bảng trong cơ sở dữ liệu MySQL. .
Thực hiện một truy vấn bao gồm câu lệnh CREATE TABLE
Sử dụng chức năng tương ứng của các công cụ và IDE liên quan đến MySQL