Klausa Fleksibel MySQL "GROUP BY": Pandangan Lebih Dekat
Tidak seperti sistem pangkalan data seperti Oracle dan SQL Server, MySQL menawarkan pendekatan yang lebih lembut untuk GROUP BY
klausa, membenarkan pertanyaan tanpa fungsi agregat. Fleksibiliti ini, sambil menyimpang daripada standard ANSI SQL, menawarkan kedua-dua kelebihan prestasi dan kemudahan pengguna yang dipertingkatkan.
Pengendalian MySQL terhadap GROUP BY
tanpa Agregat
Dalam pertanyaan seperti SELECT X, Y FROM someTable GROUP BY X
, MySQL memilih nilai arbitrari untuk Y
yang dikaitkan dengan setiap kumpulan X
. Tingkah laku ini berakar umbi dalam tafsiran MySQL yang termasuk Y
tanpa fungsi agregat atau klausa GROUP BY
pada Y
itu sendiri adalah berlebihan.
Alasan Di Sebalik Pilihan Reka Bentuk MySQL
Keputusan MySQL untuk membenarkan pertanyaan GROUP BY
jenis ini didorong oleh dua faktor utama:
Pematuhan SQL ANSI dan Justifikasi MySQL
Walaupun gelagat MySQL berbeza daripada standard ANSI SQL yang ketat (yang mewajibkan fungsi agregat atau pengelompokan oleh semua lajur bukan agregat), pembangun MySQL telah mewajarkan penyelewengan ini dengan mengutamakan prestasi dan kemudahan penggunaan untuk penggunanya. Potensi peningkatan prestasi dan pemudahan pertanyaan biasa mengatasi ketidakpatuhan piawaian ketat dalam banyak senario praktikal.
Atas ialah kandungan terperinci Mengapa MySQL Membenarkan Klausa GROUP BY Tanpa Fungsi Agregat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!