बैकटिक (`) से रिज़र्व्ड कीवर्ड कॉलम नाम एस्केप करें
MySQL में यदि कॉलम का नाम रिज़र्व्ड कीवर्ड (जैसे SELECT, ORDER, GROUP) है, तो उसे बैकटिक (`) में घेरकर संदर्भित करें।
समस्या
SELECT एक रिज़र्व्ड कीवर्ड है। इसे कॉलम नाम के रूप में उपयोग करने पर सिंटैक्स त्रुटि होगी।
समाधान: बैकटिक का उपयोग
mysql> CREATE TABLE DemoTable (`select` VARCHAR(100));
Query OK, 0 rows affected (0.53 sec)
डेटा डालना
mysql> INSERT INTO DemoTable VALUES('Records');
mysql> INSERT INTO DemoTable VALUES('All Data');
mysql> INSERT INTO DemoTable VALUES('Information');
क्वेरी करना
mysql> SELECT `select` FROM DemoTable;
+-------------+
| select |
+-------------+
| Records |
| All Data |
| Information |
+-------------+
बैकटिक कब आवश्यक हैं
- कॉलम/टेबल नाम रिज़र्व्ड कीवर्ड हो
- नाम में स्पेस या विशेष वर्ण हों
- नाम संख्या से शुरू हो
- केस-सेंसिटिविटी बनाए रखनी हो
सामान्य रिज़र्व्ड कीवर्ड (आंशिक सूची)
SELECT, INSERT, UPDATE, DELETE, WHERE, ORDER, GROUP, BY, FROM,
JOIN, TABLE, INDEX, VIEW, TRIGGER, PROCEDURE, FUNCTION,
DATABASE, SCHEMA, USER, PASSWORD, KEY, PRIMARY, FOREIGN,
REFERENCES, CONSTRAINT, CHECK, DEFAULT, NULL, NOT, AND, OR
सर्वोत्तम अभ्यास
- सभी पहचानकर्ताओं (टेबल, कॉलम, एलियास) के लिए हमेशा बैकटिक उपयोग करें
- रिज़र्व्ड कीवर्ड को नाम के रूप में उपयोग करने से बचें
- वर्णनात्मक, गैर-कीवर्ड नाम चुनें (जैसे
user_selectबजायselect)