Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan MySQL / urutan eksekusi klausa

Eksekusi sebenarnya dari pernyataan MySQL agak rumit. Namun, standar tidak menentukan urutan interpretasi elemen dalam kueri. Ini pada dasarnya dalam urutan yang Anda tentukan, meskipun menurut saya HAVING dan GROUP BY bisa muncul setelah SELECT :

  • FROM klausa
  • WHERE klausa
  • SELECT klausa
  • GROUP BY klausa
  • HAVING klausa
  • ORDER BY klausa

Ini penting untuk memahami bagaimana kueri diuraikan. Anda tidak dapat menggunakan alias kolom yang ditentukan dalam SELECT di WHERE klausa, misalnya, karena WHERE diuraikan sebelum SELECT . Di sisi lain, alias seperti itu dapat berada di ORDER BY klausa.

Adapun eksekusi aktual, itu benar-benar diserahkan kepada pengoptimal. Misalnya:

. . .
GROUP BY a, b, c
ORDER BY NULL

dan

. . .
GROUP BY a, b, c
ORDER BY a, b, c

keduanya memiliki efek ORDER BY tidak dieksekusi sama sekali -- jadi tidak dieksekusi setelah GROUP BY (dalam kasus pertama, efeknya adalah menghapus pengurutan dari GROUP BY dan yang kedua efeknya tidak lebih dari GROUP BY sudah melakukannya).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengonversi String ke Heksadesimal di MySQL – HEX()

  2. SET NAMA utf8 di MySQL?

  3. Kesalahan:Klien tidak mendukung protokol otentikasi yang diminta oleh server; pertimbangkan untuk memutakhirkan klien MySQL

  4. Apa itu Skema Basis Data?

  5. mysql -> masukkan ke tbl (pilih dari tabel lain) dan beberapa nilai default