Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle db Bergabung vs DARI a,b,c

Tidak. Oracle, seperti database relasional lainnya yang masuk akal, lebih efisien saat Anda melakukan operasi berbasis set dan saat Anda melakukan penggabungan daripada meniru gabungan secara prosedural (dengan, katakanlah, loop kursor bersarang).

Dugaan saya, bagaimanapun, adalah bahwa Anda tidak benar-benar berbicara tentang kode yang tidak memiliki gabungan. Dugaan saya adalah Anda berbicara tentang kode yang menggunakan sintaks gabungan yang berbeda dari yang biasa Anda gunakan. Keduanya

SELECT a.*
  FROM a
       JOIN b ON (a.a_id = b.a_id)
       JOIN c ON (b.b_id = c.b_id)

dan

SELECT a.*
  FROM a,
       b,
       c
 WHERE a.a_id = b.a_id
   AND b.b_id = c.b_id

adalah kueri yang bergabung dengan a ke b ke c . Kedua kueri tersebut persis sama -- parser Oracle sebenarnya akan secara internal menulis ulang kueri pertama menjadi kueri kedua. Satu-satunya perbedaan adalah bahwa kueri pertama menggunakan sintaks SQL 99 yang lebih baru untuk menentukan gabungannya.

Secara historis, Oracle relatif terlambat untuk mengadopsi sintaks SQL 99, ada sejumlah besar kode yang ditulis sebelum sintaks SQL 99 tersedia, dan beberapa orang Oracle lebih memilih sintaks gaya lama karena kebiasaan jika tidak ada yang lain. Untuk semua alasan itu, relatif umum untuk menemukan proyek berbasis Oracle menggunakan sintaks join yang lebih lama secara eksklusif. Tidak ada yang salah dengan itu (meskipun saya pribadi lebih suka sintaks yang lebih baru).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengecualian format Tanggal Oracle di Layanan Pelaporan SQL Server

  2. Klien Oracle dan komponen jaringan tidak ditemukan

  3. Perilaku aneh dengan kursor bersarang Oracle

  4. Oracle SQL:Memilih data dan nama partisi dari tabel dan memotong partisi

  5. Contoh Fungsi Oracle Pipelined