Hãy hiểu các khác biệt giữa MySQL và SQL chuẩn. MySQL thực hiện nhiều thao tác khác biệt trong một số trường hợp.
Quyền hạn (Privileges)
Nhiều khác biệt giữa MySQL và SQL chuẩn về quyền hạn người dùng. Trong MySQL, quyền hạn cho một bảng không tự động thu hồi khi bảng bị xóa. Cần câu lệnh REVOKE tường minh để thu hồi quyền.
Ràng buộc khóa ngoại (Foreign Key Constraints)
Cách triển khai khóa ngoại của MySQL khác với chuẩn SQL. Nếu có nhiều hàng trong bảng cha với cùng giá trị khóa tham chiếu, InnoDB kiểm tra khóa ngoại như thể các hàng cha khác với cùng giá trị khóa không tồn tại.
Ví dụ: Nếu ràng buộc kiểu RESTRICT được định nghĩa, và có hàng con tham chiếu đến nhiều hàng cha, InnoDB không cho phép xóa các hàng cha.
Trong câu lệnh SQL dùng INSERT, DELETE, hoặc UPDATE trên nhiều hàng, ràng buộc khóa ngoại (như ràng buộc duy nhất) được kiểm tra hàng theo hàng. Khi kiểm tra khóa ngoại, InnoDB đặt khóa cấp hàng chia sẻ trên bản ghi con hoặc cha cần kiểm tra.
MySQL yêu cầu các cột tham chiếu phải được lập chỉ mục (indexed) vì lý do hiệu năng. Nhưng MySQL không bắt buộc các cột tham chiếu phải là UNIQUE hoặc NOT NULL.
Chú thích (Comments)
SQL chuẩn dùng cú pháp C /* this is a comment */. MySQL cũng hỗ trợ cú pháp này. SQL chuẩn dùng -- làm chuỗi bắt đầu chú thích. MySQL dùng ký tự # làm ký tự bắt đầu chú thích.