ให้เราเข้าใจความแตกต่างระหว่าง MySQL และ Standard SQL MySQL ดำเนินการหลายอย่างแตกต่างกันในบางกรณี -
สิทธิพิเศษ
มีความแตกต่างมากมายระหว่าง MySQL และ SQL มาตรฐานที่เกี่ยวกับสิทธิ์ที่มอบให้กับผู้ใช้ ใน MySQL สิทธิ์สำหรับตารางจะไม่ถูกเพิกถอนโดยอัตโนมัติเมื่อตารางถูกลบ ต้องมีการออกคำสั่ง REVOKE อย่างชัดเจนเพื่อเพิกถอนสิทธิ์สำหรับตาราง
ข้อจำกัดของคีย์ต่างประเทศ
การใช้ MySQL ของข้อจำกัดของคีย์ภายนอกนั้นแตกต่างจากมาตรฐาน SQL หากมีหลายแถวในตารางพาเรนต์ที่มีค่าคีย์อ้างอิงเหมือนกัน เอ็นจิน InnoDB จะทำการตรวจสอบคีย์นอกเหมือนกับแถวพาเรนต์อื่นๆ ที่มีค่าคีย์เดียวกันไม่มีอยู่
ตัวอย่างเช่น หากมีการกำหนดข้อจำกัดประเภท RESTRICT และมีแถวย่อยที่มีแถวหลักหลายแถว InnoDB จะไม่อนุญาตให้ลบแถวหลัก
ในคำสั่ง SQL ที่ใช้การแทรก ลบ หรืออัพเดตหลายแถว ข้อจำกัดของคีย์ภายนอก (เช่น ข้อจำกัดที่ไม่ซ้ำกัน) จะถูกตรวจสอบทีละแถว เมื่อดำเนินการตรวจสอบคีย์ภายนอก InnoDB จะตั้งค่าการล็อกระดับแถวที่ใช้ร่วมกันในระเบียนย่อยหรือพาเรนต์ซึ่งจำเป็นต้องตรวจสอบ
MySQL กำหนดให้ต้องสร้างดัชนีคอลัมน์ที่อ้างอิงด้วยเหตุผลด้านประสิทธิภาพ แต่ MySQL ไม่ได้บังคับให้คอลัมน์ที่อ้างอิงต้องไม่ซ้ำกันหรือต้องประกาศไม่ใช่ค่าว่าง
ความคิดเห็น
Standard SQL ใช้ไวยากรณ์ C /* นี่คือความคิดเห็น */ เพื่อแสดงความคิดเห็น MySQL Server รองรับไวยากรณ์นี้ด้วย SQL มาตรฐานใช้ '--'' เป็นลำดับความคิดเห็นเริ่มต้น MySQL Server ใช้ '#' เป็นอักขระแสดงความคิดเห็นเริ่มต้น