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

MySQL में रिजर्व्ड वर्ड को टेबल/कॉलम नाम के रूप में कैसे उपयोग करें?


MySQL में रिजर्व्ड कीवर्ड (जैसे INSERT, ADD, KEY, LIKE) को टेबल या कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक (`) का उपयोग करें।

समस्या: रिजर्व्ड वर्ड बिना बैकटिक के

केस 1: टेबल नाम के रूप में

mysql> create table insert (Id int);
ERROR 1064 (42000): You have an error in your SQL syntax... near 'insert (Id int)'

केस 2: कॉलम नाम के रूप में

mysql> create table Customers (Add int);
ERROR 1064 (42000): You have an error in your SQL syntax... near 'Add int)'

समाधान: बैकटिक (`) उपयोग करें

mysql> create table `Insert` (`Add` int); 
Query OK, 0 rows affected (0.59 sec)

सामान्य MySQL रिजर्व्ड कीवर्ड

ADD, ALL, ALTER, ANALYZE, AND, AS, ASC, BEFORE, BETWEEN, BIGINT, BINARY, BLOB,
BOTH, BY, CALL, CASCADE, CASE, CHANGE, CHAR, CHARACTER, CHECK, COLLATE, COLUMN,
CONSTRAINT, CREATE, CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
DATABASE, DATABASES, DAY_HOUR, DAY_MICROSECOND, DAY_MINUTE, DAY_SECOND, DEC,
DECIMAL, DECLARE, DEFAULT, DELAYED, DELETE, DESC, DESCRIBE, DISTINCT, DISTINCTROW,
DIV, DOUBLE, DROP, DUAL, EACH, ELSE, ENCLOSED, ESCAPED, EXISTS, EXPLAIN, FALSE,
FIELDS, FLOAT, FLOAT4, FLOAT8, FOR, FORCE, FOREIGN, FROM, FULLTEXT, GRANT, GROUP,
HAVING, HIGH_PRIORITY, HOUR_MICROSECOND, HOUR_MINUTE, HOUR_SECOND, IF, IGNORE,
IN, INDEX, INFILE, INNER, INNO DB, INSERT, INT, INT1, INT2, INT3, INT4, INT8,
INTEGER, INTERVAL, INTO, IS, ITERATE, JOIN, KEY, KEYS, KILL, LEADING, LEAVE,
LEFT, LIKE, LIMIT, LINEAR, LINES, LOAD, LOCALTIME, LOCALTIMESTAMP, LOCK, LONG,
LONGBLOB, LONGTEXT, LOOP, LOW_PRIORITY, MASTER_BIND, MASTER_SSL_VERIFY_SERVER_CERT,
MATCH, MAXVALUE, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, MIDDLEINT, MINUTE_MICROSECOND,
MINUTE_SECOND, MOD, MODIFIES, NATURAL, NOT, NO_WRITE_TO_BINLOG, NULL, NUMERIC,
ON, OPTIMIZE, OPTION, OPTIONALLY, OR, ORDER, OUT, OUTER, OUTFILE, PRECISION,
PRIMARY, PROCEDURE, PURGE, RANGE, READ, READS, REAL, REFERENCES, REGEXP, RELEASE,
RENAME, REPEAT, REPLACE, REQUIRE, RESTRICT, RETURN, REVOKE, RIGHT, ROLLBACK,
ROW, ROWS, SCHEMA, SCHEMAS, SECOND_MICROSECOND, SELECT, SENSITIVE, SEPARATOR,
SET, SHOW, SMALLINT, SPATIAL, SPECIFIC, SQL, SQLEXCEPTION, SQLSTATE, SQLWARNING,
SQL_BIG_RESULT, SQL_CALC_FOUND_ROWS, SQL_SMALL_RESULT, SSL, STARTING, STRAIGHT_JOIN,
TABLE, TERMINATED, THEN, TINYBLOB, TINYINT, TINYTEXT, TO, TRAILING, TRIGGER,
TRUE, UNDO, UNION, UNIQUE, UNLOCK, UNSIGNED, UPDATE, USAGE, USE, USING, UTC_DATE,
UTC_TIME, UTC_TIMESTAMP, VALUES, VARBINARY, VARCHAR, VARCHARACTER, VARYING, WHEN,
WHERE, WHILE, WITH, WRITE, XOR, YEAR_MONTH, ZEROFILL

पूर्ण सूची

आधिकारिक सूची: MySQL Reserved Keywords

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

  • रिजर्व्ड वर्ड से बचें — अर्थपूर्ण, गैर-रिजर्व्ड नाम चुनें
  • बैकटिक हमेशा उपयोग करें — सभी पहचानकर्ताओं के लिए (`table`, `column`) — यह सुरक्षित है
  • नामकरण परंपरा — स्नेक_केस उपयोग करें: user_id, order_date, is_active
  • उपसर्ग/प्रत्यय — रिजर्व्ड वर्ड से बचने के लिए: insert_time बजाय insert, key_id बजाय key

बैकटिक के साथ उदाहरण

CREATE TABLE `order` (
  `id` INT PRIMARY KEY,
  `key` VARCHAR(50),
  `group` INT,
  `select` DATE,
  `from` VARCHAR(100)
);

INSERT INTO `order` (`id`, `key`, `group`, `select`, `from`) 
VALUES (1, 'test', 1, '2024-01-01', 'source');

SELECT `id`, `key`, `group` FROM `order` WHERE `select` > '2023-01-01';

  1. - क्या MySQL में आरक्षित शब्द 'index' को कॉलम नाम के रूप में उपयोग कर सकते हैं?

    MySQL में बैकटिक के साथ आरक्षित शब्द index को कॉलम नाम के रूप में उपयोग करना INDEX MySQL में एक आरक्षित शब्द है। इसे कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक (`) में लपेटना आवश्यक है। व्यावहारिक उदाहरण बैकटिक के साथ तालिका बनाना CREATE TABLE DemoTable ( `index` INT ); रिकॉर्ड डालना INSE

  1. - MySQL में आरक्षित शब्द 'index' को कॉलम नाम के रूप में उपयोग करने पर सिंटैक्स त्रुटि ठीक करें

    समस्या MySQL में INDEX एक आरक्षित शब्द (reserved word) है, इसलिए इसे सीधे कॉलम नाम के रूप में उपयोग करने पर सिंटैक्स त्रुटि होती है। त्रुटि उदाहरण ) ENGINE=MyISAM; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right

  1. - MySQL सिंटैक्स त्रुटि (SELECT क्वेरी में) 'group' को टेबल नाम के रूप में उपयोग करते समय

    GROUP एक आरक्षित कीवर्ड है, आप इसे टेबल नाम के रूप में उपयोग नहीं कर सकते। इसलिए, इसे टेबल नाम के रूप में उपयोग करने पर त्रुटि होगी। ऐसी त्रुटि से बचने के लिए, आपको टेबल नाम group के आसपास बैकटिक्स प्रतीक का उपयोग करना होगा। आइए अब एक उदाहरण देखते हैं और एक टेबल बनाते हैं: mysql> create table `g