Câu trả lời:
Tôi nghĩ rằng bạn đang cố gắng sống trong thế giới mơ ước của Joe Celko, nơi bạn chỉ có thể sử dụng SQL tiêu chuẩn và trong bất kỳ tuần nào bạn có thể phải chuyển tất cả mã của mình từ SQL Server sang Oracle và sau đó trở lại SQL Server và sau đó quay lại SQL Server . Hai lần.
Mặc dù các khía cạnh cốt lõi và cơ bản của SQL tiêu chuẩn sẽ giúp bạn ở bất cứ đâu, nhưng cố gắng giới hạn bản thân với bộ ngôn ngữ đó vì sợ chuyển tiếp trong tương lai (hoặc theo nguyên tắc) không phải là một con đường tôi khuyên dùng. Cá nhân, tôi tuân thủ các công cụ tiêu chuẩn ANSI khi tôi có thể (ví dụ <> vs.! =, COALESCE so với ISNULL, CURRENT_TIMESTAMP so với GETDATE (), v.v.), nhưng tôi cũng không ngại sử dụng SQL Server dành riêng cho máy chủ những thứ làm cho công việc của tôi dễ dàng hơn.
Điều quan trọng là phải hiểu cách SQL hoạt động nói chung; điều quan trọng không kém là phải hiểu cách ngôn ngữ hoạt động trong (các) RDBMS của bạn - bao gồm các sai lệch so với tiêu chuẩn, các sai lệch so với cách RDBMS khác có thể đã thực hiện cùng một khái niệm và các tiện ích mở rộng độc quyền không tồn tại ở nơi khác.
Ví dụ, SQL Server bao gồm một phần tốt của tiêu chuẩn và nó tiến gần hơn đến việc tuân thủ đầy đủ với từng phiên bản mới. Nó sẽ bao giờ bao gồm 100%? Nghi ngờ cao độ. Nó sẽ tiếp tục thêm các phần mở rộng độc quyền không có trong tiêu chuẩn? Chắc chắn rồi. Nếu mọi người đều tuân theo tiêu chuẩn và không ai bước ra ngoài tiêu chuẩn đó, thì sẽ không có lợi thế nào khi chọn một nền tảng này trên nền tảng khác và tất cả chúng ta đều đang sử dụng cùng một thứ.
Không một ai trong số họ. Bạn có thể học SQL (-ish) chuẩn cho bất kỳ RDBMS nào.
SQL chuẩn không được sử dụng trong thế giới thực để trả công cho các dự án thành công ...
Nói rằng, MySQL là một nơi tốt để bắt đầu và đây là một hướng dẫn
constructive guidance
vô cùng đạo đức giả. Đâu là hướng dẫn mang tính xây dựng của bạn ở đây để gbn cải thiện câu trả lời của anh ấy?
Tất cả các RDBMS chính đều hỗ trợ các phiên bản khác nhau của thông số SQL ở các mức độ khác nhau, với các phiên bản cũ hơn của thông số kỹ thuật được hỗ trợ đầy đủ hơn. Không phải tất cả đều tuân thủ nghiêm túc như nhau (ví dụ, Oracle bắt đầu hỗ trợ 'ansi tham gia' vào năm 2001, gần một thập kỷ sau SQL-92 ), và như @gbn đã nói, trong thực tế, bạn cần biết hương vị của SQL được sử dụng bởi mỗi sản phẩm bạn sử dụng.
Postgres là một ngoại lệ ở chỗ nó "tự hào về việc tuân thủ tiêu chuẩn" . Đối với "mục đích học tập và tham khảo", bạn cần thực hành thực hành với cơ sở dữ liệu, không chỉ là kiến thức từ một cuốn sách hoặc tiêu chuẩn, và postgres là một nền tảng lý tưởng để học các sợi dây vì:
Đồng ý với Jack và gbn, không có tiêu chuẩn và bạn cần phải đưa ra lựa chọn. Để đưa ra lựa chọn này, bạn cần chọn RDBMS trước. Tôi khuyên bạn nên suy nghĩ về những điều sau đây: 1) bạn có muốn trở thành nhà phát triển DB hoặc DBA không? 2) Bạn muốn làm việc với (các) hệ thống hoạt động nào? Tôi đồng ý, câu hỏi này hơi lạ, nhưng khi tôi nói chuyện với sinh viên, họ nói rằng nó rất quan trọng.
Ví dụ: (ví dụ, có thể tôi sai) nếu bạn muốn trở thành một DBA và không muốn làm việc với Windows, bạn không cần phải nghĩ về MSSQL. Và nếu bạn muốn trở thành DBA và bạn muốn làm việc với các chuỗi lệnh và tệp cấu hình - có lẽ Oracle là thứ bạn cần. Nếu bạn muốn trở thành nhà phát triển muốn sử dụng kiến thức của mình trong các dự án tự do, có lẽ bạn cần MySQL?