10.3.3 & NBSP; Bộ và đối chiếu ký tự cơ sở dữ liệu
Mỗi cơ sở dữ liệu đều có bộ ký tự cơ sở dữ liệu và đối chiếu cơ sở dữ liệu. Các câu lệnh CREATE DATABASE
và ALTER DATABASE
có các điều khoản tùy chọn để chỉ định bộ ký tự và đối chiếu ký tự cơ sở dữ liệu:
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
Từ khóa SCHEMA
có thể được sử dụng thay vì DATABASE
.
Các điều khoản CHARACTER SET
và
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
0 cho phép tạo cơ sở dữ liệu với các bộ ký tự và đối chiếu khác nhau trên cùng một máy chủ MySQL.Các tùy chọn cơ sở dữ liệu được lưu trữ trong từ điển dữ liệu và có thể được kiểm tra bằng cách kiểm tra bảng
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
1.Thí dụ:
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
MySQL chọn tập hợp ký tự cơ sở dữ liệu và đối chiếu cơ sở dữ liệu theo cách sau:
Nếu cả
2 vàCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
3 được chỉ định, Set ký tựCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
4 và đối chiếuCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
5 được sử dụng.CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Nếu
2 được chỉ định mà không cóCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
0, ký tự đặtCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
4 và đối chiếu mặc định của nó được sử dụng. Để xem đối chiếu mặc định cho mỗi bộ ký tự, hãy sử dụng câu lệnhCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
9 hoặc truy vấn bảngCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
0USE db_name; SELECT @@character_set_database, @@collation_database;
1.USE db_name; SELECT @@character_set_database, @@collation_database;
Nếu
3 được chỉ định mà không cóCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
CHARACTER SET
, ký tự được liên kết với
5 và đối chiếuCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
5 được sử dụng.CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Mặt khác [cả
CHARACTER SET
và
0 đều được chỉ định], bộ ký tự máy chủ và đối chiếu máy chủ được sử dụng.CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Bộ ký tự và đối chiếu cho cơ sở dữ liệu mặc định có thể được xác định từ các giá trị của các biến hệ thống
USE db_name;
SELECT @@character_set_database, @@collation_database;
8 và USE db_name;
SELECT @@character_set_database, @@collation_database;
9. Máy chủ đặt các biến này bất cứ khi nào cơ sở dữ liệu mặc định thay đổi. Nếu không có cơ sở dữ liệu mặc định, các biến có cùng giá trị với các biến hệ thống cấp độ máy chủ tương ứng, SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
0 và SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
1.Để xem bộ ký tự mặc định và đối chiếu cho một cơ sở dữ liệu đã cho, hãy sử dụng các câu lệnh này:
USE db_name;
SELECT @@character_set_database, @@collation_database;
Ngoài ra, để hiển thị các giá trị mà không thay đổi cơ sở dữ liệu mặc định:
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
Bộ ký tự và đối chiếu ký tự cơ sở dữ liệu ảnh hưởng đến các khía cạnh của hoạt động máy chủ:
Đối với các câu lệnh
2, bộ ký tự và đối chiếu ký tự cơ sở dữ liệu được sử dụng làm giá trị mặc định cho các định nghĩa bảng nếu bộ ký tự và đối chiếu bảng không được chỉ định. Để ghi đè lên điều này, cung cấp các tùy chọn bảngSELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
CHARACTER SET
và
0 rõ ràng.CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Đối với các câu lệnh
5 bao gồm mệnh đề NOSELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
CHARACTER SET
, máy chủ sử dụng bộ ký tự được biểu thị bởi biến hệ thống
8 để giải thích thông tin trong tệp. Để ghi đè lên điều này, cung cấp một mệnh đềUSE db_name; SELECT @@character_set_database, @@collation_database;
8 rõ ràng.SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
Đối với các thói quen được lưu trữ [quy trình và chức năng], bộ ký tự cơ sở dữ liệu có hiệu lực tại thời gian tạo thông thường được sử dụng làm bộ ký tự và đối chiếu các tham số dữ liệu ký tự mà khai báo không bao gồm
CHARACTER SET
hoặc thuộc tính
0. Để ghi đè lên điều này, cung cấp rõ ràngCREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
CHARACTER SET
và
0.CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
MySQL bao gồm hỗ trợ bộ ký tự cho phép bạn lưu trữ dữ liệu bằng cách sử dụng nhiều bộ ký tự và thực hiện so sánh theo một loạt các đối chiếu. Bộ và đối chiếu ký tự máy chủ MySQL mặc định là
SET NAMES 'utf8mb4';
3 và SET NAMES 'utf8mb4';
4, nhưng bạn có thể chỉ định các bộ ký tự tại các cấp độ máy chủ, cơ sở dữ liệu, bảng, cột và chuỗi.Chương này thảo luận về các chủ đề sau:
Bộ nhân vật và đối chiếu là gì?
Hệ thống mặc định đa cấp cho gán bộ ký tự.
Cú pháp để chỉ định bộ ký tự và đối chiếu.
Các chức năng và hoạt động bị ảnh hưởng.
Hỗ trợ Unicode.
Các bộ ký tự và các bộ cộng đồng có sẵn, với các ghi chú.
Chọn ngôn ngữ cho thông báo lỗi.
Chọn địa điểm cho tên ngày và tháng.
Các vấn đề về bộ ký tự không chỉ ảnh hưởng đến việc lưu trữ dữ liệu, mà còn giao tiếp giữa các chương trình khách hàng và máy chủ MySQL. Nếu bạn muốn chương trình máy khách giao tiếp với máy chủ bằng cách sử dụng một ký tự khác với mặc định, bạn sẽ cần chỉ ra chương trình nào. Ví dụ: để sử dụng bộ ký tự Unicode
SET NAMES 'utf8mb4';
3, hãy đưa ra câu lệnh này sau khi kết nối với máy chủ:SET NAMES 'utf8mb4';
Để biết thêm thông tin về việc định cấu hình các bộ ký tự để sử dụng ứng dụng và các vấn đề liên quan đến ký tự trong giao tiếp máy khách/máy chủ, xem Phần & NBSP; 10.5, Cấu hình ký tự ứng dụng Set và Collation, và Phần & NBSP; 10.4, Bộ ký tự kết nối và đối chiếu.