CREATE DATABASE

※Nội dung bài tìm hiểu này được thực hiện trên phiên bản MySQL 8.0

Để tạo cơ sở dữ liệu (database) trong MySQL, chúng ta sử dụng cú pháp sau:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[DEFAULT CHARACTER SET = charset_name],
[DEFAULT COLLATE = collation_name];

Trong đó:

  • CREATE DATABASE db_name => tạo ra 1 cơ sở dữ liệu với tên là db_name. Để sử dụng khai báo này, chúng ta cần quyền CREATE cho database này. CREATE SCHEMA là từ đồng nghĩa với CREATE DATABASE.
  • IF NOT EXISTS => chỉ tạo database nếu như database đó chưa tồn tại.

Từ bản MySQL 5.5.3, CREATE DATABASE không được cho phép bên trong 1 phiên làm việc có khai báo LOCK TABLES đang có hiệu lực.

  • Các tùy chọn create_specification => chỉ ra các đặc điểm của database. Các đặc điểm của database được lưu trong tập tin db.opt trong thư mục của database.
    • Mệnh để CHARACTER SET chỉ ra tập ký tự mặc định của database.
    • Mệnh đề COLLATE chỉ ra collate mặc định của database.

1 database trong MySQL được thực thi như 1 thư mục chứa các tập tin tương ứng với các bảng trong cơ sở dữ liệu. Bởi vì không có các bảng trong 1 database khi nó được tạo ban đầu, khai báo CREATE DATABASE chỉ tạo 1 thư mục dưới thư mục dữ liệu của MySQL và tập tin db.opt. Nếu tên của database chứa các ký tự đặc biệt, tên cho thư mục của database chứa phiên bản mã hóa của các ký tự này.

Nếu chúng ta tạo 1 thư mục 1 cách thủ công trong thư mục dữ liệu của MySQL, máy chủ xem nó là 1 thư mục database và hiển thị nó ra trong kết quả của khai báo SHOW DATABASES.

Để liệt kê danh sách các CSDL hiện có, chúng ta sử dụng khai báo SHOW DATABASES như bên dưới:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| northwind          |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)

Sau khi tạo CSDL, để làm việc với CSDL đó, chúng ta sử dụng khai báo USE như sau:

mysql> USE db_name;

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.