MySQL में बैकटिक (`) का उपयोग: रिजर्व्ड कीवर्ड को पहचानकर्ता के रूप में उपयोग करना
MySQL में यदि आप रिजर्व्ड कीवर्ड (जैसे key, limit, order, group, आदि) को कॉलम या टेबल नाम के रूप में उपयोग करना चाहते हैं, तो उन्हें बैकटिक (`) से घेरें। सिंगल कोट्स (') स्ट्रिंग लिटरल के लिए होते हैं, पहचानकर्ता के लिए नहीं।
उदाहरण: 'key' और 'Limit' को कॉलम नाम के रूप में उपयोग
टेबल बनाएं:
CREATE TABLE DemoTable (
`key` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Limit` INT
);
डेटा डालें (बैकटिक के साथ):
INSERT INTO DemoTable (`key`, `Limit`) VALUES (NULL, 80); INSERT INTO DemoTable (`key`, `Limit`) VALUES (NULL, 90); INSERT INTO DemoTable (`key`, `Limit`) VALUES (NULL, 100);
बैकटिक के साथ SELECT करें
SELECT `key` FROM DemoTable;
परिणाम:
+-----+ | key | +-----+ | 1 | | 2 | | 3 | +-----+
बिना बैकटिक के त्रुटि
SELECT key FROM DemoTable; -- ERROR: syntax error near 'key'
बैकटिक कब आवश्यक?
- रिजर्व्ड कीवर्ड:
select,where,order,group,limit,key,index,references, आदि - विशेष अक्षर वाले नाम: स्पेस, हाइफ़न, डॉट, आदि
- संख्या से शुरू होने वाले नाम:
`123table`
सर्वोत्तम अभ्यास
- हमेशा पहचानकर्ता (टेबल, कॉलम, डेटाबेस नाम) के लिए बैकटिक उपयोग करें
- यह भविष्य में नए रिजर्व्ड शब्द जुड़ने पर भी सुरक्षा देता है
- MySQL डंप और स्कीमा टूल स्वचालित रूप से बैकटिक जोड़ते हैं
- ANSI SQL मानक डबल कोट्स (
") उपयोग करता है, लेकिन MySQL में डिफॉल्ट रूप से बैकटिक मानक है
ANSI_QUOTES मोड
यदि SET sql_mode = 'ANSI_QUOTES' सेट है, तो डबल कोट्स पहचानकर्ता के लिए और सिंगल कोट्स स्ट्रिंग के लिए उपयोग होते हैं।