9.3 Ключевые слова и зарезервированные слова
Ключевые слова — это слова, имеющие значение в SQL. Некоторые ключевые слова, такие как SELECT, DELETE или BIGINT, зарезервированы и требуют специального обращения при использовании в качестве идентификаторов, таких как имена таблиц и столбцов. Это также может относиться к именам встроенных функций.
Незарезервированные ключевые слова разрешены в качестве идентификаторов без кавычек. Зарезервированные слова разрешены в качестве идентификаторов, если вы заключите их в кавычки, как описано в разделе 9.2, «Имена объектов схемы»:
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ...
near 'interval (begin INT, end INT)'
BEGIN и END являются ключевыми словами, но не зарезервированными, поэтому их использование в качестве идентификаторов не требует кавычек. INTERVAL — зарезервированное ключевое слово и должно быть заключено в кавычки, чтобы использоваться в качестве идентификатора:
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
Исключение: слово, следующее за точкой в квалифицированном имени, должно быть идентификатором, поэтому его не нужно заключать в кавычки, даже если оно зарезервировано:
mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
Имена встроенных функций разрешены в качестве идентификаторов, но могут потребовать внимательного обращения. Например, COUNT приемлемо в качестве имени столбца. Однако по умолчанию пробелы не допускаются в вызовах функций между именем функции и последующим ( символом. Это требование позволяет парсеру различать, используется ли имя в вызове функции или в контексте, не связанном с функцией. Более подробные сведения о распознавании имен функций см. в разделе 9.2.5, «Разбор и разрешение имен функций».
Ключевые слова и зарезервированные слова MySQL 5.7
В следующем списке показаны ключевые слова и зарезервированные слова в MySQL 5.7, а также изменения отдельных слов от версии к версии. Зарезервированные ключевые слова помечены (R). Кроме того, _FILENAME является зарезервированным.
В какой-то момент вы можете обновиться до более высокой версии, поэтому неплохо будет взглянуть и на будущие зарезервированные слова. Вы можете найти их в руководствах, охватывающих более поздние версии MySQL. Большинство зарезервированных слов в списке запрещены стандартным SQL в качестве имен столбцов или таблиц (например, GROUP). Некоторые зарезервированы, потому что MySQL нуждается в них и использует парсер yacc.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
A
ACCESSIBLE(R)ACCOUNT; добавлено в 5.7.6 (не зарезервировано)ACTIONADD(R)AFTERAGAINSTAGGREGATEALGORITHMALL(R)ALTER(R)ALWAYS; добавлено в 5.7.6 (не зарезервировано)ANALYSEANALYZE(R)AND(R)ANYAS(R)ASC(R)ASCIIASENSITIVE(R)ATAUTOEXTEND_SIZEAUTO_INCREMENTAVGAVG_ROW_LENGTH
B
BACKUPBEFORE(R)BEGINBETWEEN(R)BIGINT(R)BINARY(R)BINLOGBITBLOB(R)BLOCKBOOLBOOLEANBOTH(R)BTREEBY(R)BYTE
C
CACHECALL(R)CASCADE(R)CASCADEDCASE(R)CATALOG_NAMECHAINCHANGE(R)CHANGEDCHANNEL; добавлено в 5.7.6 (не зарезервировано)CHAR(R)CHARACTER(R)CHARSETCHECK(R)CHECKSUMCIPHERCLASS_ORIGINCLIENTCLOSECOALESCECODECOLLATE(R)COLLATIONCOLUMN(R)COLUMNSCOLUMN_FORMATCOLUMN_NAMECOMMENTCOMMITCOMMITTEDCOMPACTCOMPLETIONCOMPRESSEDCOMPRESSION; добавлено в 5.7.8 (не зарезервировано)CONCURRENTCONDITION(R)CONNECTIONCONSISTENTCONSTRAINT(R)CONSTRAINT_CATALOGCONSTRAINT_NAMECONSTRAINT_SCHEMACONTAINSCONTEXTCONTINUE(R)CONVERT(R)CPUCREATE(R)CROSS(R)CUBECURRENTCURRENT_DATE(R)CURRENT_TIME(R)CURRENT_TIMESTAMP(R)CURRENT_USER(R)CURSOR(R)CURSOR_NAME
D
DATADATABASE(R)DATABASES(R)DATAFILEDATEDATETIMEDAYDAY_HOUR(R)DAY_MICROSECOND(R)DAY_MINUTE(R)DAY_SECOND(R)DEALLOCATEDEC(R)DECIMAL(R)DECLARE(R)DEFAULT(R)DEFAULT_AUTHDEFINERDELAYED(R)DELAY_KEY_WRITEDELETE(R)DESC(R)DESCRIBE(R)DES_KEY_FILEDETERMINISTIC(R)DIAGNOSTICSDIRECTORYDISABLEDISCARDDISKDISTINCT(R)DISTINCTROW(R)DIV(R)DODOUBLE(R)DROP(R)DUAL(R)DUMPFILEDUPLICATEDYNAMIC
E
EACH(Р)ELSE(Р)ELSEIF(Р)ENABLEENCLOSED(Р)ENCRYPTION; добавлен в 5.7.11 (незарезервировано)ENDENDSENGINEENGINESENUMERRORERRORSESCAPEESCAPED(Р)EVENTEVENTSEVERYEXCHANGEEXECUTEEXISTS(Р)EXIT(Р)EXPANSIONEXPIREEXPLAIN(Р)EXPORTEXTENDEDEXTENT_SIZE
Ф
FALSE(Р)FASTFAULTSFETCH(Р)FIELDSFILEFILE_BLOCK_SIZE; добавлен в 5.7.6 (незарезервировано)FILTER; добавлен в 5.7.3 (незарезервировано)FIRSTFIXEDFLOAT(Р)FLOAT4(Р)FLOAT8(Р)FLUSHFOLLOWS; добавлен в 5.7.2 (незарезервировано)FOR(Р)FORCE(Р)FOREIGN(Р)FORMATFOUNDFROM(Р)FULLFULLTEXT(Р)FUNCTION
Г
GENERALGENERATED(Р); добавлен в 5.7.6 (зарезервировано)GEOMETRYGEOMETRYCOLLECTIONGET(Р)GET_FORMATGLOBALGRANT(Р)GRANTSGROUP(Р)GROUP_REPLICATION; добавлен в 5.7.6 (незарезервировано)
Х
HANDLERHASHHAVING(Р)HELPHIGH_PRIORITY(Р)HOSTHOSTSHOURHOUR_MICROSECOND(Р)HOUR_MINUTE(Р)HOUR_SECOND(Р)
И
IDENTIFIEDIF(Р)IGNORE(Р)IGNORE_SERVER_IDSIMPORTIN(Р)INDEX(Р)INDEXESINFILE(Р)INITIAL_SIZEINNER(Р)INOUT(Р)INSENSITIVE(Р)INSERT(Р)INSERT_METHODINSTALLINSTANCE; добавлен в 5.7.11 (незарезервировано)INT(Р)INT1(Р)INT2(Р)INT3(Р)INT4(Р)INT8(Р)INTEGER(Р)INTERVAL(Р)INTO(Р)INVOKERIOIO_AFTER_GTIDS(Р)IO_BEFORE_GTIDS(Р)IO_THREADIPCIS(Р)ISOLATIONISSUERITERATE(Р)
Й
JOIN(Р)JSON; добавлен в 5.7.8 (незарезервировано)
К
KEY(Р)KEYS(Р)KEY_BLOCK_SIZEKILL(Р)
Л
LANGUAGELASTLEADING(Р)LEAVE(Р)LEAVESLEFT(Р)LESSLEVELLIKE(Р)LIMIT(Р)LINEAR(Р)LINES(Р)LINESTRINGLISTLOAD(Р)LOCALLOCALTIME(Р)LOCALTIMESTAMP(Р)LOCK(Р)LOCKSLOGFILELOGSLONG(Р)LONGBLOB(Р)LONGTEXT(Р)LOOP(Р)LOW_PRIORITY(Р)
М
MASTERMASTER_AUTO_POSITIONMASTER_BIND(R)MASTER_CONNECT_RETRYMASTER_DELAYMASTER_HEARTBEAT_PERIODMASTER_HOSTMASTER_LOG_FILEMASTER_LOG_POSMASTER_PASSWORDMASTER_PORTMASTER_RETRY_COUNTMASTER_SERVER_IDMASTER_SSLMASTER_SSL_CAMASTER_SSL_CAPATHMASTER_SSL_CERTMASTER_SSL_CIPHERMASTER_SSL_CRLMASTER_SSL_CRLPATHMASTER_SSL_KEYMASTER_SSL_VERIFY_SERVER_CERT(R)MASTER_TLS_VERSION; добавлено в 5.7.10 (незарезервировано)MASTER_USERMATCH(R)MAXVALUE(R)MAX_CONNECTIONS_PER_HOURMAX_QUERIES_PER_HOURMAX_ROWSMAX_SIZEMAX_STATEMENT_TIME; добавлено в 5.7.4 (незарезервировано); удалено в 5.7.8MAX_UPDATES_PER_HOURMAX_USER_CONNECTIONSMEDIUMMEDIUMBLOB(R)MEDIUMINT(R)MEDIUMTEXT(R)MEMORYMERGEMESSAGE_TEXTMICROSECONDMIDDLEINT(R)MIGRATEMINUTEMINUTE_MICROSECOND(R)MINUTE_SECOND(R)MIN_ROWSMOD(R)MODEMODIFIES(R)MODIFYMONTHMULTILINESTRINGMULTIPOINTMULTIPOLYGONMUTEXMYSQL_ERRNO
N
NAMENAMESNATIONALNATURAL(R)NCHARNDBNDBCLUSTERNEVER; добавлено в 5.7.4 (незарезервировано)NEWNEXTNONODEGROUPNONBLOCKING; удалено в 5.7.6NONENOT(R)NO_WAITNO_WRITE_TO_BINLOG(R)NULL(R)NUMBERNUMERIC(R)NVARCHAR
O
OFFSETOLD_PASSWORD; удалено в 5.7.5ON(R)ONEONLYOPENOPTIMIZE(R)OPTIMIZER_COSTS(R); добавлено в 5.7.5 (зарезервировано)OPTION(R)OPTIONALLY(R)OPTIONSOR(R)ORDER(R)OUT(R)OUTER(R)OUTFILE(R)OWNER
P
PACK_KEYSPAGEPARSERPARSE_GCOL_EXPR; добавлено в 5.7.6 (зарезервировано); стало незарезервированным в 5.7.8PARTIALPARTITION(R)PARTITIONINGPARTITIONSPASSWORDPHASEPLUGINPLUGINSPLUGIN_DIRPOINTPOLYGONPORTPRECEDES; добавлено в 5.7.2 (незарезервировано)PRECISION(R)PREPAREPRESERVEPREVPRIMARY(R)PRIVILEGESPROCEDURE(R)PROCESSLISTPROFILEPROFILESPROXYPURGE(R)
Q
QUARTERQUERYQUICK
R
RANGE(R)READ(R)READS(R)READ_ONLYREAD_WRITE(R)REAL(R)REBUILDRECOVERREDOFILEREDO_BUFFER_SIZEREDUNDANTREFERENCES(R)REGEXP(R)RELAYRELAYLOGRELAY_LOG_FILERELAY_LOG_POSRELAY_THREADRELEASE(R)RELOADREMOVERENAME(R)REORGANIZEREPAIRREPEAT(R)REPEATABLEREPLACE(R)REPLICATE_DO_DB; добавлено в 5.7.3 (незарезервировано)REPLICATE_DO_TABLE; добавлено в 5.7.3 (незарезервировано)REPLICATE_IGNORE_DB; добавлено в 5.7.3 (незарезервировано)REPLICATE_IGNORE_TABLE; добавлено в 5.7.3 (незарезервировано)REPLICATE_REWRITE_DB; добавлено в 5.7.3 (незарезервировано)REPLICATE_WILD_DO_TABLE; добавлено в 5.7.3 (незарезервировано)REPLICATE_WILD_IGNORE_TABLE; добавлено в 5.7.3 (незарезервировано)REPLICATIONREQUIRE(R)RESETRESIGNAL(R)RESTORERESTRICT(R)RESUMERETURN(R)RETURNED_SQLSTATERETURNSREVERSEREVOKE(R)RIGHT(R)RLIKE(R)ROLLBACKROLLUPROTATE; добавлено в 5.7.11 (незарезервировано)ROUTINEROWROWSROW_COUNTROW_FORMATRTREE
S
SAVEPOINTSCHEDULESCHEMA(R)SCHEMAS(R)SCHEMA_NAMESECONDSECOND_MICROSECOND(R)SECURITYSELECT(R)SENSITIVE(R)SEPARATOR(R)SERIALSERIALIZABLESERVERSESSIONSET(R)SHARESHOW(R)SHUTDOWNSIGNAL(R)SIGNEDSIMPLESLAVESLOWSMALLINT(R)SNAPSHOTSOCKETSOMESONAMESOUNDSSOURCESPATIAL(R)SPECIFIC(R)SQL(R)SQLEXCEPTION(R)SQLSTATE(R)SQLWARNING(R)SQL_AFTER_GTIDSSQL_AFTER_MTS_GAPSSQL_BEFORE_GTIDSSQL_BIG_RESULT(R)SQL_BUFFER_RESULTSQL_CACHESQL_CALC_FOUND_ROWS(R)SQL_NO_CACHESQL_SMALL_RESULT(R)SQL_THREADSQL_TSI_DAYSQL_TSI_HOURSQL_TSI_MINUTESQL_TSI_MONTHSQL_TSI_QUARTERSQL_TSI_SECONDSQL_TSI_WEEKSQL_TSI_YEARSSL(R)STACKEDSTARTSTARTING(R)STARTSSTATS_AUTO_RECALCSTATS_PERSISTENTSTATS_SAMPLE_PAGESSTATUSSTOPSTORAGESTORED(R); добавлено в 5.7.6 (зарезервировано)STRAIGHT_JOIN(R)STRINGSUBCLASS_ORIGINSUBJECTSUBPARTITIONSUBPARTITIONSSUPERSUSPENDSWAPSSWITCHES
T
TABLE(R)TABLESTABLESPACETABLE_CHECKSUMTABLE_NAMETEMPORARYTEMPTABLETERMINATED(R)TEXTTHANTHEN(R)TIMETIMESTAMPTIMESTAMPADDTIMESTAMPDIFFTINYBLOB(R)TINYINT(R)TINYTEXT(R)TO(R)TRAILING(R)TRANSACTIONTRIGGER(R)TRIGGERSTRUE(R)TRUNCATETYPETYPES
U
UNCOMMITTEDUNDEFINEDUNDO(R)UNDOFILEUNDO_BUFFER_SIZEUNICODEUNINSTALLUNION(R)UNIQUE(R)UNKNOWNUNLOCK(R)UNSIGNED(R)UNTILUPDATE(R)UPGRADEUSAGE(R)USE(R)USERUSER_RESOURCESUSE_FRMUSING(R)UTC_DATE(R)UTC_TIME(R)UTC_TIMESTAMP(R)
V
VALIDATION; добавлен в 5.7.5 (незарезервировано)VALUEVALUES(R)VARBINARY(R)VARCHAR(R)VARCHARACTER(R)VARIABLESVARYING(R)VIEWVIRTUAL(R); добавлен в 5.7.6 (зарезервировано)
W
WAITWARNINGSWEEKWEIGHT_STRINGWHEN(R)WHERE(R)WHILE(R)WITH(R)WITHOUT; добавлен в 5.7.5 (незарезервировано)WORKWRAPPERWRITE(R)
X
X509XAXID; добавлен в 5.7.5 (незарезервировано)XMLXOR(R)
Y
YEARYEAR_MONTH(R)
Z
ZEROFILL(R)
Новые ключевые слова и зарезервированные слова MySQL 5.7
В следующем списке показаны ключевые слова и зарезервированные слова, добавленные в MySQL 5.7 по сравнению с MySQL 5.6. Ключевые слова, являющиеся зарезервированными, помечены (R).
A | C | E | F | G | I | J | M | N | O | P | R | S | V | W | X
A
ACCOUNTALWAYS
C
CHANNELCOMPRESSION
E
ENCRYPTION
F
FILE_BLOCK_SIZEFILTERFOLLOWS
G
GENERATED(R)GROUP_REPLICATION
I
INSTANCE
J
JSON
M
MASTER_TLS_VERSION
N
NEVER
O
OPTIMIZER_COSTS(R)
P
PARSE_GCOL_EXPRPRECEDES
R
REPLICATE_DO_DBREPLICATE_DO_TABLEREPLICATE_IGNORE_DBREPLICATE_IGNORE_TABLEREPLICATE_REWRITE_DBREPLICATE_WILD_DO_TABLEREPLICATE_WILD_IGNORE_TABLEROTATE
S
STACKEDSTORED(R)
V
VALIDATIONVIRTUAL(R)
W
WITHOUT
X
XID
Удалённые ключевые слова и зарезервированные слова MySQL 5.7
В следующем списке показаны ключевые слова и зарезервированные слова, удалённые в MySQL 5.7 по сравнению с MySQL 5.6. Зарезервированные ключевые слова помечены (R).
OLD_PASSWORD
© 2025 Oracle
Licensed under the GPLv2 License.