Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lệnh thực thi mệnh đề / truy vấn MySQL

Việc thực thi các câu lệnh MySQL thực tế là một chút khó khăn. Tuy nhiên, tiêu chuẩn không chỉ định thứ tự diễn giải của các phần tử trong truy vấn. Về cơ bản, điều này theo thứ tự mà bạn chỉ định, mặc dù tôi nghĩ rằng HAVINGGROUP BY có thể đến sau SELECT :

  • FROM mệnh đề
  • WHERE mệnh đề
  • SELECT mệnh đề
  • GROUP BY mệnh đề
  • HAVING mệnh đề
  • ORDER BY mệnh đề

Điều này rất quan trọng để hiểu cách các truy vấn được phân tích cú pháp. Bạn không thể sử dụng bí danh cột được xác định trong SELECT trong WHERE chẳng hạn như mệnh đề vì WHERE được phân tích cú pháp trước SELECT . Mặt khác, bí danh như vậy có thể nằm trong ORDER BY mệnh đề.

Đối với việc thực thi thực tế, điều đó thực sự phụ thuộc vào trình tối ưu hóa. Ví dụ:

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

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

cả hai đều có tác dụng của ORDER BY hoàn toàn không được thực thi - và do đó không được thực thi sau GROUP BY (trong trường hợp đầu tiên, tác động là xóa sắp xếp khỏi GROUP BY và thứ hai, hiệu quả là không làm gì khác hơn là GROUP BY đã làm).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn thiết kế cơ sở dữ liệu cho RBAC trong MySQL

  2. Ngăn chặn tự động gia tăng trên chèn trùng lặp MySQL

  3. Làm cách nào để kết nối với Cơ sở dữ liệu MySQL bằng Python?

  4. Làm cách nào để đặt thời gian thực thi tối đa cho một truy vấn mysql?

  5. MySQL Replication:Các giao dịch sai sót trong bản sao dựa trên GTID