明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

詳細(xì)說(shuō)明MySQL5.7中的關(guān)鍵字與保留字

[摘要]最近在將數(shù)據(jù)從Oracle遷移到MySQL的過(guò)程中,遇到一些問(wèn)題,其中就包括關(guān)鍵字。下面這篇文章主要給大家介紹了MySQL 5.7中的關(guān)鍵字與保留字的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。前言MySQL和Oracle的關(guān)鍵字還是不盡相同的,在Oracle數(shù)據(jù)庫(kù)中,...
最近在將數(shù)據(jù)從Oracle遷移到MySQL的過(guò)程中,遇到一些問(wèn)題,其中就包括關(guān)鍵字。下面這篇文章主要給大家介紹了MySQL 5.7中的關(guān)鍵字與保留字的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。

前言

MySQL和Oracle的關(guān)鍵字還是不盡相同的,在Oracle數(shù)據(jù)庫(kù)中,我們的數(shù)據(jù)表中定義了大量的code字段用來(lái)表示主鍵,但是在MySQL中code是關(guān)鍵字,使用以前的處理方法就有些“水土不服”。

下面我們來(lái)了解一下MySQL中的關(guān)鍵字和保留字。

什么是關(guān)鍵字和保留字

關(guān)鍵字是指在SQL中有意義的字。 某些關(guān)鍵字(例如SELECT,DELETE或BIGINT)是保留的,需要特殊處理才能用作表和列名稱等標(biāo)識(shí)符。 這一點(diǎn)對(duì)于內(nèi)置函數(shù)的名稱也適用。

如何使用關(guān)鍵字和保留字

非保留關(guān)鍵字允許作為標(biāo)識(shí)符,不需要加引號(hào)。 如果您要適用保留字作為標(biāo)識(shí)符,就必須適用引號(hào)。

舉個(gè)例子,BEGIN和END是關(guān)鍵字,但不是保留字,因此它們用作標(biāo)識(shí)符不需要引號(hào)。 INTERVAL是保留關(guān)鍵字,必須加上引號(hào)才能用作標(biāo)識(shí)符。

mysql>
mysql> use hoegh;
Database changed
mysql>
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000):
mysql>
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.42 sec)

mysql>
mysql> show create table `interval`;
+----------+---------------------------------------------------------
  Table   Create Table
+----------+---------------------------------------------------------
  interval   CREATE TABLE `interval` (
 `begin` int(11) DEFAULT NULL,
 `end` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1  
+----------+---------------------------------------------------------
1 row in set (0.00 sec)

mysql>

我們看到,第一條語(yǔ)句中表名使用了保留字interval,執(zhí)行失敗;

第二條語(yǔ)句對(duì)interval加了引號(hào),執(zhí)行成功。

在這里需要注意的是,引號(hào)必須是反引號(hào),而非單引號(hào)。否則會(huì)報(bào)錯(cuò),如下所示:

mysql>
mysql> drop table `interval`;--使用反引號(hào)
Query OK, 0 rows affected (0.11 sec)

mysql>
mysql> create table 'interval' (begin INT, end INT);--使用單引號(hào),報(bào)錯(cuò)
ERROR 1064 (42000):

mysql>

有一個(gè)例外

如果標(biāo)識(shí)符在限定名稱(數(shù)據(jù)庫(kù)名)的句點(diǎn)之后,即使是保留關(guān)鍵字也不需要引號(hào)。

我們以hoegh數(shù)據(jù)庫(kù)為例,如果表名寫為hoegh.interval就不需要對(duì)保留字interval加引號(hào)了。

mysql>
mysql> create table hoegh.interval (begin INT, end INT);
Query OK, 0 rows affected (0.19 sec)

mysql>
mysql> show create table hoegh.interval;
+----------+---------------------------------------------------------
  Table   Create Table
+----------+---------------------------------------------------------
  interval   CREATE TABLE `interval` (
 `begin` int(11) DEFAULT NULL,
 `end` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1  
+----------+---------------------------------------------------------
1 row in set (0.00 sec)

mysql>

關(guān)于使用內(nèi)置函數(shù)名稱

允許內(nèi)置函數(shù)的名稱可以作為標(biāo)識(shí)符,但最好謹(jǐn)慎使用。例如,COUNT作為列名稱是合法的。但是,默認(rèn)情況下,在函數(shù)名和后面的(之間的函數(shù)調(diào)用中不允許有空格。這個(gè)限制使解析器能夠區(qū)分名稱是用于函數(shù)調(diào)用還是用在非函數(shù)上下文中。

附錄

在某些時(shí)候,您可能需要升級(jí)到更高版本,因此最好查看一下未來(lái)的保留字。您可以在涵蓋更高版本的MySQL的手冊(cè)中找到這些。對(duì)于表中的大多數(shù)保留字,在標(biāo)準(zhǔn)SQL中禁止作為列或表的名稱(例如,GROUP)。其中一些保留字,是由于MySQL需要它們并使用一個(gè)yacc解析器。

以下列出三張表格:

第一個(gè)表格10.2顯示MySQL 5.7中的關(guān)鍵字和保留字。保留的關(guān)鍵字標(biāo)記為(R)。此外,_FILENAME是保留的。

第二個(gè)表格10.3顯示MySQL 5.7相比5.6版本新增的保留字。

第三個(gè)表格10.4顯示MySQL 5.7相比5.6版本刪除的保留字。

Table 10.2 Keywords and Reserved Words in MySQL 5.7

ACCESSIBLE (R)ACCOUNT[a]ACTION














































ADD (R)AFTERAGAINST














































AGGREGATEALGORITHMALL (R)














































ALTER (R)ALWAYS[b]ANALYSE














































ANALYZE (R)AND (R)ANY














































AS (R)ASC (R)ASCII














































ASENSITIVE (R)ATAUTOEXTEND_SIZE














































AUTO_INCREMENTAVGAVG_ROW_LENGTH














































BACKUPBEFORE (R)BEGIN














































BETWEEN (R)BIGINT (R)BINARY (R)














































BINLOGBITBLOB (R)














































BLOCKBOOLBOOLEAN














































BOTH (R)BTREEBY (R)














































BYTECACHECALL (R)














































CASCADE (R)CASCADEDCASE (R)














































CATALOG_NAMECHAINCHANGE (R)














































CHANGEDCHANNEL[c]CHAR (R)














































CHARACTER (R)CHARSETCHECK (R)














































CHECKSUMCIPHERCLASS_ORIGIN














































CLIENTCLOSECOALESCE














































CODECOLLATE (R)COLLATION














































COLUMN (R)COLUMNSCOLUMN_FORMAT














































COLUMN_NAMECOMMENTCOMMIT














































COMMITTEDCOMPACTCOMPLETION














































COMPRESSEDCOMPRESSION[d]CONCURRENT














































CONDITION (R)CONNECTIONCONSISTENT














































CONSTRAINT (R)CONSTRAINT_CATALOGCONSTRAINT_NAME














































CONSTRAINT_SCHEMACONTAINSCONTEXT














































CONTINUE (R)CONVERT (R)CPU














































CREATE (R)CROSS (R)CUBE














































CURRENTCURRENT_DATE (R)CURRENT_TIME (R)














































CURRENT_TIMESTAMP (R)CURRENT_USER (R)CURSOR (R)














































CURSOR_NAMEDATADATABASE (R)














































DATABASES (R)DATAFILEDATE














































DATETIMEDAYDAY_HOUR (R)














































DAY_MICROSECOND (R)DAY_MINUTE (R)DAY_SECOND (R)














































DEALLOCATEDEC (R)DECIMAL (R)














































DECLARE (R)DEFAULT (R)DEFAULT_AUTH














































DEFINERDELAYED (R)DELAY_KEY_WRITE














































DELETE (R)DESC (R)DESCRIBE (R)














































DES_KEY_FILEDETERMINISTIC (R)DIAGNOSTICS














































DIRECTORYDISABLEDISCARD














































DISKDISTINCT (R)DISTINCTROW (R)














































p (R)DODOUBLE (R)














































DROP (R)DUAL (R)DUMPFILE














































DUPLICATEDYNAMICEACH (R)














































ELSE (R)ELSEIF (R)ENABLE














































ENCLOSED (R)ENCRYPTION[e]END














































ENDSENGINEENGINES














































ENUMERRORERRORS














































ESCAPEESCAPED (R)EVENT














































EVENTSEVERYEXCHANGE














































EXECUTEEXISTS (R)EXIT (R)














































EXPANSIONEXPIREEXPLAIN (R)














































EXPORTEXTENDEDEXTENT_SIZE














































FALSE (R)FASTFAULTS














































FETCH (R)FIELDSFILE














































FILE_BLOCK_SIZE[f]FILTER[g]FIRST














































FIXEDFLOAT (R)FLOAT4 (R)














































FLOAT8 (R)FLUSHFOLLOWS[h]














































FOR (R)FORCE (R)FOREIGN (R)














































FORMATFOUNDFROM (R)














































FULLFULLTEXT (R)FUNCTION














































GENERALGENERATED[i] (R)GEOMETRY














































GEOMETRYCOLLECTIONGET (R)GET_FORMAT














































GLOBALGRANT (R)GRANTS














































GROUP (R)GROUP_REPLICATION[j]HANDLER














































HASHHAVING (R)HELP














































HIGH_PRIORITY (R)HOSTHOSTS














































HOURHOUR_MICROSECOND (R)HOUR_MINUTE (R)














































HOUR_SECOND (R)IDENTIFIEDIF (R)














































IGNORE (R)IGNORE_SERVER_IDSIMPORT














































IN (R)INDEX (R)INDEXES














































INFILE (R)INITIAL_SIZEINNER (R)














































INOUT (R)INSENSITIVE (R)INSERT (R)














































INSERT_METHODINSTALLINSTANCE[k]














































INT (R)INT1 (R)INT2 (R)














































INT3 (R)INT4 (R)INT8 (R)














































INTEGER (R)INTERVAL (R)INTO (R)














































INVOKERIOIO_AFTER_GTIDS (R)














































IO_BEFORE_GTIDS (R)IO_THREADIPC














































IS (R)ISOLATIONISSUER














































ITERATE (R)JOIN (R)JSON[l]














































KEY (R)KEYS (R)KEY_BLOCK_SIZE














































KILL (R)LANGUAGELAST














































LEADING (R)LEAVE (R)LEAVES














































LEFT (R)LESSLEVEL














































LIKE (R)LIMIT (R)LINEAR (R)














































LINES (R)LINESTRINGLIST














































LOAD (R)LOCALLOCALTIME (R)














































LOCALTIMESTAMP (R)LOCK (R)LOCKS














































LOGFILELOGSLONG (R)














































LONGBLOB (R)LONGTEXT (R)LOOP (R)














































LOW_PRIORITY (R)MASTERMASTER_AUTO_POSITION














































MASTER_BIND (R)MASTER_CONNECT_RETRYMASTER_DELAY














































MASTER_HEARTBEAT_PERIODMASTER_HOSTMASTER_LOG_FILE














































MASTER_LOG_POSMASTER_PASSWORDMASTER_PORT














































MASTER_RETRY_COUNTMASTER_SERVER_IDMASTER_SSL














































MASTER_SSL_CAMASTER_SSL_CAPATHMASTER_SSL_CERT














































MASTER_SSL_CIPHERMASTER_SSL_CRLMASTER_SSL_CRLPATH














































MASTER_SSL_KEYMASTER_SSL_VERIFY_SERVER_CERT(R)MASTER_TLS_VERSION[m]














































MASTER_USERMATCH (R)MAXVALUE (R)














































MAX_CONNECTIONS_PER_HOURMAX_QUERIES_PER_HOURMAX_ROWS














































MAX_SIZEMAX_STATEMENT_TIME[n]MAX_UPDATES_PER_HOUR














































MAX_USER_CONNECTIONSMEDIUMMEDIUMBLOB (R)














































MEDIUMINT (R)MEDIUMTEXT (R)MEMORY














































MERGEMESSAGE_TEXTMICROSECOND














































MIDDLEINT (R)MIGRATEMINUTE














































MINUTE_MICROSECOND (R)MINUTE_SECOND (R)MIN_ROWS














































MOD (R)MODEMODIFIES (R)














































MODIFYMONTHMULTILINESTRING














































MULTIPOINTMULTIPOLYGONMUTEX














































MYSQL_ERRNONAMENAMES














































NATIONALNATURAL (R)NCHAR














































NDBNDBCLUSTERNEVER[o]














































NEWNEXTNO














































NODEGROUPNONBLOCKING[p]NONE














































NOT (R)NO_WAITNO_WRITE_TO_BINLOG (R)














































NULL (R)NUMBERNUMERIC (R)














































NVARCHAROFFSETOLD_PASSWORD[q]














































ON (R)ONEONLY














































OPENOPTIMIZE (R)OPTIMIZER_COSTS[r] (R)














































OPTION (R)OPTIONALLY (R)OPTIONS














































OR (R)ORDER (R)OUT (R)














































OUTER (R)OUTFILE (R)OWNER














































PACK_KEYSPAGEPARSER














































PARSE_GCOL_EXPR[s]PARTIALPARTITION (R)














































PARTITIONINGPARTITIONSPASSWORD














































PHASEPLUGINPLUGINS














































PLUGIN_DIRPOINTPOLYGON














































PORTPRECEDES[t]PRECISION (R)














































PREPAREPRESERVEPREV














































PRIMARY (R)PRIVILEGESPROCEDURE (R)














































PROCESSLISTPROFILEPROFILES














































PROXYPURGE (R)QUARTER














































QUERYQUICKRANGE (R)














































READ (R)READS (R)READ_ONLY














































READ_WRITE (R)REAL (R)REBUILD














































RECOVERREDOFILEREDO_BUFFER_SIZE














































REDUNDANTREFERENCES (R)REGEXP (R)














































RELAYRELAYLOGRELAY_LOG_FILE














































RELAY_LOG_POSRELAY_THREADRELEASE (R)














































RELOADREMOVERENAME (R)














































REORGANIZEREPAIRREPEAT (R)














































REPEATABLEREPLACE (R)REPLICATE_DO_DB[u]














































REPLICATE_DO_TABLE[v]REPLICATE_IGNORE_DB[w]REPLICATE_IGNORE_TABLE[x]














































REPLICATE_REWRITE_DB[y]REPLICATE_WILD_DO_TABLE[z]REPLICATE_WILD_IGNORE_TABLE[aa]














































REPLICATIONREQUIRE (R)RESET














































RESIGNAL (R)RESTORERESTRICT (R)














































RESUMERETURN (R)RETURNED_SQLSTATE














































RETURNSREVERSEREVOKE (R)














































RIGHT (R)RLIKE (R)ROLLBACK














































ROLLUPROTATE[ab]ROUTINE














































ROWROWSROW_COUNT














































ROW_FORMATRTREESAVEPOINT














































SCHEDULESCHEMA (R)SCHEMAS (R)














































SCHEMA_NAMESECONDSECOND_MICROSECOND (R)














































SECURITYSELECT (R)SENSITIVE (R)














































SEPARATOR (R)SERIALSERIALIZABLE














































SERVERSESSIONSET (R)














































SHARESHOW (R)SHUTDOWN














































SIGNAL (R)SIGNEDSIMPLE














































SLAVESLOWSMALLINT (R)














































SNAPSHOTSOCKETSOME














































SONAMESOUNDSSOURCE














































SPATIAL (R)SPECIFIC (R)SQL (R)














































SQLEXCEPTION (R)SQLSTATE (R)SQLWARNING (R)














































SQL_AFTER_GTIDSSQL_AFTER_MTS_GAPSSQL_BEFORE_GTIDS














































SQL_BIG_RESULT (R)SQL_BUFFER_RESULTSQL_CACHE














































SQL_CALC_FOUND_ROWS (R)SQL_NO_CACHESQL_SMALL_RESULT (R)














































SQL_THREADSQL_TSI_DAYSQL_TSI_HOUR














































SQL_TSI_MINUTESQL_TSI_MONTHSQL_TSI_QUARTER














































SQL_TSI_SECONDSQL_TSI_WEEKSQL_TSI_YEAR














































SSL (R)STACKEDSTART














































STARTING (R)STARTSSTATS_AUTO_RECALC














































STATS_PERSISTENTSTATS_SAMPLE_PAGESSTATUS














































STOPSTORAGESTORED[ac] (R)














































STRAIGHT_JOIN (R)STRINGSUBCLASS_ORIGIN














































SUBJECTSUBPARTITIONSUBPARTITIONS














































SUPERSUSPENDSWAPS














































SWITCHESTABLE (R)TABLES














































TABLESPACETABLE_CHECKSUMTABLE_NAME














































TEMPORARYTEMPTABLETERMINATED (R)














































TEXTTHANTHEN (R)














































TIMETIMESTAMPTIMESTAMPADD














































TIMESTAMPDIFFTINYBLOB (R)TINYINT (R)














































TINYTEXT (R)TO (R)TRAILING (R)














































TRANSACTIONTRIGGER (R)TRIGGERS














































TRUE (R)TRUNCATETYPE














































TYPESUNCOMMITTEDUNDEFINED














































UNDO (R)UNDOFILEUNDO_BUFFER_SIZE














































UNICODEUNINSTALLUNION (R)














































UNIQUE (R)UNKNOWNUNLOCK (R)














































UNSIGNED (R)UNTILUPDATE (R)














































UPGRADEUSAGE (R)USE (R)














































USERUSER_RESOURCESUSE_FRM














































USING (R)UTC_DATE (R)UTC_TIME (R)














































UTC_TIMESTAMP (R)VALIDATION[ad]VALUE














































VALUES (R)VARBINARY (R)VARCHAR (R)














































VARCHARACTER (R)VARIABLESVARYING (R)














































VIEWVIRTUAL[ae] (R)WAIT














































WARNINGSWEEKWEIGHT_STRING














































WHEN (R)WHERE (R)WHILE (R)














































WITH (R)WITHOUT[af]WORK














































WRAPPERWRITE (R)X509














































XAXID[ag]XML














































XOR (R)YEARYEAR_MONTH (R)














































ZEROFILL (R)














































[a] ACCOUNT: added in 5.7.6 (nonreserved)

[b] ALWAYS: added in 5.7.6 (nonreserved)

[c] CHANNEL: added in 5.7.6 (nonreserved)

[d] COMPRESSION: added in 5.7.8 (nonreserved)

[e] ENCRYPTION: added in 5.7.11 (nonreserved)

[f] FILE_BLOCK_SIZE: added in 5.7.6 (nonreserved)

[g] FILTER: added in 5.7.3 (nonreserved)

[h] FOLLOWS: added in 5.7.2 (nonreserved)

[i] GENERATED: added in 5.7.6 (reserved)

[j] GROUP_REPLICATION: added in 5.7.6 (nonreserved)

[k] INSTANCE: added in 5.7.11 (nonreserved)

[l] JSON: added in 5.7.8 (nonreserved)

[m] MASTER_TLS_VERSION: added in 5.7.10 (nonreserved)

[n] MAX_STATEMENT_TIME: added in 5.7.4 (nonreserved); removed in 5.7.8

[o] NEVER: added in 5.7.4 (nonreserved)

[p] NONBLOCKING: removed in 5.7.6

[q] OLD_PASSWORD: removed in 5.7.5

[r] OPTIMIZER_COSTS: added in 5.7.5 (reserved)

[s] PARSE_GCOL_EXPR: added in 5.7.6 (reserved); became nonreserved in 5.7.8

[t] PRECEDES: added in 5.7.2 (nonreserved)

[u] REPLICATE_DO_DB: added in 5.7.3 (nonreserved)

[v] REPLICATE_DO_TABLE: added in 5.7.3 (nonreserved)

[w] REPLICATE_IGNORE_DB: added in 5.7.3 (nonreserved)

[x] REPLICATE_IGNORE_TABLE: added in 5.7.3 (nonreserved)

[y] REPLICATE_REWRITE_DB: added in 5.7.3 (nonreserved)

[z] REPLICATE_WILD_DO_TABLE: added in 5.7.3 (nonreserved)

[aa] REPLICATE_WILD_IGNORE_TABLE: added in 5.7.3 (nonreserved)

[ab] ROTATE: added in 5.7.11 (nonreserved)

[ac] STORED: added in 5.7.6 (reserved)

[ad] VALIDATION: added in 5.7.5 (nonreserved)

[ae] VIRTUAL: added in 5.7.6 (reserved)

[af] WITHOUT: added in 5.7.5 (nonreserved)

[ag] XID: added in 5.7.5 (nonreserved)

Table 10.3 Keywords and Reserved Words Added in MySQL 5.7 Compared to MySQL 5.6

ACCOUNTALWAYSCHANNEL
COMPRESSIONENCRYPTIONFILE_BLOCK_SIZE
FILTERFOLLOWSGENERATED (R)
GROUP_REPLICATIONINSTANCEJSON
MASTER_TLS_VERSIONNEVEROPTIMIZER_COSTS (R)
PARSE_GCOL_EXPRPRECEDESREPLICATE_DO_DB
REPLICATE_DO_TABLEREPLICATE_IGNORE_DBREPLICATE_IGNORE_TABLE
REPLICATE_REWRITE_DBREPLICATE_WILD_DO_TABLEREPLICATE_WILD_IGNORE_TABLE
ROTATESTACKEDSTORED (R)
VALIDATIONVIRTUAL (R)WITHOUT
XID

Table 10.4 Keywords and Reserved Words Removed in MySQL 5.7 Compared to MySQL 5.6

OLD_PASSWORD

總結(jié)

以上就是詳解MySQL5.7中的關(guān)鍵字與保留字的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。