https://modern-sql.com/reserved-words-empirical-list Modern SQL: A lot has changed since SQL-92 [English] [ DE ] SQL Reserved Words The Empirical List --------------------------------------------------------------------- More interesting than the full list of reserved words is the empirical list of words that are rejected as non-delimited table or column name0 by at least one tested system. Words that are actually reserved words in SQL are set in bold. Note that you can still use these words as identifiers by putting them under double quotes ("). In the following chart a check mark () means that the word is accepted as unquoted table or column name. Apache DerbyabBigQueryccDb2 (LUW)abbbabdbbabbbbbbbbbbbbabbbbabbH2bba MariaDBcccccccccccccccccccbaaacccccccMySQLbbaaOracle DBbaaeaaaaa PostgreSQLbbbbbbbbbbbbbbSQL ServerSQLiteabbbcbbbbbbbabbACCESS ACCESSIBLEADDALLALLOCATEALTERANALYSEANALYZEANDANYAREARRAYASASC ASENSITIVEASSERTIONASYMMETRICATAUDITAUTHORIZATIONAUTOINCREMENTAVG BACKUPBEFOREBEGINBETWEENBIGINTBINARYBITBLOBBOOLEANBOTHBREAKBROWSEBULK BYCALLCASCADECASCADEDCASECASTCHANGECHARCHARACTERCHARACTER_LENGTHCHECK CHECKPOINTCLOSECLUSTERCLUSTEREDCOALESCECOLLATECOLLATIONCOLUMNCOMMENT COMMITCOMPRESSCOMPUTECONCATCONCURRENTLYCONDITIONCONNECTCONNECTION CONSTRAINTCONSTRAINTSCONTAINSCONTAINSTABLECONTINUECONVERT CORRESPONDINGCOUNTCREATECROSSCUBECUME_DISTCURRENTCURRENT_CATALOG CURRENT_DATECURRENT_PATHCURRENT_ROLECURRENT_SCHEMACURRENT_TIME CURRENT_TIMESTAMPCURRENT_USERCURSORDATABASEDATABASESDATEDAYDAYS DAY_HOURDAY_MICROSECONDDAY_MINUTEDAY_SECONDDBCCDEALLOCATEDECDECIMAL DECLAREDEFAULTDEFERRABLEDEFERREDDEFINEDEFINERDELAYEDDELETEDENSE_RANK DENYDESCDESCRIBEDETERMINISTICDIAGNOSTICSDISCONNECTDISTINCTDISTINCTROW DISTRIBUTEDDIVDODOUBLEDROPDUALEACHELSEELSEIFEMPTYENCLOSEDENDEND-EXEC ENUMERRLVLESCAPEESCAPEDEXCEPTEXCEPTIONEXCLUDEEXCLUSIVEEXECEXECUTE EXISTSEXITEXPLAINEXTERNALEXTRACTFALSEFETCHFILEFILLFACTORFILTERFIRST FIRST_VALUEFLOATFLOAT4FLOAT8FOLLOWINGFORFORCEFOREIGNFOUNDFREETEXT FREETEXTTABLEFREEZEFROMFULLFULLTEXTFUNCTIONGENERATEDGETGLOBGLOBALGO GOTOGRANTGROUPGROUPINGGROUPSHASHHAVINGHIGH_PRIORITYHOLDLOCKHOURHOURS HOUR_MICROSECONDHOUR_MINUTEHOUR_SECONDIDENTIFIEDIDENTITYIDENTITYCOL IDENTITY_INSERTIFIGNOREILIKEIMMEDIATEININCREMENTINDEXINDEXEDINDICATOR INFILEINITIALINITIALLYINNERINOUTINPUTINSENSITIVEINSERTINTINT1INT2INT3 INT4INT8INTEGERINTERSECTINTERVALINTOINVOKERIO_AFTER_GTIDS IO_BEFORE_GTIDSISISNULLISOLATIONITERATEJOINJSON_ARRAYAGGJSON_EXISTS JSON_OBJECTAGGJSON_TABLEKEYKEYSKILLLAGLASTLAST_VALUELATERALLEAD LEADINGLEAVELEFTLEVELLIKELIMITLINEARLINENOLINESLOADLOCALTIME LOCALTIMESTAMPLOCKLONGLONGBLOBLONGTEXTLOOPLOWERLOW_PRIORITYLTRIM MASTER_BINDMASTER_SSL_VERIFY_SERVER_CERTMATCHMAXMAXEXTENTSMAXVALUE MEDIUMBLOBMEDIUMINTMEDIUMTEXTMEMBERMERGEMICROSECONDMICROSECONDS MIDDLEINTMINMINUSMINUTEMINUTESMINUTE_MICROSECONDMINUTE_SECONDMLSLABEL MODMODEMODIFIESMODIFYMONTHMONTHSNATIONALNATURALNCHARNEWNEXTNONOAUDIT NOCHECKNOCOMPRESSNONCLUSTEREDNONENOTNOTHINGNOTNULLNOWAIT NO_WRITE_TO_BINLOGNTH_VALUENTILENULLNULLIFNULLSNUMBERNUMERICNVARCHAR OFOFFOFFLINEOFFSETOFFSETSONONLINEONLYOPENOPENDATASOURCEOPENQUERY OPENROWSETOPENXMLOPTIMIZEOPTIMIZER_COSTSOPTIONOPTIONALLYORORDEROUT OUTEROUTFILEOUTPUTOVEROVERLAPSPADPARTIALPARTITIONPCTFREEPERCENT PERCENTILE_CONTPERCENTILE_DISCPERCENT_RANKPIVOTPLACINGPLANPORTION POSITIONPRECEDINGPRECISIONPREPAREPRESERVEPRIMARYPRINTPRIORPRIVILEGES PROCPROCEDUREPUBLICPURGERAISERAISERRORRANGERANKRAWREADREADSREADTEXT READ_WRITEREALRECONFIGURERECURSIVEREFERENCESREGEXPRELATIVERELEASE RENAMEREPEATREPLACEREPLICATIONREQUIRERESIGNALRESOURCERESPECTRESTORE RESTRICTRETURNRETURNINGREVERTREVOKERIGHTRLIKEROLLBACKROLLUPROW ROWCOUNTROWGUIDCOLROWIDROWNUMROWSROW_NUMBERRTRIMRULESAVESCHEMASCHEMAS SCROLLSECONDSECONDSSECOND_MICROSECONDSELECTSEMANTICKEYPHRASETABLE SEMANTICSIMILARITYDETAILSTABLESEMANTICSIMILARITYTABLESENSITIVE SEPARATORSESSIONSESSION_USERSETSETUSERSHARESHOWSHUTDOWNSIGNALSIMILAR SIZESMALLINTSOMESOUNDSSPACESPATIALSPECIFICSQLSQLCODESQLERROR SQLEXCEPTIONSQLIDSQLSTATESQLWARNINGSQL_BIG_RESULTSQL_BUFFER_RESULT SQL_CACHESQL_CALC_FOUND_ROWSSQL_NO_CACHESQL_SMALL_RESULTSSLSTART STARTINGSTATISTICSSTATS_AUTO_RECALCSTATS_PERSISTENTSTATS_SAMPLE_PAGES STDDEV_POPSTDDEV_SAMPSTOREDSTRAIGHT_JOINSUBSTRINGSUCCESSFULSUM SYMMETRICSYNONYMSYSDATESYSTEMSYSTEM_USERTABLETABLESAMPLETEMPORARY TERMINATEDTEXTSIZETHENTIMEZONE_HOURTIMEZONE_MINUTETINYBLOBTINYINT TINYTEXTTOTOPTRAILINGTRANTRANSACTIONTRANSLATETRANSLATIONTREATTRIGGER TRIMTRUETRUNCATETRY_CONVERTTSEQUALUESCAPEUIDUNBOUNDEDUNDOUNIONUNIQUE UNKNOWNUNLOCKUNNESTUNPIVOTUNSIGNEDUPDATEUPDATETEXTUPPERUSAGEUSEUSER USINGUTC_DATEUTC_TIMEUTC_TIMESTAMPVALIDATEVALUEVALUESVARBINARYVARCHAR VARCHAR2VARCHARACTERVARIADICVARYINGVAR_POPVAR_SAMPVERBOSEVIEWVIRTUAL WAITFORWHENWHENEVERWHEREWHILEWINDOWWITHWITHINWITHIN GROUPWITHOUTWORK WRITEWRITETEXTXMLXMLCASTXMLEXISTSXMLFORESTXMLPARSEXMLQUERYXMLROOT XMLSERIALIZEXORYEARYEARSYEAR_MONTHZEROFILL a. Not as expression b. Not for column renaming without as clause c. Not as table name d. Not as column name e. Not in the from clause or drop table (yet in create table!) You can't catch up on 20 years of SQL evolution in one day. Subscribe the newsletter via E-Mail, Twitter or RSS to gradually catch up and to keep modern-sql.com on your radar. About the Author Photo of Markus Winand Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at. Buy the Book Cover of "SQL Performance Explained": Squirrel running on grass The essence of SQL tuning in 200 pages Buy now! (paperback and/or PDF) Paperback also available at Amazon.com. Hire Markus Markus offers SQL training and consulting for developers working at companies of all sizes. Learn more >> Footnotes 0. Future editions of the list might cover more identifier types such as type names, function names, ... Can I use... [ ] (beta) News * Search depth/breadth first * Greatest(), least() * Merge * Generated always as (...) * Blaze-Persistence * Java & SQL Presentation * "The Art of PostgreSQL" Interview * New in Oracle DB 19c * New in PostgreSQL 11 The Standard * Resources * Part 1-16 * Conformance Levels Concepts * NULL - Absent Data * Three-Valued Logic Features * CASE Expression * EXTRACT Expression * FILTER Clause * FROM Clause Column Aliases * IS DISTINCT FROM Predicate * LISTAGG Function * MATCH_RECOGNIZE Clause * VALUES Clause * WITH Clause Use Cases * Drafting Queries Without Tables * Literate SQL * Naming unnamed columns * Pivot * Reduce INSERT latency * SELECT without FROM * Testing on Transient Data Connect with Markus Winand Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter "modern SQL" by Markus Winand is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License. Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR | CC-BY-NC-ND 3.0 license