Hướng dẫn mysql set character set for database - mysql đặt bộ ký tự cho cơ sở dữ liệu

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 DATABASEALTER 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

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ả

    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    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ếu
    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    5 được sử dụng.

  • Nếu

    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    2 được chỉ định mà không có
    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    0, ký tự đặt
    CREATE 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ệnh
    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    9 hoặc truy vấn bảng
    USE db_name;
    SELECT @@character_set_database, @@collation_database;
    0
    USE db_name;
    SELECT @@character_set_database, @@collation_database;
    1.

  • Nếu

    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    3 được chỉ định mà không có CHARACTER SET, ký tự được liên kết với
    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    5 và đối chiếu
    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    5 được sử dụng.

  • Mặt khác [cả CHARACTER SET

    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    0 đều được chỉ định], bộ ký tự máy chủ và đối chiếu máy chủ được sử dụng.

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

    SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
    FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
    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ảng CHARACTER SET
    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    0 rõ ràng.

  • Đối với các câu lệnh

    SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
    FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
    5 bao gồm mệnh đề NO CHARACTER SET, máy chủ sử dụng bộ ký tự được biểu thị bởi biến hệ thống
    USE db_name;
    SELECT @@character_set_database, @@collation_database;
    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 đề
    SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
    FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
    8 rõ ràng.

  • Đố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

    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    0. Để ghi đè lên điều này, cung cấp rõ ràng CHARACTER SET
    CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
    0.


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.


Làm cách nào để thay đổi ký tự cơ sở dữ liệu được đặt trong MySQL?

Để thay đổi mã hóa bộ ký tự thành UTF-8 cho chính cơ sở dữ liệu, hãy nhập lệnh sau tại dấu nhắc MySQL>. Thay thế dbname bằng tên cơ sở dữ liệu: Sao chép thay đổi cơ sở dữ liệu DBNAME SETS SET UTF8 đối chiếu UTF8_General_CI; Để thoát khỏi chương trình MySQL, hãy nhập \ Q tại lời nhắc MySQL>.Copy ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci; To exit the mysql program, type \q at the mysql> prompt.

Làm cách nào để thay đổi bộ ký tự của cơ sở dữ liệu?

Tương tự, đây là lệnh thay đổi bộ ký tự của bảng MySQL từ Latin1 sang UTF8. Thay thế table_name bằng tên bảng cơ sở dữ liệu của bạn. mysql> thay đổi bảng bảng_name Chuyển đổi thành ký tự UTF8 Collate UTF8_UNICODE_CI; Hy vọng, hướng dẫn trên sẽ giúp bạn thay đổi ký tự cơ sở dữ liệu được đặt thành UTF8MB4 [UTF-8].mysql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; Hopefully, the above tutorial will help you change database character set to utf8mb4 [UTF-8].

Làm cách nào để tìm bộ ký tự của cơ sở dữ liệu MySQL?

Để 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: sử dụng db_name;Chọn @@ Charact_set_database, @@ collation_database;Ngoài ra, để hiển thị các giá trị mà không cần thay đổi cơ sở dữ liệu mặc định: chọn Default_character_set_name, default_collation_name từ Information_schema.USE db_name; SELECT @@character_set_database, @@collation_database; Alternatively, to display the values without changing the default database: SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.

Tôi nên sử dụng bộ ký tự MySQL nào?

Nếu bạn đang sử dụng MySQL 8.0, hệ thống ký tự mặc định là UTF8MB4.Nếu bạn chọn sử dụng UTF-8 làm đối chiếu của bạn, hãy luôn sử dụng UTF8MB4 [cụ thể là UTF8MB4_UNICODE_CI].Bạn không nên sử dụng UTF-8 vì UTF-8 của MySQL khác với mã hóa UTF-8 thích hợp.. If you elect to use UTF-8 as your collation, always use utf8mb4 [specifically utf8mb4_unicode_ci]. You should not use UTF-8 because MySQL's UTF-8 is different from proper UTF-8 encoding.

Bài Viết Liên Quan

Chủ Đề