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

MySQL टेबल नाम में अंडरस्कोर (_) का उपयोग - बैकटिक्स आवश्यक

MySQL में टेबल या कॉलम नाम में अंडरस्कोर (_) या अन्य विशेष वर्ण होने पर, नाम को बैकटिक्स (\`) में संलग्न करना आवश्यक है, सिंगल कोट्स में नहीं।

समस्या: सिंगल कोट्स का उपयोग (गलत)

mysql> CREATE TABLE 'Demo_Table725' (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(100),
    ClientAge INT,
    ClientCountryName VARCHAR(100),
    isMarried BOOLEAN
);
ERROR 1064 (42000): You have an error in your SQL syntax...
near ''Demo_Table725' (ClientId int...' at line 1

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

mysql> CREATE TABLE `Demo_Table725` (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(100),
    ClientAge INT,
    ClientCountryName VARCHAR(100),
    isMarried BOOLEAN
);
Query OK, 0 rows affected (0.58 sec)

डेटा डालें और क्वेरी करें

mysql> INSERT INTO `Demo_Table725` (ClientName, ClientAge, ClientCountryName, isMarried) 
VALUES ('John', 34, 'US', true), ('Chris', 28, 'UK', false);
Query OK, 2 rows affected (0.30 sec)

mysql> SELECT * FROM `Demo_Table725`;
+----------+------------+-----------+-------------------+-----------+
| ClientId | ClientName | ClientAge | ClientCountryName | isMarried |
+----------+------------+-----------+-------------------+-----------+
| 1        | John       | 34        | US                | 1         |
| 2        | Chris      | 28        | UK                | 0         |
+----------+------------+-----------+-------------------+-----------+
2 rows in set (0.00 sec)

बैकटिक्स कब आवश्यक हैं

स्थितिउदाहरणआवश्यक?
अंडरस्कोर वाला नाम`my_table`✅ हाँ
रिज़र्व्ड कीवर्ड`select`, `from`, `order`✅ हाँ
स्पेस वाला नाम`my table`✅ हाँ
संख्या से शुरू`123table`✅ हाँ
साधारण नामusers, orders❌ वैकल्पिक

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

  • हमेशा बैकटिक्स उपयोग करें - यह भविष्य की समस्याओं से बचाता है
  • MySQL डंप/स्क्रिप्ट्स स्वचालित रूप से बैकटिक्स जोड़ते हैं
  • ANSI SQL मोड में डबल कोट्स (") भी काम करते हैं: SET sql_mode='ANSI_QUOTES'
  • एप्लिकेशन कोड में क्वेरी बिल्डर/ORM स्वचालित रूप से हैंडल करते हैं

बैकटिक्स के बिना अंडरस्कोर समस्या

अंडरस्कोर स्वयं समस्या नहीं है; समस्या यह है कि बिना बैकटिक्स के, पार्सर नाम को अलग टोकन के रूप में नहीं पहचान पाता जब इसमें विशेष वर्ण हों।

  1. - क्या MySQL टेबल बनाते समय {} का उपयोग कर सकते हैं?

    नहीं, टेबल बनाते समय आपको खुले और बंद पैरेंथेसिस जैसे ( ) का उपयोग करने की आवश्यकता है। नीचे दिए गए सिंटैक्स का उपयोग करें: CREATE TABLE IF NOT EXISTS yourTableName ( yourColumnName1 dataType1, ... N ); आइए पहले एक टेबल बनाते हैं: CREATE TABLE IF NOT EXISTS DemoTable ( CustomerId IN

  1. - MySQL में INSERT के दौरान कॉलम छोड़ना (NULL मान स्वचालित)

    MySQL में INSERT स्टेटमेंट में कॉलम सूची निर्दिष्ट करके कुछ कॉलम्स के लिए मान प्रदान न करना संभव है। छोड़े गए कॉलम्स को उनके डिफ़ॉल्ट मान (या NULL यदि कोई डिफ़ॉल्ट नहीं) मिलते हैं। उदाहरण के लिए टेबल बनाना mysql> CREATE TABLE DemoTable ( StudentName VARCHAR(100), StudentAge INT ); आंशिक

  1. - MySQL में अंडरस्कोर (_) को तालिका नाम के रूप में उपयोग करना

    MySQL में बैकटिक का उपयोग करके विशेष वर्ण वाले तालिका नाम बनाना MySQL में तालिका या कॉलम नाम में विशेष वर्ण (जैसे अंडरस्कोर, स्पेस, हाइफन) होने पर, उन्हें बैकटिक (`) में लपेटना आवश्यक होता है। व्यावहारिक उदाहरण अंडरस्कोर वाले तालिका नाम के साथ तालिका बनाना CREATE TABLE `DemoTable_1` ( Id INT