2011-09-02 63 views
31

Tôi là một nhà phát triển phần mềm. Tôi đã sử dụng mysql trong nhiều năm và bây giờ tôi sắp có cuộc gặp gỡ đầu tiên với oracle trong một dự án.Sự khác biệt chính giữa phương thức mysql và oracle sql là gì?

Tôi vừa được thông báo rằng tôi nên cẩn thận khi sql hoạt động hoàn toàn khác trong một số trường hợp. Tôi không biết nên kỳ vọng điều gì. Tôi chủ yếu là tìm kiếm những thứ rõ ràng và những lỗi mới bắt đầu điển hình.

Ví dụ: tôi được thông báo rằng oracle không tăng tự động.

Đó là loại nội dung tôi đang tìm kiếm. Tôi sẽ biết ơn vì bất kỳ kiến ​​thức nào khác giúp tránh tạo ra các giải pháp mới cho các vấn đề đã được giải quyết.

+0

+1 để trở thành chủ đề. – Johan

Trả lời

29

Dưới đây là một liên kết với tất cả sự khác biệt giữa Oracle và MySQL, từ công ty sở hữu cả :-)

Hãy cẩn thận khi googling, có rất nhiều thông tin lỗi thời trên mạng. Bỏ qua bất cứ thứ gì cũ hơn 3 năm.

+1

+1 để tham khảo chế độ xem của ngựa ;-) – DCookie

+0

oh Tôi chưa bao giờ tìm thấy tài liệu đầu tiên. Tôi đã nhìn vào trang của họ nhưng chỉ tìm thấy so sánh hiệu suất mà tôi không quan tâm nhưng tôi nghĩ rằng bảng 2.1 trên liên kết oracle đó là những gì tôi đang tìm kiếm! cảm ơn – Yashima

+0

Tôi tự hỏi liệu có bất kỳ loại hợp nhất nào trong kế hoạch của Oracle hay không. Tôi nghĩ thật ngớ ngẩn khi có hai sản phẩm liên quan với rất nhiều điều không tương thích bề ngoài. Có khả năng tương thích tốt hơn thậm chí sẽ có lợi cho Oracle nếu nó dễ dàng chuyển đổi từ giá rẻ sang sản phẩm đắt tiền: -D – marcus

4

Ví dụ: tôi được thông báo rằng oracle không tăng tự động.

Oracle có trình tự; nó chỉ là một ký hiệu khác. Ý tưởng về một giá trị cột được tự động tăng lên trên INSERT chắc chắn là ở đó.

Oracle sẽ cho phép bạn thêm khóa chính và khóa ngoài dưới dạng ràng buộc, tách biệt với định nghĩa bảng.

PostgreSQL là điều gần gũi nhất với Oracle trong số các cơ sở dữ liệu nguồn mở. Nó cũng có các chuỗi.

+0

cảm ơn, vì vậy tôi có thể tạo tự động tăng theo cách khác tốt. đến nỗi xấu hổ lớn của tôi, tôi phải thừa nhận cho đến nay tôi chỉ thấy một chút nhỏ của sybase bên cạnh mysql – Yashima

+4

@duffymo, bạn có thể xác định ràng buộc và PK trong định nghĩa bảng nếu bạn muốn. Xem định nghĩa ràng buộc nội tuyến tại đây: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#sthref7519 – DCookie

-1

Việc tạo nhóm là một sự khác biệt lớn, vì MySQL có cách giải thích nhóm không chuẩn của riêng nó. Vì vậy, nếu bạn đang sử dụng rất nhiều nhóm thông minh, bạn có thể thấy rằng Oracle sẽ không thực hiện truy vấn của bạn.

http://dev.mysql.com/doc/refman/5.6/en/group-by-hidden-columns.html

+0

Nếu bạn muốn thử nghiệm hành vi nhóm giống như Oracle trong MySQL cũ tốt, hãy bật Chế độ 'only_full_group_by' xem: http://dev.mysql.com/doc/refman/5.6/en/server-sql-mode.html#sqlmode_only_full_group_by – Johan

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