MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Đặt Bộ ký tự và đối chiếu của bảng trong MariaDB

Bạn có thể chỉ định bộ ký tự và đối chiếu ở nhiều cấp độ khác nhau trong MariaDB. Bạn có thể chỉ định chúng ở cấp độ kết nối, cấp độ máy chủ, cấp độ cơ sở dữ liệu, cấp độ bảng và thậm chí cả cấp độ cột.

Bạn cũng có thể chỉ định một đối chiếu trong các truy vấn của mình để nó ghi đè bất kỳ đối chiếu nào đã được chỉ định trước đó ở các cấp nói trên.

Để đặt bộ ký tự và đối chiếu ở cấp bảng, hãy sử dụng CREATE TABLE câu lệnh hoặc ALTER TABLE câu lệnh (tùy thuộc vào việc bạn đang tạo bảng hay sửa đổi nó).

Khi tạo bảng

Dưới đây là một ví dụ về cách đặt đối chiếu và bộ ký tự khi tạo bảng:

CREATE TABLE Products ( 
    ProductId CHAR(10), 
    ProductName VARCHAR(255) NOT NULL, 
    PRIMARY KEY (ProductId)) 
    CHARACTER SET latin1 
    COLLATE latin1_general_ci;

Điều đó tạo ra một bảng có tên là Products với latin1 bộ ký tự và đối chiếu của latin1_general_ci .

Thay đổi một bảng hiện có

Dưới đây là một ví dụ về việc thay đổi đối chiếu và bộ ký tự trên bảng hiện có:

ALTER TABLE Products 
CONVERT TO CHARACTER SET utf8 COLLATE utf8_spanish_ci;

Bây giờ nó sử dụng đối chiếu và bộ ký tự mới.

Cũng có thể bỏ qua CONVERT TO phần:

ALTER TABLE Products 
CHARACTER SET utf8 
COLLATE utf8_spanish_ci;

Đối chiếu phải hợp lệ cho bộ ký tự

Khi đặt cả đối chiếu và bộ ký tự, bạn cần đảm bảo rằng đối chiếu hợp lệ cho bộ ký tự đã chọn và ngược lại. Nếu không, lỗi sẽ được trả về.

Dưới đây là một ví dụ về việc chỉ định bằng cách sử dụng đối chiếu không hợp lệ cho bộ ký tự được chỉ định:

ALTER TABLE Products 
CHARACTER SET latin1 
COLLATE utf8_spanish_ci;

Kết quả:

ERROR 1253 (42000): COLLATION 'utf8_spanish_ci' is not valid for CHARACTER SET 'latin1'

Nó cho chúng ta biết rằng đối chiếu đã chọn của chúng ta không hợp lệ cho bộ ký tự được chỉ định đã chọn của chúng ta.

Xem Danh sách đầy đủ các ảnh ghép được MariaDB hỗ trợ hoặc Danh sách đầy đủ các bộ ký tự được MariaDB hỗ trợ để biết danh sách các ảnh ghép và bộ ký tự phù hợp.

Chỉ chỉ định đối chiếu hoặc bộ ký tự

Bạn có thể chỉ định đối chiếu hoặc chỉ bộ ký tự (hoặc không):

  • Nếu chỉ có bộ ký tự được cung cấp, đối chiếu mặc định cho bộ ký tự đó sẽ được sử dụng.
  • Nếu chỉ cung cấp đối chiếu, bộ ký tự được liên kết sẽ được sử dụng.
  • Nếu cả đối chiếu và bộ ký tự đều không được cung cấp, bảng mặc định sẽ được sử dụng.

Chuyển đổi sang Bộ ký tự yêu cầu nhiều byte hơn

Đối với VARCHAR hoặc TEXT cột, CONVERT TO CHARACTER SET thay đổi kiểu dữ liệu nếu được yêu cầu để đảm bảo rằng cột mới đủ dài để lưu trữ nhiều ký tự như cột ban đầu.

Ví dụ, một ascii TEXT cột yêu cầu một byte cho mỗi ký tự, vì vậy cột có thể chứa tối đa 65.535 ký tự. Nếu cột được chuyển đổi thành utf8, có thể yêu cầu tối đa 3 byte cho mỗi ký tự, vì vậy cột sẽ được chuyển đổi thành MEDIUMTEXT (có độ dài tối đa là 16,777,215) để có thể chứa cùng một số ký tự.

Nếu bạn không muốn những thay đổi kiểu dữ liệu như vậy diễn ra, hãy sử dụng MODIFY trên các cột riêng lẻ thay vào đó.

Ví dụ:

ALTER TABLE Products 
MODIFY ProductName VARCHAR(255) 
CHARACTER SET utf8; 

Chuyển đổi sang Binary

CONVERT TO CHARACTER SET binary sẽ chuyển đổi CHAR , VARCHARTEXT cột thành BINARY , VARBINARYBLOB tương ứng.

Khi điều này đã được thực hiện, các cột như vậy sẽ không còn bộ ký tự nữa. Ngoài ra, chúng sẽ không còn bị ảnh hưởng bởi CONVERT TO CHARACTER SET trong tương lai tuyên bố.

Kiểm tra đối chiếu và bộ ký tự trong MariaDB

Có nhiều cách khác nhau để kiểm tra đối chiếu và bộ ký tự trong MariaDB, tùy thuộc vào cấp độ mà bạn đang kiểm tra (máy chủ, cơ sở dữ liệu, bảng, cột, kết nối, v.v.). Xem Hiển thị đối chiếu trong MariaDB để biết các ví dụ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lập kế hoạch dung lượng cho MySQL và MariaDB - Kích thước bộ nhớ

  2. MariaDB JSON_CONTAINS_PATH () Giải thích

  3. Cách cài đặt và bảo mật MariaDB trên Debian 9

  4. Cách đạt được Tuân thủ PCI cho MySQL &MariaDB với ClusterControl - Phát lại

  5. Cách cài đặt và bảo mật MariaDB trên CentOS 8