2011-09-21 45 views
31

Hầu hết các cơ sở dữ liệu SQL theo các tiêu chuẩn ANSI SQL đến một mức độ, nhưngDanh sách khác nhau giữa cơ sở dữ liệu SQL

  1. Tiêu chuẩn này không rõ ràng, để lại một số khu vực mở để giải thích (ví dụ: làm thế nào các hoạt động khác nhau với NULLs nên xử lý is ambiguous)

  2. một số nhà cung cấp mâu thuẫn với tiêu chuẩn hoàn toàn hoặc chỉ thiếu chức năng được xác định theo tiêu chuẩn (ví dụ như: MySQL có list of differences giữa tiêu chuẩn và thực hiện của họ)

  3. Một số cơ sở dữ liệu sẽ hoạt động khác nhau tùy thuộc vào cách chúng được cấu hình, nhưng cấu hình có thể được thay đổi để chúng hoạt động theo cùng một cách (ví dụ: Oracle thực hiện so sánh chuỗi trường hợp theo mặc định, trong khi SQL Server không phân biệt chữ hoa chữ thường)

  4. có một số chức năng mà không phải là một phần của tiêu chuẩn nhưng được thực hiện bởi RDBMS khác nhau dù sao, dù với tên gọi khác nhau (ví dụ như: Oracle LISTAGG = MySQL của GROUP_CONCAT)

có một tài nguyên với một toàn diện danh sách các quirks và gotchas để chú ý đến khi bạn đang cố gắng để viết cái gì đó được cho là tương thích với nhiều cơ sở dữ liệu?

+0

+1 câu hỏi có giá trị. Một điều cần lưu ý là bạn không chỉ gặp phải các vấn đề về khả năng tương thích, bạn cũng nên xem xét thử nghiệm các giải pháp của mình trên các RDBMS được hỗ trợ chính để đảm bảo rằng không có hiệu suất tối nghĩa và không có gì được nêu ra. Vào cuối ngày, bạn nên tự đề cập và nói nền tảng nào bạn hỗ trợ cụ thể trong khi nói rằng các nền tảng khác có thể được hỗ trợ sau này. – Seph

+0

Thật vậy, một câu hỏi có giá trị, thật không may, vẫn chưa được trả lời. – FDavidov

+1

Tôi thích tài liệu tham khảo nhanh OReilly SQL vì nó cho tôi thấy nhiều cú pháp và khác biệt giữa một số phương ngữ. Thật không may, đây là một mục tiêu chuyển động với chức năng mới và thay đổi bất cứ khi nào các phiên bản mới xuất hiện. Ngoài ra còn có http://sqlfiddle.com/ mà sẽ cho phép bạn thử một số phiên bản khác nhau của các máy chủ (oracle, mysql, ...) và thậm chí cả các phiên bản của một máy chủ đã cho (mysql 5.5 và 5.6). – argoc

Trả lời

1

Trừ của đã mentioned một số so sánh bạn có thể tìm thấy trong Wikipedia

Cũng câu hỏi tương tự đã được đăng tải trên Stackoverflow nơi bạn có thể vây một vài liên kết hữu ích.

Các vấn đề liên quan