Đối chiếu có nghĩa là gì trong SQL và nó làm gì?
Đối chiếu có nghĩa là gì trong SQL và nó làm gì?
Câu trả lời:
Đối chiếu có thể được nghĩ đơn giản là sắp xếp thứ tự.
Trong tiếng Anh (và đó là anh em họ lạ, người Mỹ), đối chiếu có thể là một vấn đề khá đơn giản bao gồm việc đặt hàng theo mã ASCII.
Khi bạn đã có được những ngôn ngữ châu Âu kỳ lạ đó với tất cả các điểm nhấn và các tính năng khác, các đối chiếu sẽ thay đổi. Ví dụ, mặc dù các hình thức có dấu khác nhau có a
thể tồn tại ở các điểm mã khác nhau, tất cả chúng có thể cần được sắp xếp như thể chúng là cùng một chữ cái.
e
, ë
, é
, ě
, và è
có thể được chữ riêng biệt cho các mục đích của trật tự (nhưng có thể cùng một lá thư khi tìm kiếm, chết tiệt những điên người châu Âu;)).
42
các chữ cái, 15
trong số chúng có dấu phụ?
where st= 'aaa'
?
Bên cạnh "các chữ cái có dấu được sắp xếp khác với các chữ cái không có dấu" trong một số ngôn ngữ Tây Âu, bạn phải tính đến các nhóm chữ cái đôi khi cũng được sắp xếp khác nhau.
Theo truyền thống, trong tiếng Tây Ban Nha, "ch" được coi là một chữ cái theo đúng nghĩa của nó, giống với "ll" (cả hai đều đại diện cho một âm vị duy nhất), vì vậy một danh sách sẽ được sắp xếp như sau:
Thông báo tất cả các từ bắt đầu bằng single c đi cùng nhau, ngoại trừ từ bắt đầu bằng ch mà đi sau họ, cùng với ll -starting lời mà đi sau khi tất cả các từ bắt đầu bằng một đơn l . Đây là thứ tự bạn sẽ thấy trong các từ điển và bách khoa toàn thư cũ, đôi khi thậm chí ngày nay bởi các tổ chức rất bảo thủ.
Học viện Ngôn ngữ Hoàng gia đã thay đổi điều này để giúp tiếng Tây Ban Nha dễ dàng hơn trong thế giới điện toán. Tuy nhiên, ñ vẫn được coi là một chữ cái khác với n và đi sau nó, và trước o . Vì vậy, đây là một danh sách được sắp xếp chính xác:
Bằng cách chọn đối chiếu chính xác, bạn sẽ tự động hoàn thành tất cả việc này cho mình :-)
Các quy tắc cho biết cách so sánh và sắp xếp các chuỗi: thứ tự chữ cái; cho dù trường hợp quan trọng, cho dù diacritics vấn đề vv
Ví dụ: nếu bạn muốn tất cả các chữ cái khác nhau (giả sử, nếu bạn lưu tên tệp vào UNIX
), bạn sử dụng UTF8_BIN
đối chiếu:
SELECT 'A' COLLATE UTF8_BIN = 'a' COLLATE UTF8_BIN
---
0
Nếu bạn muốn bỏ qua các khác biệt về trường hợp và dấu phụ (giả sử đối với công cụ tìm kiếm), bạn sử dụng UTF8_GENERAL_CI
đối chiếu:
SELECT 'A' COLLATE UTF8_GENERAL_CI = 'ä' COLLATE UTF8_GENERAL_CI
---
1
Như bạn có thể thấy, đối chiếu này (quy tắc so sánh) xem xét vốn A
và lowecase ä
cùng một chữ cái, bỏ qua các trường hợp khác nhau và dấu phụ.
Collation xác định cách bạn sắp xếp và so sánh các giá trị chuỗi
Ví dụ, nó định nghĩa cách đối phó
äàa
vv)Aa
)cote < côte < coté < côté.
cote < coté < côte < côté
Đối chiếu có nghĩa là gán một số thứ tự cho các ký tự trong Bảng chữ cái, giả sử, ASCII hoặc Unicode, v.v.
Giả sử bạn có 3 ký tự trong bảng chữ cái - {A, B, C}. Bạn có thể xác định một số đối chiếu mẫu cho nó bằng cách gán các giá trị tích phân cho các ký tự
Như một vấn đề thực tế, bạn có thể định nghĩa n! đối chiếu trên Bảng chữ cái kích thước n. Đưa ra một thứ tự như vậy, các thói quen sắp xếp khác nhau như sắp xếp chuỗi LSD / MSD sử dụng nó để sắp xếp các chuỗi.
Tham chiếu được lấy từ Điều này: Đối chiếu là một bộ quy tắc để so sánh các ký tự trong một bộ ký tự. Nó cũng đã được cai trị để sắp xếp các ký tự và thứ tự đúng của hai ký tự khác nhau tùy theo ngôn ngữ. Một Collation so sánh hai chuỗi như, nếu một từ lớn hơn một chuỗi khác và sắp xếp tương ứng.
Nếu bạn đang sử dụng bộ Ký tự Latin latin1, bạn có thể sử dụng Bộ sưu tập Latin latin1_swbur_ci.
Bạn phải chọn đối chiếu đúng vì đối chiếu sai có thể ảnh hưởng đến hiệu suất cơ sở dữ liệu của bạn.
http://en.wikipedia.org/wiki/Collation
Đối chiếu là tập hợp các thông tin bằng văn bản thành một thứ tự tiêu chuẩn. (...) Một thuật toán đối chiếu, chẳng hạn như thuật toán đối chiếu Unicode xác định một thứ tự thông qua quá trình so sánh hai chuỗi ký tự đã cho và quyết định cái nào sẽ đi trước cái kia.