MySQL में पहचानकर्ताओं (Identifiers) के लिए बैकटिक (`) का उपयोग: कब और क्यों?
MySQL में किसी भी पहचानकर्ता (टेबल नाम, कॉलम नाम, स्टोर्ड प्रोसीजर, व्यू नाम, आदि) को बैकटिक (`) में कोट किया जा सकता है या अनकोटेड छोड़ा जा सकता है। जब कोई पहचानकर्ता रिज़र्व्ड कीवर्ड होता है, तो उसे कोट करना अनिवार्य होता है, अन्यथा त्रुटि होगी।
उदाहरण: रिज़र्व्ड कीवर्ड को कॉलम/टेबल नाम के रूप में उपयोग करना
बैकटिक के साथ टेबल बनाना
mysql> CREATE TABLE `INT` (`select` INT, `varchar` VARCHAR(100));
यहाँ INT, SELECT, और VARCHAR सभी MySQL रिज़र्व्ड कीवर्ड हैं, इसलिए उन्हें बैकटिक में लपेटा गया है।
रिकॉर्ड डालना
mysql> INSERT INTO `INT` VALUES(1, 'MySQL');
mysql> INSERT INTO `INT` VALUES(2, 'MongoDB');
mysql> INSERT INTO `INT` VALUES(3, 'Java');
mysql> INSERT INTO `INT` VALUES(4, 'C');
रिकॉर्ड चुनना
mysql> SELECT * FROM `INT`;
आउटपुट:
+--------+---------+
| select | varchar |
+--------+---------+
| 1 | MySQL |
| 2 | MongoDB |
| 3 | Java |
| 4 | C |
+--------+---------+
4 rows in set (0.00 sec)
महत्वपूर्ण नियम:
- रिज़र्व्ड कीवर्ड: बैकटिक आवश्यक (उदाहरण:
SELECT,INSERT,UPDATE,DELETE,INDEX,KEY,ORDER,GROUP,BY,TABLE,DATABASE, आदि) - विशेष वर्ण/स्पेस: यदि नाम में स्पेस, हाइफ़न, या विशेष वर्ण हैं तो बैकटिक आवश्यक
- सामान्य नाम: बैकटिक वैकल्पिक लेकिन सर्वोत्तम अभ्यास के रूप में अनुशंसित
- केस सेंसिटिविटी: बैकटिक केस सेंसिटिविटी को संरक्षित करता है
सर्वोत्तम अभ्यास
-- अनुशंसित: हमेशा बैकटिक उपयोग करें
CREATE TABLE `users` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`first_name` VARCHAR(50),
`last_name` VARCHAR(50),
`order` INT -- 'ORDER' रिज़र्व्ड कीवर्ड है
);
यह भविष्य में MySQL संस्करण अपग्रेड के कारण नए रिज़र्व्ड कीवर्ड जुड़ने पर भी कोड को सुरक्षित रखता है।