Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में आरक्षित शब्द 'order' को टेबल नाम के रूप में उपयोग करने के लिए बैकटिक्स

MySQL में ORDER एक आरक्षित शब्द (reserved word) है। इसे टेबल या कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक्स (`) से घेरना आवश्यक है।

समस्या

mysql> CREATE TABLE order (StudentId INT);
ERROR 1064: You have an error in your SQL syntax near 'order'

समाधान: बैकटिक्स का उपयोग

mysql> CREATE TABLE `order` (StudentId INT);
Query OK

उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE `order` (StudentId INT);

2. डेटा डालें

mysql> INSERT INTO `order` VALUES(101), (210), (190), (180), (205);

3. क्वेरी में बैकटिक्स

mysql> SELECT * FROM `order`;
mysql> SELECT * FROM `order` ORDER BY StudentId DESC LIMIT 1;

4. परिणाम

+-----------+
| StudentId |
+-----------+
| 210       |
+-----------+

आरक्षित शब्दों की सूची (आंशिक)

  • ORDER, GROUP, SELECT, INSERT, UPDATE, DELETE
  • INDEX, KEY, PRIMARY, UNIQUE, FOREIGN
  • TABLE, DATABASE, SCHEMA, VIEW
  • USER, PASSWORD, GRANT, REVOKE
  • RANK, WINDOW, LATERAL (MySQL 8.0+)

सर्वोत्तम अभ्यास

  • हमेशा पहचानकर्ताओं (टेबल, कॉलम, डेटाबेस) के लिए बैकटिक्स उपयोग करें
  • आरक्षित शब्दों को नाम के रूप में टालें
  • यदि उपयोग करना पड़े तो बैकटिक्स अनिवार्य

बैकटिक्स के बिना विकल्प

-- ANSI SQL मानक: डबल कोट्स (sql_mode=ANSI_QUOTES के साथ)
CREATE TABLE "order" (StudentId INT);

-- लेकिन MySQL डिफ़ॉल्ट में डबल कोट्स स्ट्रिंग के लिए हैं

सामान्य त्रुटि

-- गलत: कॉलम नाम में बैकटिक्स नहीं
SELECT order FROM `order`;

-- सही: कॉलम नाम भी बैकटिक्स में
SELECT `order` FROM `order`;
  1. - MySQL में न्यूमेरिक यूज़र-डिफ़ाइंड वेरिएबल के साथ ORDER BY कैसे करें?

    MySQL में डायनामिक कॉलम नाम के साथ ORDER BY करने के लिए, यूज़र-डिफ़ाइंड वेरिएबल और PREPARED STATEMENT का उपयोग करें। यह तब उपयोगी होता है जब कॉलम का नाम रनटाइम पर तय होता है। उदाहरण: वेरिएबल के साथ डायनामिक ORDER BY डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1898 (Number INT); डेटा इन्सर्ट

  1. - MySQL में IN() क्लॉज़ के साथ एक क्वेरी में रिकॉर्ड कैसे डिलीट करें?

    MySQL में एक ही क्वेरी में एकाधिक विशिष्ट रिकॉर्ड डिलीट करने के लिए, DELETE स्टेटमेंट के साथ IN() ऑपरेटर का उपयोग करें। यह एकाधिक DELETE स्टेटमेंट चलाने से अधिक कुशल और पठनीय है। उदाहरण: विशिष्ट StudentId वाले रिकॉर्ड डिलीट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1922 ( StudentI

  1. - MySQL में आरक्षित कीवर्ड (जैसे groups) से टेबल बनाने पर सिंटैक्स एरर और समाधान

    समस्या groups MySQL आरक्षित कीवर्ड है। बिना बैकटिक्स के टेबल बनाने पर एरर: create table groups (id int, name varchar(40)); ERROR 1064 (42000): You have an error in your SQL syntax near groups (id int, name varchar(40)) at line 1 समाधान: बैकटिक्स (`) का उपयोग create table `groups` (id int, name v