आइए हम MySQL और Standard SQL के बीच के अंतर को समझते हैं। MySQL कुछ मामलों में अलग-अलग तरह से कई ऑपरेशन करता है -
विशेषाधिकार
उपयोगकर्ता को दिए गए विशेषाधिकारों के संबंध में MySQL और मानक SQL के बीच कई अंतर हैं। MySQL में, किसी तालिका के हटाए जाने पर तालिका के विशेषाधिकार स्वचालित रूप से निरस्त नहीं होते हैं। किसी तालिका के विशेषाधिकारों को निरस्त करने के लिए एक REVOKE कथन को स्पष्ट रूप से जारी करने की आवश्यकता है।
विदेशी कुंजी प्रतिबंध
विदेशी कुंजी बाधाओं का MySQL कार्यान्वयन SQL मानक से अलग है। यदि समान संदर्भित कुंजी मान के साथ मूल तालिका में कई पंक्तियाँ हैं, तो InnoDB इंजन एक विदेशी कुंजी जाँच करता है जैसे समान कुंजी मान वाली अन्य मूल पंक्तियाँ मौजूद नहीं हैं।
उदाहरण के लिए, यदि एक RESTRICT प्रकार की बाधा को परिभाषित किया गया है, और कई पैरेंट पंक्तियों के साथ एक चाइल्ड रो है, तो InnoDB पैरेंट पंक्तियों को हटाने की अनुमति नहीं देगा।
एक SQL कथन में जो एकाधिक पंक्तियों पर सम्मिलित करें, हटाएं, या अद्यतन का उपयोग करता है, विदेशी कुंजी बाधाओं (जैसे अद्वितीय बाधाओं) को पंक्ति-बाद-पंक्ति की जांच की जाती है। जब विदेशी कुंजी की जाँच की जाती है, तो InnoDB बच्चे या माता-पिता के रिकॉर्ड पर साझा पंक्ति-स्तरीय लॉक सेट करता है, जिसकी जाँच करने की आवश्यकता होती है।
MySQL अनिवार्य करता है कि संदर्भित कॉलम को प्रदर्शन कारणों से अनुक्रमित किया जाना है। लेकिन MySQL इस आवश्यकता को लागू नहीं करता है कि संदर्भित कॉलम को UNIQUE या NOT NULL घोषित करने की आवश्यकता है।
टिप्पणियां
मानक SQL C सिंटैक्स का उपयोग करता है /* यह एक टिप्पणी है */ टिप्पणियाँ दिखाने के लिए। MySQL सर्वर भी इस सिंटैक्स का समर्थन करता है। मानक SQL ''--'' का प्रयोग प्रारंभ-टिप्पणी अनुक्रम के रूप में करता है। MySQL सर्वर '#' को स्टार्ट कमेंट कैरेक्टर के रूप में इस्तेमाल करता है।