Jawaban:
Saya pikir Anda mencoba untuk hidup di dunia mimpi Joe Celko di mana Anda hanya dapat menggunakan SQL standar dan dalam setiap minggu Anda mungkin harus mem-port semua kode Anda dari SQL Server ke Oracle dan kemudian Oracle ke DB2 dan kemudian kembali ke SQL Server lagi . Dua kali.
Sementara aspek-aspek inti dan mendasar dari SQL standar akan membantu Anda di mana saja, mencoba membatasi diri pada rangkaian bahasa tersebut karena takut porting di masa depan (atau hanya pada prinsipnya) bukan jalan yang saya sarankan. Secara pribadi, saya tetap berpegang pada hal-hal standar ANSI ketika saya bisa (mis. <> Vs.! =, COALESCE vs. ISNULL, CURRENT_TIMESTAMP vs. GETDATE (), dll.), Tapi saya juga tidak takut menggunakan SQL Server-specific hal-hal yang membuat pekerjaan saya lebih mudah.
Penting untuk memahami bagaimana SQL bekerja secara umum; sama pentingnya untuk memahami cara kerja bahasa dalam RDBMS Anda - termasuk penyimpangan dari standar, penyimpangan dari cara RDBMS lain mungkin menerapkan konsep yang sama, dan ekstensi kepemilikan yang tidak ada di tempat lain.
SQL Server, sebagai contoh, mencakup sebagian standar, dan semakin mendekati kepatuhan penuh pada setiap versi baru. Apakah ini akan mencakup 100%? Sangat meragukan. Apakah ini akan terus menambahkan ekstensi milik tidak dalam standar? Pasti. Jika semua orang membahas standar dan tidak ada yang melangkah keluar, maka tidak akan ada keuntungan untuk memilih satu platform di atas yang lain, dan kita semua akan menggunakan hal yang sama.
Tidak satupun dari mereka. Anda dapat mempelajari SQL standar (-ish) untuk RDBMS apa pun.
SQL standar tidak digunakan di dunia nyata untuk membayar pekerjaan pada proyek yang berhasil ...
Mengatakan itu, MySQL adalah tempat yang baik untuk memulai dan ini adalah tutorial
constructive guidance
sangat munafik. Di mana panduan konstruktif Anda di sini bagi gbn untuk meningkatkan jawabannya?
Semua RDBMS utama mendukung versi spesifikasi SQL yang berbeda untuk derajat yang berbeda, dengan versi spesifikasi yang lebih lama lebih didukung sepenuhnya. Tidak semua menganggap kesesuaian sama seriusnya (misalnya, Oracle mulai mendukung 'ansi joins' pada tahun 2001, hampir satu dekade setelah SQL-92 ), dan seperti yang sudah dikatakan @gbn, dalam praktiknya Anda perlu mengetahui rasa SQL yang digunakan oleh setiap produk Kau gunakan.
Postgres adalah pengecualian karena "membanggakan diri dalam kepatuhan standar" . Untuk "tujuan pembelajaran dan referensi", Anda memerlukan praktik langsung dengan database, bukan hanya pengetahuan dari buku atau standar, dan postgres adalah platform yang ideal untuk mempelajari tali dengan karena:
Setuju dengan Jack dan gbn, tidak ada standar dan Anda harus membuat pilihan. Untuk membuat pilihan ini, Anda harus memilih RDBMS terlebih dahulu. Saya akan merekomendasikan untuk memikirkan hal-hal berikut: 1) apakah Anda ingin menjadi DB-developer atau DBA? 2) Sistem operasi apa yang ingin Anda gunakan? Saya setuju, pertanyaan ini sedikit aneh, tetapi ketika saya berbicara dengan siswa, mereka mengatakan itu penting.
Misalnya (hanya contoh, mungkin saya salah) jika Anda ingin menjadi DBA dan tidak ingin bekerja dengan Windows, Anda tidak perlu memikirkan MSSQL. Dan jika Anda ingin menjadi DBA dan Anda ingin bekerja dengan perintah-string dan file konfigurasi - mungkin Oracle adalah yang Anda butuhkan. Jika Anda ingin menjadi pengembang ingin menggunakan pengetahuan Anda dalam proyek-proyek lepas, mungkin Anda perlu MySQL?