11.3 Ключевые слова и зарезервированные слова
Ключевые слова — это слова, имеющие значение в SQL. Некоторые ключевые слова, такие как SELECT, DELETE или BIGINT, зарезервированы и требуют специального обращения при использовании в качестве идентификаторов, таких как имена таблиц и столбцов. Это также может относиться к именам встроенных функций.
Большинство нерезервированных ключевых слов разрешены в качестве идентификаторов без кавычек. Некоторые ключевые слова, которые в противном случае считаются нерезервированными, ограничены в использовании в качестве необрамленных идентификаторов для ролей, меток хранимых программ или в некоторых случаях для обоих. См. Зарезервированные ключевые слова MySQL 9.2 для списков этих ключевых слов.
Зарезервированные слова разрешены в качестве идентификаторов, если их заключить в кавычки, как описано в разделе 11.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 является допустимым именем столбца. Однако по умолчанию пробелы не допускаются в вызовах функций между именем функции и последующим символом (. Это требование позволяет парсеру различать, используется ли имя в вызове функции или в контексте, не являющемся функцией. Для получения более подробной информации о распознавании имён функций см. раздел 11.2.5, «Разбор и разрешение имён функций».
В таблице INFORMATION_SCHEMA.KEYWORDS перечислены слова, рассматриваемые MySQL как ключевые слова, и указано, являются ли они зарезервированными. См. раздел 28.3.17, «Таблица INFORMATION_SCHEMA KEYWORDS».
Ключевые слова и зарезервированные слова MySQL 9.2
В следующем списке показаны ключевые слова и зарезервированные слова в MySQL 9.2, а также изменения отдельных слов из версии в версию. Зарезервированные ключевые слова помечены (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)ACCOUNTACTIONACTIVEADD(R)ADMINAFTERAGAINSTAGGREGATEALGORITHMALL(R)ALTER(R)ALWAYSANALYZE(R)AND(R)ANYARRAYAS(R)ASC(R)ASCIIASENSITIVE(R)ATATTRIBUTEAUTHENTICATIONAUTOAUTOEXTEND_SIZEAUTO_INCREMENTAVGAVG_ROW_LENGTH
B
BACKUPBEFORE(R)BEGINBERNOULLIBETWEEN(R)BIGINT(R)BINARY(R)BINLOGBITBLOB(R)BLOCKBOOLBOOLEANBOTH(R)BTREEBUCKETSBULKBY(R)BYTE
C
CACHECALL(R)CASCADE(R)CASCADEDCASE(R)CATALOG_NAMECHAINCHALLENGE_RESPONSECHANGE(R)CHANGEDCHANNELCHAR(R)CHARACTER(R)CHARSETCHECK(R)CHECKSUMCIPHERCLASS_ORIGINCLIENTCLONECLOSECOALESCECODECOLLATE(R)COLLATIONCOLUMN(R)COLUMNSCOLUMN_FORMATCOLUMN_NAMECOMMENTCOMMITCOMMITTEDCOMPACTCOMPLETIONCOMPONENTCOMPRESSEDCOMPRESSIONCONCURRENTCONDITION(R)CONNECTIONCONSISTENTCONSTRAINT(R)CONSTRAINT_CATALOGCONSTRAINT_NAMECONSTRAINT_SCHEMACONTAINSCONTEXTCONTINUE(R)CONVERT(R)CPUCREATE(R)CROSS(R)CUBE(R)CUME_DIST(R)CURRENTCURRENT_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_AUTHDEFINERDEFINITIONDELAYED(R)DELAY_KEY_WRITEDELETE(R)DENSE_RANK(R)DESC(R)DESCRIBE(R)DESCRIPTIONDETERMINISTIC(R)DIAGNOSTICSDIRECTORYDISABLEDISCARDDISKDISTINCT(R)DISTINCTROW(R)DIV(R)DODOUBLE(R)DROP(R)DUAL(R)DUMPFILEDUPLICATEDYNAMIC
Е
EACH(R)ELSE(R)ELSEIF(R)EMPTY(R)ENABLEENCLOSED(R)ENCRYPTIONENDENDSENFORCEDENGINEENGINESENGINE_ATTRIBUTEENUMERRORERRORSESCAPEESCAPED(R)EVENTEVENTSEVERYEXCEPT(R)EXCHANGEEXCLUDEEXECUTEEXISTS(R)EXIT(R)EXPANSIONEXPIREEXPLAIN(R)EXPORTEXTENDEDEXTENT_SIZE
Ф
FACTORFAILED_LOGIN_ATTEMPTSFALSE(R)FASTFAULTSFETCH(R)FIELDSFILEFILE_BLOCK_SIZEFILTERFINISHFIRSTFIRST_VALUE(R)FIXEDFLOAT(R)FLOAT4(R)FLOAT8(R)FLUSHFOLLOWINGFOLLOWSFOR(R)FORCE(R)FOREIGN(R)FORMATFOUNDFROM(R)FULLFULLTEXT(R)FUNCTION(R)
Г
GENERALGENERATEGENERATED(R)GEOMCOLLECTIONGEOMETRYGEOMETRYCOLLECTIONGET(R)GET_FORMATGET_SOURCE_PUBLIC_KEYGLOBALGRANT(R)GRANTSGROUP(R)GROUPING(R)GROUPS(R)GROUP_REPLICATIONGTIDSGTID_ONLY
Х
HANDLERHASHHAVING(R)HEADERHELPHIGH_PRIORITY(R)HISTOGRAMHISTORYHOSTHOSTSHOURHOUR_MICROSECOND(R)HOUR_MINUTE(R)HOUR_SECOND(R)
И
IDENTIFIEDIF(R)IGNORE(R)IGNORE_SERVER_IDSIMPORTIN(R)INACTIVEINDEX(R)INDEXESINFILE(R)INITIALINITIAL_SIZEINITIATEINNER(R)INOUT(R)INSENSITIVE(R)INSERT(R)INSERT_METHODINSTALLINSTANCEINT(R)INT1(R)INT2(R)INT3(R)INT4(R)INT8(R)INTEGER(R)INTERSECT(R)INTERVAL(R)INTO(R)INVISIBLEINVOKERIOIO_AFTER_GTIDS(R)IO_BEFORE_GTIDS(R)IO_THREADIPCIS(R)ISOLATIONISSUERITERATE(R)
Й
JOIN(R)JSONJSON_TABLE(R)JSON_VALUE
К
KEY(R)KEYRINGKEYS(R)KEY_BLOCK_SIZEKILL(R)
L
LAG(R)LANGUAGELASTLAST_VALUE(R)LATERAL(R)LEAD(R)LEADING(R)LEAVE(R)LEAVESLEFT(R)LESSLEVELLIBRARY(R)LIKE(R)LIMIT(R)LINEAR(R)LINES(R)LINESTRINGLISTLOAD(R)LOCALLOCALTIME(R)LOCALTIMESTAMP(R)LOCK(R)LOCKEDLOCKSLOGLOGFILELOGSLONG(R)LONGBLOB(R)LONGTEXT(R)LOOP(R)LOW_PRIORITY(R)
M
MANUAL(R)MASTERMATCH(R)MAXVALUE(R)MAX_CONNECTIONS_PER_HOURMAX_QUERIES_PER_HOURMAX_ROWSMAX_SIZEMAX_UPDATES_PER_HOURMAX_USER_CONNECTIONSMEDIUMMEDIUMBLOB(R)MEDIUMINT(R)MEDIUMTEXT(R)MEMBERMEMORYMERGEMESSAGE_TEXTMICROSECONDMIDDLEINT(R)MIGRATEMINUTEMINUTE_MICROSECOND(R)MINUTE_SECOND(R)MIN_ROWSMOD(R)MODEMODIFIES(R)MODIFYMONTHMULTILINESTRINGMULTIPOINTMULTIPOLYGONMUTEXMYSQL_ERRNO
N
NAMENAMESNATIONALNATURAL(R)NCHARNDBNDBCLUSTERNESTEDNETWORK_NAMESPACENEVERNEWNEXTNONODEGROUPNONENOT(R)NOWAITNO_WAITNO_WRITE_TO_BINLOG(R)NTH_VALUE(R)NTILE(R)NULL(R)NULLSNUMBERNUMERIC(R)NVARCHAR
O
OF(R)OFFOFFSETOJOLDON(R)ONEONLYOPENOPTIMIZE(R)OPTIMIZER_COSTS(R)OPTION(R)OPTIONALOPTIONALLY(R)OPTIONSOR(R)ORDER(R)ORDINALITYORGANIZATIONOTHERSOUT(R)OUTER(R)OUTFILE(R)OVER(R)OWNER
P
PACK_KEYSPAGEPARALLEL(R)PARAMETERSPARSERPARSE_TREEPARTIALPARTITION(R)PARTITIONINGPARTITIONSPASSWORDPASSWORD_LOCK_TIMEPATHPERCENT_RANK(R)PERSISTPERSIST_ONLYPHASEPLUGINPLUGINSPLUGIN_DIRPOINTPOLYGONPORTPRECEDESPRECEDINGPRECISION(R)PREPAREPRESERVEPREVPRIMARY(R)PRIVILEGESPRIVILEGE_CHECKS_USERPROCEDURE(R)PROCESSPROCESSLISTPROFILEPROFILESPROXYPURGE(R)
Q
QUALIFY(R)QUARTERQUERYQUICK
R
RANDOMRANGE(R)RANK(R)READ(R)READS(R)READ_ONLYREAD_WRITE(R)REAL(R)REBUILDRECOVERRECURSIVE(R)REDO_BUFFER_SIZEREDUNDANTREFERENCEREFERENCES(R)REGEXP(R)REGISTRATIONRELAYRELAYLOGRELAY_LOG_FILERELAY_LOG_POSRELAY_THREADRELEASE(R)RELOADREMOVERENAME(R)REORGANIZEREPAIRREPEAT(R)REPEATABLEREPLACE(R)REPLICAREPLICASREPLICATE_DO_DBREPLICATE_DO_TABLEREPLICATE_IGNORE_DBREPLICATE_IGNORE_TABLEREPLICATE_REWRITE_DBREPLICATE_WILD_DO_TABLEREPLICATE_WILD_IGNORE_TABLEREPLICATIONREQUIRE(R)REQUIRE_ROW_FORMATRESETRESIGNAL(R)RESOURCERESPECTRESTARTRESTORERESTRICT(R)RESUMERETAINRETURN(R)RETURNED_SQLSTATERETURNINGRETURNSREUSEREVERSEREVOKE(R)RIGHT(R)RLIKE(R)ROLEROLLBACKROLLUPROTATEROUTINEROW(R)ROWS(R)ROW_COUNTROW_FORMATROW_NUMBER(R)RTREE
С
S3SAVEPOINTSCHEDULESCHEMA(R)SCHEMAS(R)SCHEMA_NAMESECONDSECONDARYSECONDARY_ENGINESECONDARY_ENGINE_ATTRIBUTESECONDARY_LOADSECONDARY_UNLOADSECOND_MICROSECOND(R)SECURITYSELECT(R)SENSITIVE(R)SEPARATOR(R)SERIALSERIALIZABLESERVERSESSIONSET(R)SHARESHOW(R)SHUTDOWNSIGNAL(R)SIGNEDSIMPLESKIPSLAVESLOWSMALLINT(R)SNAPSHOTSOCKETSOMESONAMESOUNDSSOURCESOURCE_AUTO_POSITIONSOURCE_BINDSOURCE_COMPRESSION_ALGORITHMSSOURCE_CONNECT_RETRYSOURCE_DELAYSOURCE_HEARTBEAT_PERIODSOURCE_HOSTSOURCE_LOG_FILESOURCE_LOG_POSSOURCE_PASSWORDSOURCE_PORTSOURCE_PUBLIC_KEY_PATHSOURCE_RETRY_COUNTSOURCE_SSLSOURCE_SSL_CASOURCE_SSL_CAPATHSOURCE_SSL_CERTSOURCE_SSL_CIPHERSOURCE_SSL_CRLSOURCE_SSL_CRLPATHSOURCE_SSL_KEYSOURCE_SSL_VERIFY_SERVER_CERTSOURCE_TLS_CIPHERSUITESSOURCE_TLS_VERSIONSOURCE_USERSOURCE_ZSTD_COMPRESSION_LEVELSPATIAL(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_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_YEARSRIDSSL(R)STACKEDSTARTSTARTING(R)STARTSSTATS_AUTO_RECALCSTATS_PERSISTENTSTATS_SAMPLE_PAGESSTATUSSTOPSTORAGESTORED(R)STRAIGHT_JOIN(R)STREAMSTRINGSUBCLASS_ORIGINSUBJECTSUBPARTITIONSUBPARTITIONSSUPERSUSPENDSWAPSSWITCHESSYSTEM(R)
Т
TABLE(Р)TABLESTABLESAMPLE(Р)TABLESPACETABLE_CHECKSUMTABLE_NAMETEMPORARYTEMPTABLETERMINATED(Р)TEXTTHANTHEN(Р)THREAD_PRIORITYTIESTIMETIMESTAMPTIMESTAMPADDTIMESTAMPDIFFTINYBLOB(Р)TINYINT(Р)TINYTEXT(Р)TLSTO(Р)TRAILING(Р)TRANSACTIONTRIGGER(Р)TRIGGERSTRUE(Р)TRUNCATETYPETYPES
У
UNBOUNDEDUNCOMMITTEDUNDEFINEDUNDO(Р)UNDOFILEUNDO_BUFFER_SIZEUNICODEUNINSTALLUNION(Р)UNIQUE(Р)UNKNOWNUNLOCK(Р)UNREGISTERUNSIGNED(Р)UNTILUPDATE(Р)UPGRADEURLUSAGE(Р)USE(Р)USERUSER_RESOURCESUSE_FRMUSING(Р)UTC_DATE(Р)UTC_TIME(Р)UTC_TIMESTAMP(Р)
V
VALIDATIONVALUEVALUES(Р)VARBINARY(Р)VARCHAR(Р)VARCHARACTER(Р)VARIABLESVARYING(Р)VCPUVECTORVIEWVIRTUAL(Р)VISIBLE
W
WAITWARNINGSWEEKWEIGHT_STRINGWHEN(Р)WHERE(Р)WHILE(Р)WINDOW(Р)WITH(Р)WITHOUTWORKWRAPPERWRITE(Р)
X
X509XAXIDXMLXOR(Р)
Y
YEARYEAR_MONTH(Р)
Z
ZEROFILL(Р)ZONE
Новые ключевые слова и зарезервированные слова MySQL 9.2
В следующем списке показаны ключевые слова и зарезервированные слова, добавленные в MySQL 9.2 по сравнению с MySQL 8.4. Зарезервированные ключевые слова помечены (Р).
HEADERLIBRARY(Р)PARAMETERSVECTOR
Удалённые ключевые слова и зарезервированные слова MySQL 9.2
В следующем списке показаны ключевые слова и зарезервированные слова, удаленные в MySQL 9.2 по сравнению с MySQL 8.4. Зарезервированные ключевые слова помечены (Р).
Между MySQL 8.4 и 9.2 ключевые слова не удалялись.
Зарезервированные ключевые слова MySQL 9.2
Некоторые ключевые слова MySQL не являются зарезервированными, но даже в этом случае должны быть заключены в кавычки в определенных обстоятельствах. В этом разделе приведены списки этих ключевых слов.
Ключевые слова, которые должны быть заключены в кавычки при использовании в качестве меток
Ключевые слова, перечисленные здесь, должны быть заключены в кавычки при использовании в качестве меток в хранимых программах MySQL:
A | B | C | D | E | F | H | I | L | N | P | R | S | T | U | X
A
ASCII
B
BEGINBINLOG(added in MySQL 9.2.0)BYTE
C
CACHECHARSETCHECKSUMCLONECOMMENTCOMMITCONTAINS
D
DEALLOCATEDO
E
END
F
FLUSHFOLLOWS
H
HANDLERHELP
I
IMPORTINSTALL
L
LANGUAGE
N
NO
P
PRECEDESPREPARE
R
REPAIRRESETROLLBACK
S
SAVEPOINTSIGNEDSLAVESTARTSTOP
T
TRUNCATE
U
UNICODEUNINSTALL
X
XA
Ключевые слова, которые должны быть заключены в кавычки при использовании в качестве имен ролей
Ключевые слова, перечисленные здесь, должны быть заключены в кавычки при использовании в качестве имен ролей:
EVENTFILENONEPROCESSPROXYRELOADREPLICATIONRESOURCESUPER
Ключевые слова, которые должны быть заключены в кавычки при использовании в качестве меток или имен ролей
Ключевые слова, перечисленные здесь, должны быть заключены в кавычки при использовании в качестве меток в хранимых программах или в качестве имен ролей:
EXECUTERESTARTSHUTDOWN
© 2025 Oracle
Licensed under the GPLv2 License.