Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về bộ ký tự MySQL. Sau phần hướng dẫn, bạn sẽ biết cách lấy tất cả các bộ ký tự trong MySQL, cách chuyển đổi chuỗi giữa các bộ ký tự và cách định cấu hình bộ ký tự thích hợp cho kết nối máy khách Giới thiệu về bộ ký tự MySQLBộ ký tự MySQL là một bộ ký tự hợp lệ trong một chuỗi. Ví dụ: chúng ta có một bảng chữ cái với các chữ cái từ SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 0 đến z. Chúng tôi gán cho mỗi chữ cái một số, ví dụ: SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 1, SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 2, v.v. Chữ cái SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 0 là ký hiệu và số SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 4 liên kết với chữ cái SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 0 là mã hóa. Sự kết hợp của tất cả các chữ cái từ a đến z và mã hóa tương ứng của chúng là một bộ ký tự. Mỗi bộ ký tự có một hoặc nhiều đối chiếu xác định một bộ quy tắc để so sánh các ký tự trong bộ ký tự. Hãy xem hướng dẫn đối chiếu MySQL để tìm hiểu về các đối chiếu trong MySQL MySQL hỗ trợ các bộ ký tự khác nhau cho phép bạn lưu trữ hầu hết mọi ký tự trong một chuỗi. Để lấy tất cả các bộ ký tự có sẵn trong máy chủ cơ sở dữ liệu MySQL, bạn sử dụng câu lệnh SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 6 như sauSHOW CHARACTER SET; Code language: SQL (Structured Query Language) (sql)
Bộ ký tự mặc định trong MySQL là SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 7. Nếu bạn muốn lưu trữ các ký tự từ nhiều ngôn ngữ trong một cột, bạn có thể sử dụng bộ ký tự Unicode, đó là SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 hoặc SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 9Các giá trị trong cột SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 0 chỉ định số byte mà một ký tự trong bộ ký tự nắm giữ. Một số bộ ký tự chứa các ký tự byte đơn e. g. , SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 7 , SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 2 , SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 3 , v.v. , trong khi các bộ ký tự khác chứa các ký tự nhiều byteMySQL cung cấp hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 4 để lấy độ dài của chuỗi theo byte và hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 5 để lấy độ dài của chuỗi theo ký tự. Nếu một chuỗi chứa ký tự nhiều byte, thì kết quả của hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 4 lớn hơn kết quả của hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 7. Xem ví dụ sauSET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql)
Hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 chuyển đổi một chuỗi thành một bộ ký tự cụ thể. Trong ví dụ này, nó chuyển đổi bộ ký tự của chuỗi SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 9 thành SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 9. Bởi vì bộ ký tự SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 9 chứa các ký tự 2 byte, do đó độ dài của chuỗi SET @str = CONVERT('pingüino' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 2 tính theo byte lớn hơn độ dài tính theo ký tự của nó. Lưu ý rằng một số bộ ký tự chứa các ký tự nhiều byte, nhưng các chuỗi của chúng có thể chỉ chứa các ký tự một byte e. g. , SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 như thể hiện trong các tuyên bố sauSET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql)
Tuy nhiên, nếu chuỗi SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 chứa ký tự đặc biệt e. g. , SET @str = CONVERT('pingüino' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 5 trong chuỗi SET @str = CONVERT('pingüino' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 6; . SET @str = CONVERT('pingüino' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql)
Chuyển đổi giữa các bộ ký tự khác nhauMySQL cung cấp hai chức năng cho phép bạn chuyển đổi chuỗi giữa các bộ ký tự khác nhau. SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 và SET @str = CONVERT('pingüino' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8. Chúng tôi đã sử dụng hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 nhiều lần trong các ví dụ trênCú pháp của hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 như sauCONVERT(expression USING character_set_name) Code language: SQL (Structured Query Language) (sql)
Hàm SET @str = CONVERT('pingüino' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8 tương tự như hàm SET @str = CONVERT('MySQL Character Set' USING utf8);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8. Nó chuyển đổi một chuỗi thành một bộ ký tự khácCAST(string AS character_type CHARACTER SET character_set_name) Code language: SQL (Structured Query Language) (sql)
Hãy xem ví dụ sau về cách sử dụng hàm CONVERT(expression USING character_set_name) Code language: SQL (Structured Query Language) (sql) 3SELECT CAST(_latin1'MySQL character set' AS CHAR CHARACTER SET utf8); Code language: SQL (Structured Query Language) (sql)
Đặt bộ ký tự cho kết nối máy kháchKhi một ứng dụng trao đổi dữ liệu với máy chủ cơ sở dữ liệu MySQL, bộ ký tự mặc định là SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 7. Tuy nhiên, nếu cơ sở dữ liệu lưu trữ các chuỗi Unicode trong bộ ký tự SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8, thì việc sử dụng bộ ký tự SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 7 trong ứng dụng sẽ không đủ. Do đó, ứng dụng cần chỉ định bộ ký tự phù hợp khi kết nối với máy chủ cơ sở dữ liệu MySQLĐể cấu hình bộ ký tự cho kết nối máy khách, bạn có thể thực hiện một trong các cách sau - Đưa ra câu lệnh
CONVERT(expression USING character_set_name) Code language: SQL (Structured Query Language) (sql) 7 sau khi máy khách kết nối với máy chủ cơ sở dữ liệu MySQL. Ví dụ: để đặt bộ ký tự Unicode SET @str = CONVERT('MySQL Character Set' USING ucs2);
SELECT LENGTH(@str), CHAR_LENGTH(@str); Code language: SQL (Structured Query Language) (sql) 8, bạn sử dụng câu lệnh sau
SET NAMES 'utf8'; Code language: SQL (Structured Query Language) (sql)
[mysql]
default-character-set=utf8 Code language: JavaScript (javascript)
- Một số trình kết nối MySQL cho phép bạn đặt bộ ký tự, ví dụ: nếu bạn sử dụng PHP PDO, bạn có thể đặt bộ ký tự trong tên nguồn dữ liệu như sau
$dsn ="mysql:host=$host;dbname=$db;charset=utf8"; Code language: PHP (php)
Bất kể bạn sử dụng cách nào, hãy đảm bảo rằng bộ ký tự mà ứng dụng sử dụng khớp với bộ ký tự được lưu trữ trong máy chủ cơ sở dữ liệu MySQL Trong hướng dẫn này, bạn đã học về bộ ký tự MySQL, cách chuyển đổi chuỗi giữa các bộ ký tự và cách định cấu hình bộ ký tự thích hợp cho kết nối máy khách
Làm cách nào để thay đổi bộ ký tự cơ sở dữ liệu trong MySQL?
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 tên_bảng BẢNG CHUYỂN ĐỔI THÀNH BỘ KÝ TỰ utf8 COLLATE utf8_unicode_ci ; .
Bộ ký tự trong cơ sở dữ liệu MySQL là gì?
Một bộ ký tự trong MySQL là một bộ ký tự, mã hóa và ký hiệu hợp lệ trong một chuỗi . Bài viết này giải thích cách chúng tôi có thể lấy tất cả các bộ ký tự trong MySQL, cách chúng tôi có thể định cấu hình các bộ ký tự thích hợp cho kết nối máy khách và cách chúng tôi có thể chuyển đổi chuỗi giữa nhiều bộ ký tự.
Bộ ký tự cơ sở dữ liệu là gì?
Bộ ký tự là tập hợp các ký hiệu và mã hóa . Đối chiếu là một bộ quy tắc để so sánh các ký tự trong một bộ ký tự. |