Cách tạo cơ sở dữ liệu trong SQL
- Việc tạo cơ sở dữ liệu là rất cần thiết để lưu trữ dữ liệu vào cơ sở dữ liệu.
- Tên cơ sở dữ liệu phải luôn là duy nhất.
- SQL không cho phép tạo cơ sở dữ liệu có cùng tên đã tồn tại trong máy chủ.
- Để đảm bảo tính duy nhất trong khi tạo cơ sở dữ liệu mới, người quản trị cơ sở dữ liệu phải biết về các cơ sở dữ liệu đã có trong máy chủ.
- HIỂN THỊ DỮ LIỆU lệnh được sử dụng trong SQL để liệt kê tất cả các cơ sở dữ liệu có trong máy chủ.
Ví dụ:
Chúng tôi sẽ kiểm tra tất cả các cơ sở dữ liệu hiện có.
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | demo | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.05 sec)
Trong ví dụ trên, tất cả các cơ sở dữ liệu có trong máy chủ bao gồm cơ sở dữ liệu hệ thống (information_schema, performance_schema, mysql) và cơ sở dữ liệu do người dùng tạo (demo, test) được hiển thị.
- Khi người quản trị cơ sở dữ liệu đã quen thuộc với tên của các cơ sở dữ liệu đã có sẵn trong máy chủ SQL, thì giờ đây người quản trị cơ sở dữ liệu có thể tạo cơ sở dữ liệu với bất kỳ tên nào bằng cách xem xét đầu ra của lệnh SHOW DATABASES.
Cú pháp để tạo cơ sở dữ liệu trong SQL:
CREATE DATABASE DATABASENAME;
Ví dụ: Chúng tôi sẽ tạo một cơ sở dữ liệu mới với tên “Exampledb”.
mysql> CREATE DATABASE Exampledb;
Cơ sở dữ liệu mới có tên “exampledb” được tạo thành công trong máy chủ.
- Để đảm bảo rằng cơ sở dữ liệu được tạo thành công, chúng tôi sẽ sử dụng lại lệnh SHOW DATABASES.
Ví dụ:
Chúng tôi sẽ hiển thị tất cả các cơ sở dữ liệu có sẵn để kiểm tra xem “exampledb” có được tạo hay không.
mysql> SHOW DATABASES;
Đầu ra:
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | exampledb | | mysql | | performance_schema | | test | +--------------------+
Bây giờ, chúng ta có thể thấy cơ sở dữ liệu mới được tạo với tên “exampledb” cũng được liệt kê.
- Thay thế cho lệnh CREATE DATABASE là CREATE SCHEMA COMMAND . Cả hai truy vấn đều thực hiện cùng một nhiệm vụ là tạo cơ sở dữ liệu.
Cú pháp:
CREATE SCHEMA DATABASENAME;
Ví dụ: Chúng tôi sẽ sử dụng một truy vấn thay thế để tạo cơ sở dữ liệu với tên “testDB”.
mysql> CREATE SCHEMA testDB;
Ví dụ: Chúng tôi sẽ hiển thị tất cả các cơ sở dữ liệu có sẵn để kiểm tra xem “testdb” có được tạo hay không.
mysql> SHOW DATABASES;
Đầu ra
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | exampledb | | mysql | | performance_schema | | test | | testdb | +--------------------+ 7 rows in set (0.05 sec)
- Người ta cũng có thể xem lại cơ sở dữ liệu đã được tạo bằng lệnh dưới đây:
SHOW CREATE DATABASE DATABASE_NAME;
Ví dụ:
We will review the already created database named as “exampledb”. mysql> SHOW CREATE DATABASE exampledb;
Đầu ra:
+------------+-----------------------------------------------------------------------+ | Database | Create Database | +------------+-----------------------------------------------------------------------+ | exampledb | CREATE DATABASE ` exampledb ` /*!40100 DEFAULT CHARACTER SET latin1 */ | +------------+-----------------------------------------------------------------------+ 1 row in set (0.00 sec)
Ở đây, lệnh được sử dụng để tạo cơ sở dữ liệu có tên “exampledb” được hiển thị cùng với bộ ký tự. Vì bộ ký tự không được chỉ định trong quá trình tạo cơ sở dữ liệu đó, nên cơ sở dữ liệu được tạo bằng bộ ký tự mặc định, tức là latin1 .
- Để lưu trữ dữ liệu vào một cơ sở dữ liệu cụ thể, người ta cần cho máy chủ biết quản trị viên muốn sử dụng cơ sở dữ liệu cụ thể nào.
Cú pháp:
USE DATABASE_NAME;
Ví dụ:
Để hoạt động trên một cơ sở dữ liệu cụ thể, người dùng cần nói với máy chủ rằng anh ta muốn thực hiện thêm các truy vấn trên “exampledb”.
mysql> USE exampledb;
Đầu ra:
Database changed
Vì chúng tôi đã sử dụng cơ sở dữ liệu có tên là “exampledb”, tất cả các truy vấn tiếp theo sẽ được vận hành trên cơ sở dữ liệu cụ thể này.
Các thông số của câu lệnh CREATE
Người ta cũng có thể ứng biến truy vấn TẠO CƠ SỞ DỮ LIỆU bằng cách thêm các tham số và thông số kỹ thuật vào đó.
- NẾU KHÔNG TỒN TẠI
Có thể có nhiều cơ sở dữ liệu trong một máy chủ MySQL. Người ta có thể cố gắng tạo một cơ sở dữ liệu đã có trong máy chủ MySQL. Vì vậy, trong trường hợp đó, việc sử dụng tham số "NẾU KHÔNG TỒN TẠI" với truy vấn TẠO CƠ SỞ DỮ LIỆU phục vụ mục đích. Trước khi tạo cơ sở dữ liệu mới, nó hướng dẫn máy chủ kiểm tra xem cơ sở dữ liệu đã tồn tại với tên được chỉ định chưa.
Cú pháp:
CREATE DATABASE IF NOT EXISTS DATABASENAME;
Ví dụ:
Để tạo cơ sở dữ liệu mới “demodb”, trước tiên chúng tôi sẽ hiển thị tất cả các cơ sở dữ liệu có sẵn và sau đó tạo “demodb” nếu cơ sở dữ liệu có tên đó chưa tồn tại.
mysql> SHOW DATABASES;
Đầu ra:
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | exampledb | | mysql | | performance_schema | | test | | testdb | +--------------------+ 7 rows in set (0.05 sec)
mysql> CREATE DATABASE IF NOT EXISTS demodb; Query OK, 1 row affected (0.00 sec)
Trước đó không có cơ sở dữ liệu nào có tên “demodb”. Vì vậy, bây giờ cơ sở dữ liệu với tên “demodb” sẽ được tạo. Nếu chúng ta cố gắng tạo cơ sở dữ liệu với tên hiện có mà không sử dụng IF NOT EXISTS, thì trong trường hợp đó SQL sẽ gặp lỗi.
Ví dụ:
Bây giờ, chúng tôi sẽ hiển thị tất cả các cơ sở dữ liệu có sẵn để đảm bảo rằng cơ sở dữ liệu “demodb” đã được tạo.
mysql> SHOW DATABASES;
Đầu ra:
+--------------------+ | Database | +--------------------+ | information_schema | | demo | | demodb | | exampledb | | mysql | | performance_schema | | test | | testdb | +--------------------+ 8 rows in set (0.00 sec)
Tại đây, cơ sở dữ liệu có tên “demodb” được tạo.
- Đối chiếu và Bộ ký tự
Đối chiếu là một tập hợp các quy tắc hữu ích để so sánh. Người ta có thể lưu trữ dữ liệu SQL bằng ngôn ngữ khác ngoài tiếng Anh. Để lưu trữ dữ liệu bằng một số ngôn ngữ khác, bạn cần chọn bộ ký tự cho ngôn ngữ cụ thể đó. Các cấp độ khác nhau của bộ ký tự bao gồm máy chủ, cơ sở dữ liệu, bảng và cột. Sau khi bộ ký tự được chọn, thì chỉ các quy tắc đối chiếu mới có thể được chọn.
Ví dụ:
Chúng tôi sẽ tạo một cơ sở dữ liệu mới với tên “sample” có bộ ký tự là “latin1” và quy tắc đối chiếu là “latin1_swedish_ci”.
mysql> CREATE DATABASE IF NOT EXISTS sample CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Ở đây, cơ sở dữ liệu “mẫu” được tạo với latin1 làm bộ ký tự và latin1_swedish_ci làm quy tắc đối chiếu.