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

Tôi không hiểu đối chiếu? (Mysql, RDBMS, Bộ ký tự)

Điểm chính của đối chiếu cơ sở dữ liệu là xác định cách dữ liệu được sắp xếp và so sánh.

Độ phân biệt chữ hoa chữ thường của so sánh chuỗi

SELECT "New York" = "NEW YORK";` 

sẽ trả về true cho một đối chiếu không phân biệt chữ hoa chữ thường; false cho một phân biệt chữ hoa chữ thường.

Đối chiếu nào có thể được cho biết bởi _ci_cs hậu tố trong tên của đối chiếu. _bin đối chiếu thực hiện so sánh nhị phân (các chuỗi phải giống nhau 100%).

So sánh âm sắc / ký tự có dấu

đối chiếu cũng xác định xem các ký tự có dấu có được coi là đối tác cơ sở Latin của chúng trong so sánh chuỗi hay không.

SELECT "Düsseldorf" =  "Dusseldorf";
SELECT "Èclair" =      "Eclair";

sẽ trả về true trong trường hợp cũ; sai trong cái sau. Bạn sẽ cần đọc mô tả của từng đối chiếu để tìm ra mô tả nào.

Sắp xếp chuỗi

Sự đối chiếu ảnh hưởng đến cách sắp xếp các chuỗi.

Ví dụ:

  • Umlauts Ä Ö Ü nằm ở cuối bảng chữ cái trong bảng chữ cái Phần Lan / Thụy Điển latin1_swedish_ci

  • chúng được coi là A O U trong phân loại DIN-1 của Đức (latin_german1_ci )

  • và dưới dạng AE OE UE trong phân loại DIN-2 của Đức (latin_german2_ci ). (sắp xếp "danh bạ")

  • Bằng latin1_spanish_ci , "ñ" (n-dấu ngã) là một ký tự riêng biệt giữa "n" và "o".

Các quy tắc này sẽ dẫn đến các thứ tự sắp xếp khác nhau khi các ký tự không phải latin được sử dụng.

Sử dụng đối chiếu trong thời gian chạy

Bạn phải chọn một đối chiếu cho bảng và các cột của mình, nhưng nếu bạn không bận tâm đến hiệu suất, bạn có thể buộc các hoạt động cơ sở dữ liệu vào một đối chiếu nhất định trong thời gian chạy bằng cách sử dụng COLLATE từ khóa.

Thao tác này sẽ sắp xếp table theo tên name sử dụng quy tắc sắp xếp DIN-2 của Đức:

SELECT name
FROM table
ORDER BY name COLLATE latin1_german2_ci;

Sử dụng COLLATE trong thời gian chạy sẽ có ý nghĩa về hiệu suất, vì mỗi cột phải được chuyển đổi trong quá trình truy vấn. Vì vậy, hãy suy nghĩ kỹ trước khi áp dụng điều này làm tập dữ liệu lớn.

Tham khảo MySQL:

  • Bộ ký tự và cụm từ mà MySQL hỗ trợ
  • Ví dụ về Hiệu ứng của Sự đối chiếu
  • Vấn đề đối chiếu


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm BIN_TO_NUM () trong Oracle

  2. Sự chênh lệch ngày tháng trong Oracle để lấy số năm

  3. Loại bỏ tiêu đề cột vào tệp văn bản đầu ra

  4. Cách thêm chỉ báo Meridiem (AM / PM) vào giá trị thời gian trong Oracle

  5. Cách tìm các hàng bị khóa trong Oracle