MySQL 关键字和保留字汇总(MySQL 8.0)

MySQL 关键字和保留字汇总(MySQL 8.0)

MySQL 关键字和保留字汇总(MySQL 8.0)

       关键字是在SQL中具有重要意义的单词,如果作为列名则会导致SQL语句出错。

       可以使用反引号来避免错误。列如:rank作为保留字,可以采用'rank'

       但是反引号这种方式尽量避免,也就是说列名设计避免关键字与保留字带引号的方式,采取前后缀,多个单词拼接等合理的方式来避免引号

#### A

- `ACCESSIBLE` (R)
- `ACCOUNT`
- `ACTION`
- `ACTIVE`; added in 8.0.14 (nonreserved)
- `ADD` (R)
- `ADMIN`; became nonreserved in 8.0.12
- `AFTER`
- `AGAINST`
- `AGGREGATE`
- `ALGORITHM`
- `ALL` (R)
- `ALTER` (R)
- `ALWAYS`
- `ANALYSE`; removed in 8.0.1
- `ANALYZE` (R)
- `AND` (R)
- `ANY`
- `ARRAY`; added in 8.0.17 (reserved); became nonreserved in 8.0.19
- `AS` (R)
- `ASC` (R)
- `ASCII`
- `ASENSITIVE` (R)
- `AT`
- `ATTRIBUTE`; added in 8.0.21 (nonreserved)
- `AUTOEXTEND_SIZE`
- `AUTO_INCREMENT`
- `AVG`
- `AVG_ROW_LENGTH`
 
#### B
 
- `BACKUP`
- `BEFORE` (R)
- `BEGIN`
- `BETWEEN` (R)
- `BIGINT` (R)
- `BINARY` (R)
- `BINLOG`
- `BIT`
- `BLOB` (R)
- `BLOCK`
- `BOOL`
- `BOOLEAN`
- `BOTH` (R)
- `BTREE`
- `BUCKETS`; added in 8.0.2 (nonreserved)
- `BY` (R)
- `BYTE`
 
#### C
 
- `CACHE`
- `CALL` (R)
- `CASCADE` (R)
- `CASCADED`
- `CASE` (R)
- `CATALOG_NAME`
- `CHAIN`
- `CHANGE` (R)
- `CHANGED`
- `CHANNEL`
- `CHAR` (R)
- `CHARACTER` (R)
- `CHARSET`
- `CHECK` (R)
- `CHECKSUM`
- `CIPHER`
- `CLASS_ORIGIN`
- `CLIENT`
- `CLONE`; added in 8.0.3 (nonreserved)
- `CLOSE`
- `COALESCE`
- `CODE`
- `COLLATE` (R)
- `COLLATION`
- `COLUMN` (R)
- `COLUMNS`
- `COLUMN_FORMAT`
- `COLUMN_NAME`
- `COMMENT`
- `COMMIT`
- `COMMITTED`
- `COMPACT`
- `COMPLETION`
- `COMPONENT`
- `COMPRESSED`
- `COMPRESSION`
- `CONCURRENT`
- `CONDITION` (R)
- `CONNECTION`
- `CONSISTENT`
- `CONSTRAINT` (R)
- `CONSTRAINT_CATALOG`
- `CONSTRAINT_NAME`
- `CONSTRAINT_SCHEMA`
- `CONTAINS`
- `CONTEXT`
- `CONTINUE` (R)
- `CONVERT` (R)
- `CPU`
- `CREATE` (R)
- `CROSS` (R)
- `CUBE` (R); became reserved in 8.0.1
- `CUME_DIST` (R); added in 8.0.2 (reserved)
- `CURRENT`
- `CURRENT_DATE` (R)
- `CURRENT_TIME` (R)
- `CURRENT_TIMESTAMP` (R)
- `CURRENT_USER` (R)
- `CURSOR` (R)
- `CURSOR_NAME`
 
#### D
 
- `DATA`
- `DATABASE` (R)
- `DATABASES` (R)
- `DATAFILE`
- `DATE`
- `DATETIME`
- `DAY`
- `DAY_HOUR` (R)
- `DAY_MICROSECOND` (R)
- `DAY_MINUTE` (R)
- `DAY_SECOND` (R)
- `DEALLOCATE`
- `DEC` (R)
- `DECIMAL` (R)
- `DECLARE` (R)
- `DEFAULT` (R)
- `DEFAULT_AUTH`
- `DEFINER`
- `DEFINITION`; added in 8.0.4 (nonreserved)
- `DELAYED` (R)
- `DELAY_KEY_WRITE`
- `DELETE` (R)
- `DENSE_RANK` (R); added in 8.0.2 (reserved)
- `DESC` (R)
- `DESCRIBE` (R)
- `DESCRIPTION`; added in 8.0.4 (nonreserved)
- `DES_KEY_FILE`; removed in 8.0.3
- `DETERMINISTIC` (R)
- `DIAGNOSTICS`
- `DIRECTORY`
- `DISABLE`
- `DISCARD`
- `DISK`
- `DISTINCT` (R)
- `DISTINCTROW` (R)
- `DIV` (R)
- `DO`
- `DOUBLE` (R)
- `DROP` (R)
- `DUAL` (R)
- `DUMPFILE`
- `DUPLICATE`
- `DYNAMIC`
 
#### E
 
- `EACH` (R)
- `ELSE` (R)
- `ELSEIF` (R)
- `EMPTY` (R); added in 8.0.4 (reserved)
- `ENABLE`
- `ENCLOSED` (R)
- `ENCRYPTION`
- `END`
- `ENDS`
- `ENFORCED`; added in 8.0.16 (nonreserved)
- `ENGINE`
- `ENGINES`
- `ENGINE_ATTRIBUTE`; added in 8.0.21 (nonreserved)
- `ENUM`
- `ERROR`
- `ERRORS`
- `ESCAPE`
- `ESCAPED` (R)
- `EVENT`
- `EVENTS`
- `EVERY`
- `EXCEPT` (R)
- `EXCHANGE`
- `EXCLUDE`; added in 8.0.2 (nonreserved)
- `EXECUTE`
- `EXISTS` (R)
- `EXIT` (R)
- `EXPANSION`
- `EXPIRE`
- `EXPLAIN` (R)
- `EXPORT`
- `EXTENDED`
- `EXTENT_SIZE`
 
#### F
 
- `FAILED_LOGIN_ATTEMPTS`; added in 8.0.19 (nonreserved)
- `FALSE` (R)
- `FAST`
- `FAULTS`
- `FETCH` (R)
- `FIELDS`
- `FILE`
- `FILE_BLOCK_SIZE`
- `FILTER`
- `FIRST`
- `FIRST_VALUE` (R); added in 8.0.2 (reserved)
- `FIXED`
- `FLOAT` (R)
- `FLOAT4` (R)
- `FLOAT8` (R)
- `FLUSH`
- `FOLLOWING`; added in 8.0.2 (nonreserved)
- `FOLLOWS`
- `FOR` (R)
- `FORCE` (R)
- `FOREIGN` (R)
- `FORMAT`
- `FOUND`
- `FROM` (R)
- `FULL`
- `FULLTEXT` (R)
- `FUNCTION` (R); became reserved in 8.0.1
 
#### G
 
- `GENERAL`
- `GENERATED` (R)
- `GEOMCOLLECTION`; added in 8.0.11 (nonreserved)
- `GEOMETRY`
- `GEOMETRYCOLLECTION`
- `GET` (R)
- `GET_FORMAT`
- `GET_MASTER_PUBLIC_KEY`; added in 8.0.4 (reserved); became nonreserved in 8.0.11
- `GLOBAL`
- `GRANT` (R)
- `GRANTS`
- `GROUP` (R)
- `GROUPING` (R); added in 8.0.1 (reserved)
- `GROUPS` (R); added in 8.0.2 (reserved)
- `GROUP_REPLICATION`
 
#### H
 
- `HANDLER`
- `HASH`
- `HAVING` (R)
- `HELP`
- `HIGH_PRIORITY` (R)
- `HISTOGRAM`; added in 8.0.2 (nonreserved)
- `HISTORY`; added in 8.0.3 (nonreserved)
- `HOST`
- `HOSTS`
- `HOUR`
- `HOUR_MICROSECOND` (R)
- `HOUR_MINUTE` (R)
- `HOUR_SECOND` (R)
 
#### I
 
- `IDENTIFIED`
- `IF` (R)
- `IGNORE` (R)
- `IGNORE_SERVER_IDS`
- `IMPORT`
- `IN` (R)
- `INACTIVE`; added in 8.0.14 (nonreserved)
- `INDEX` (R)
- `INDEXES`
- `INFILE` (R)
- `INITIAL_SIZE`
- `INNER` (R)
- `INOUT` (R)
- `INSENSITIVE` (R)
- `INSERT` (R)
- `INSERT_METHOD`
- `INSTALL`
- `INSTANCE`
- `INT` (R)
- `INT1` (R)
- `INT2` (R)
- `INT3` (R)
- `INT4` (R)
- `INT8` (R)
- `INTEGER` (R)
- `INTERVAL` (R)
- `INTO` (R)
- `INVISIBLE`
- `INVOKER`
- `IO`
- `IO_AFTER_GTIDS` (R)
- `IO_BEFORE_GTIDS` (R)
- `IO_THREAD`
- `IPC`
- `IS` (R)
- `ISOLATION`
- `ISSUER`
- `ITERATE` (R)
 
#### J
 
- `JOIN` (R)
- `JSON`
- `JSON_TABLE` (R); added in 8.0.4 (reserved)
- `JSON_VALUE`; added in 8.0.21 (nonreserved)
 
#### K
 
- `KEY` (R)
- `KEYS` (R)
- `KEY_BLOCK_SIZE`
- `KILL` (R)
 
#### L
 
- `LAG` (R); added in 8.0.2 (reserved)
- `LANGUAGE`
- `LAST`
- `LAST_VALUE` (R); added in 8.0.2 (reserved)
- `LATERAL` (R); added in 8.0.14 (reserved)
- `LEAD` (R); added in 8.0.2 (reserved)
- `LEADING` (R)
- `LEAVE` (R)
- `LEAVES`
- `LEFT` (R)
- `LESS`
- `LEVEL`
- `LIKE` (R)
- `LIMIT` (R)
- `LINEAR` (R)
- `LINES` (R)
- `LINESTRING`
- `LIST`
- `LOAD` (R)
- `LOCAL`
- `LOCALTIME` (R)
- `LOCALTIMESTAMP` (R)
- `LOCK` (R)
- `LOCKED`; added in 8.0.1 (nonreserved)
- `LOCKS`
- `LOGFILE`
- `LOGS`
- `LONG` (R)
- `LONGBLOB` (R)
- `LONGTEXT` (R)
- `LOOP` (R)
- `LOW_PRIORITY` (R)
 
#### M
 
- `MASTER`
- `MASTER_AUTO_POSITION`
- `MASTER_BIND` (R)
- `MASTER_COMPRESSION_ALGORITHMS`; added in 8.0.18 (nonreserved)
- `MASTER_CONNECT_RETRY`
- `MASTER_DELAY`
- `MASTER_HEARTBEAT_PERIOD`
- `MASTER_HOST`
- `MASTER_LOG_FILE`
- `MASTER_LOG_POS`
- `MASTER_PASSWORD`
- `MASTER_PORT`
- `MASTER_PUBLIC_KEY_PATH`; added in 8.0.4 (nonreserved)
- `MASTER_RETRY_COUNT`
- `MASTER_SERVER_ID`
- `MASTER_SSL`
- `MASTER_SSL_CA`
- `MASTER_SSL_CAPATH`
- `MASTER_SSL_CERT`
- `MASTER_SSL_CIPHER`
- `MASTER_SSL_CRL`
- `MASTER_SSL_CRLPATH`
- `MASTER_SSL_KEY`
- `MASTER_SSL_VERIFY_SERVER_CERT` (R)
- `MASTER_TLS_CIPHERSUITES`; added in 8.0.19 (nonreserved)
- `MASTER_TLS_VERSION`
- `MASTER_USER`
- `MASTER_ZSTD_COMPRESSION_LEVEL`; added in 8.0.18 (nonreserved)
- `MATCH` (R)
- `MAXVALUE` (R)
- `MAX_CONNECTIONS_PER_HOUR`
- `MAX_QUERIES_PER_HOUR`
- `MAX_ROWS`
- `MAX_SIZE`
- `MAX_UPDATES_PER_HOUR`
- `MAX_USER_CONNECTIONS`
- `MEDIUM`
- `MEDIUMBLOB` (R)
- `MEDIUMINT` (R)
- `MEDIUMTEXT` (R)
- `MEMBER`; added in 8.0.17 (reserved); became nonreserved in 8.0.19
- `MEMORY`
- `MERGE`
- `MESSAGE_TEXT`
- `MICROSECOND`
- `MIDDLEINT` (R)
- `MIGRATE`
- `MINUTE`
- `MINUTE_MICROSECOND` (R)
- `MINUTE_SECOND` (R)
- `MIN_ROWS`
- `MOD` (R)
- `MODE`
- `MODIFIES` (R)
- `MODIFY`
- `MONTH`
- `MULTILINESTRING`
- `MULTIPOINT`
- `MULTIPOLYGON`
- `MUTEX`
- `MYSQL_ERRNO`
 
#### N
 
- `NAME`
- `NAMES`
- `NATIONAL`
- `NATURAL` (R)
- `NCHAR`
- `NDB`
- `NDBCLUSTER`
- `NESTED`; added in 8.0.4 (nonreserved)
- `NETWORK_NAMESPACE`; added in 8.0.16 (nonreserved)
- `NEVER`
- `NEW`
- `NEXT`
- `NO`
- `NODEGROUP`
- `NONE`
- `NOT` (R)
- `NOWAIT`; added in 8.0.1 (nonreserved)
- `NO_WAIT`
- `NO_WRITE_TO_BINLOG` (R)
- `NTH_VALUE` (R); added in 8.0.2 (reserved)
- `NTILE` (R); added in 8.0.2 (reserved)
- `NULL` (R)
- `NULLS`; added in 8.0.2 (nonreserved)
- `NUMBER`
- `NUMERIC` (R)
- `NVARCHAR`
 
#### O
 
- `OF` (R); added in 8.0.1 (reserved)
- `OFF`; added in 8.0.20 (nonreserved)
- `OFFSET`
- `OJ`; added in 8.0.16 (nonreserved)
- `OLD`; added in 8.0.14 (nonreserved)
- `ON` (R)
- `ONE`
- `ONLY`
- `OPEN`
- `OPTIMIZE` (R)
- `OPTIMIZER_COSTS` (R)
- `OPTION` (R)
- `OPTIONAL`; added in 8.0.13 (nonreserved)
- `OPTIONALLY` (R)
- `OPTIONS`
- `OR` (R)
- `ORDER` (R)
- `ORDINALITY`; added in 8.0.4 (nonreserved)
- `ORGANIZATION`; added in 8.0.4 (nonreserved)
- `OTHERS`; added in 8.0.2 (nonreserved)
- `OUT` (R)
- `OUTER` (R)
- `OUTFILE` (R)
- `OVER` (R); added in 8.0.2 (reserved)
- `OWNER`
 
#### P
 
- `PACK_KEYS`
- `PAGE`
- `PARSER`
- `PARTIAL`
- `PARTITION` (R)
- `PARTITIONING`
- `PARTITIONS`
- `PASSWORD`
- `PASSWORD_LOCK_TIME`; added in 8.0.19 (nonreserved)
- `PATH`; added in 8.0.4 (nonreserved)
- `PERCENT_RANK` (R); added in 8.0.2 (reserved)
- `PERSIST`; became nonreserved in 8.0.16
- `PERSIST_ONLY`; added in 8.0.2 (reserved); became nonreserved in 8.0.16
- `PHASE`
- `PLUGIN`
- `PLUGINS`
- `PLUGIN_DIR`
- `POINT`
- `POLYGON`
- `PORT`
- `PRECEDES`
- `PRECEDING`; added in 8.0.2 (nonreserved)
- `PRECISION` (R)
- `PREPARE`
- `PRESERVE`
- `PREV`
- `PRIMARY` (R)
- `PRIVILEGES`
- `PRIVILEGE_CHECKS_USER`; added in 8.0.18 (nonreserved)
- `PROCEDURE` (R)
- `PROCESS`; added in 8.0.11 (nonreserved)
- `PROCESSLIST`
- `PROFILE`
- `PROFILES`
- `PROXY`
- `PURGE` (R)
 
#### Q
 
- `QUARTER`
- `QUERY`
- `QUICK`
 
#### R
 
- `RANDOM`; added in 8.0.18 (nonreserved)
- `RANGE` (R)
- `RANK` (R); added in 8.0.2 (reserved)
- `READ` (R)
- `READS` (R)
- `READ_ONLY`
- `READ_WRITE` (R)
- `REAL` (R)
- `REBUILD`
- `RECOVER`
- `RECURSIVE` (R); added in 8.0.1 (reserved)
- `REDOFILE`; removed in 8.0.3
- `REDO_BUFFER_SIZE`
- `REDUNDANT`
- `REFERENCE`; added in 8.0.4 (nonreserved)
- `REFERENCES` (R)
- `REGEXP` (R)
- `RELAY`
- `RELAYLOG`
- `RELAY_LOG_FILE`
- `RELAY_LOG_POS`
- `RELAY_THREAD`
- `RELEASE` (R)
- `RELOAD`
- `REMOTE`; added in 8.0.3 (nonreserved); removed in 8.0.14
- `REMOVE`
- `RENAME` (R)
- `REORGANIZE`
- `REPAIR`
- `REPEAT` (R)
- `REPEATABLE`
- `REPLACE` (R)
- `REPLICA`; added in 8.0.22 (nonreserved)
- `REPLICAS`; added in 8.0.22 (nonreserved)
- `REPLICATE_DO_DB`
- `REPLICATE_DO_TABLE`
- `REPLICATE_IGNORE_DB`
- `REPLICATE_IGNORE_TABLE`
- `REPLICATE_REWRITE_DB`
- `REPLICATE_WILD_DO_TABLE`
- `REPLICATE_WILD_IGNORE_TABLE`
- `REPLICATION`
- `REQUIRE` (R)
- `REQUIRE_ROW_FORMAT`; added in 8.0.19 (nonreserved)
- `RESET`
- `RESIGNAL` (R)
- `RESOURCE`; added in 8.0.3 (nonreserved)
- `RESPECT`; added in 8.0.2 (nonreserved)
- `RESTART`; added in 8.0.4 (nonreserved)
- `RESTORE`
- `RESTRICT` (R)
- `RESUME`
- `RETAIN`; added in 8.0.14 (nonreserved)
- `RETURN` (R)
- `RETURNED_SQLSTATE`
- `RETURNING`; added in 8.0.21 (nonreserved)
- `RETURNS`
- `REUSE`; added in 8.0.3 (nonreserved)
- `REVERSE`
- `REVOKE` (R)
- `RIGHT` (R)
- `RLIKE` (R)
- `ROLE`; became nonreserved in 8.0.1
- `ROLLBACK`
- `ROLLUP`
- `ROTATE`
- `ROUTINE`
- `ROW` (R); became reserved in 8.0.2
- `ROWS` (R); became reserved in 8.0.2
- `ROW_COUNT`
- `ROW_FORMAT`
- `ROW_NUMBER` (R); added in 8.0.2 (reserved)
- `RTREE`
 
#### S
 
- `SAVEPOINT`
- `SCHEDULE`
- `SCHEMA` (R)
- `SCHEMAS` (R)
- `SCHEMA_NAME`
- `SECOND`
- `SECONDARY`; added in 8.0.16 (nonreserved)
- `SECONDARY_ENGINE`; added in 8.0.13 (nonreserved)
- `SECONDARY_ENGINE_ATTRIBUTE`; added in 8.0.21 (nonreserved)
- `SECONDARY_LOAD`; added in 8.0.13 (nonreserved)
- `SECONDARY_UNLOAD`; added in 8.0.13 (nonreserved)
- `SECOND_MICROSECOND` (R)
- `SECURITY`
- `SELECT` (R)
- `SENSITIVE` (R)
- `SEPARATOR` (R)
- `SERIAL`
- `SERIALIZABLE`
- `SERVER`
- `SESSION`
- `SET` (R)
- `SHARE`
- `SHOW` (R)
- `SHUTDOWN`
- `SIGNAL` (R)
- `SIGNED`
- `SIMPLE`
- `SKIP`; added in 8.0.1 (nonreserved)
- `SLAVE`
- `SLOW`
- `SMALLINT` (R)
- `SNAPSHOT`
- `SOCKET`
- `SOME`
- `SONAME`
- `SOUNDS`
- `SOURCE`
- `SPATIAL` (R)
- `SPECIFIC` (R)
- `SQL` (R)
- `SQLEXCEPTION` (R)
- `SQLSTATE` (R)
- `SQLWARNING` (R)
- `SQL_AFTER_GTIDS`
- `SQL_AFTER_MTS_GAPS`
- `SQL_BEFORE_GTIDS`
- `SQL_BIG_RESULT` (R)
- `SQL_BUFFER_RESULT`
- `SQL_CACHE`; removed in 8.0.3
- `SQL_CALC_FOUND_ROWS` (R)
- `SQL_NO_CACHE`
- `SQL_SMALL_RESULT` (R)
- `SQL_THREAD`
- `SQL_TSI_DAY`
- `SQL_TSI_HOUR`
- `SQL_TSI_MINUTE`
- `SQL_TSI_MONTH`
- `SQL_TSI_QUARTER`
- `SQL_TSI_SECOND`
- `SQL_TSI_WEEK`
- `SQL_TSI_YEAR`
- `SRID`; added in 8.0.3 (nonreserved)
- `SSL` (R)
- `STACKED`
- `START`
- `STARTING` (R)
- `STARTS`
- `STATS_AUTO_RECALC`
- `STATS_PERSISTENT`
- `STATS_SAMPLE_PAGES`
- `STATUS`
- `STOP`
- `STORAGE`
- `STORED` (R)
- `STRAIGHT_JOIN` (R)
- `STREAM`; added in 8.0.20 (nonreserved)
- `STRING`
- `SUBCLASS_ORIGIN`
- `SUBJECT`
- `SUBPARTITION`
- `SUBPARTITIONS`
- `SUPER`
- `SUSPEND`
- `SWAPS`
- `SWITCHES`
- `SYSTEM` (R); added in 8.0.3 (reserved)
 
#### T
 
- `TABLE` (R)
- `TABLES`
- `TABLESPACE`
- `TABLE_CHECKSUM`
- `TABLE_NAME`
- `TEMPORARY`
- `TEMPTABLE`
- `TERMINATED` (R)
- `TEXT`
- `THAN`
- `THEN` (R)
- `THREAD_PRIORITY`; added in 8.0.3 (nonreserved)
- `TIES`; added in 8.0.2 (nonreserved)
- `TIME`
- `TIMESTAMP`
- `TIMESTAMPADD`
- `TIMESTAMPDIFF`
- `TINYBLOB` (R)
- `TINYINT` (R)
- `TINYTEXT` (R)
- `TLS`; added in 8.0.21 (nonreserved)
- `TO` (R)
- `TRAILING` (R)
- `TRANSACTION`
- `TRIGGER` (R)
- `TRIGGERS`
- `TRUE` (R)
- `TRUNCATE`
- `TYPE`
- `TYPES`
 
#### U
 
- `UNBOUNDED`; added in 8.0.2 (nonreserved)
- `UNCOMMITTED`
- `UNDEFINED`
- `UNDO` (R)
- `UNDOFILE`
- `UNDO_BUFFER_SIZE`
- `UNICODE`
- `UNINSTALL`
- `UNION` (R)
- `UNIQUE` (R)
- `UNKNOWN`
- `UNLOCK` (R)
- `UNSIGNED` (R)
- `UNTIL`
- `UPDATE` (R)
- `UPGRADE`
- `USAGE` (R)
- `USE` (R)
- `USER`
- `USER_RESOURCES`
- `USE_FRM`
- `USING` (R)
- `UTC_DATE` (R)
- `UTC_TIME` (R)
- `UTC_TIMESTAMP` (R)
 
#### V
 
- `VALIDATION`
- `VALUE`
- `VALUES` (R)
- `VARBINARY` (R)
- `VARCHAR` (R)
- `VARCHARACTER` (R)
- `VARIABLES`
- `VARYING` (R)
- `VCPU`; added in 8.0.3 (nonreserved)
- `VIEW`
- `VIRTUAL` (R)
- `VISIBLE`
 
#### W
 
- `WAIT`
- `WARNINGS`
- `WEEK`
- `WEIGHT_STRING`
- `WHEN` (R)
- `WHERE` (R)
- `WHILE` (R)
- `WINDOW` (R); added in 8.0.2 (reserved)
- `WITH` (R)
- `WITHOUT`
- `WORK`
- `WRAPPER`
- `WRITE` (R)
 
#### X
 
- `X509`
- `XA`
- `XID`
- `XML`
- `XOR` (R)
 
#### Y
 
- `YEAR`
- `YEAR_MONTH` (R)
 
#### Z
 
- `ZEROFILL` (R)
- `ZONE`; added in 8.0.22 (nonreserved)
 
## MySQL 8.0新关键字和保留字
 
下表显示了与MySQL 5.7相比在MySQL 8.0中添加的关键字和保留字。保留的关键字标有(R)。
 
#### A
 
- `ACTIVE`
- `ADMIN`
- `ARRAY`
- `ATTRIBUTE`
 
#### B
 
- `BUCKETS`
 
#### C
 
- `CLONE`
- `COMPONENT`
- `CUME_DIST` (R)
 
#### D
 
- `DEFINITION`
- `DENSE_RANK` (R)
- `DESCRIPTION`
 
#### E
 
- `EMPTY` (R)
- `ENFORCED`
- `ENGINE_ATTRIBUTE`
- `EXCEPT` (R)
- `EXCLUDE`
 
#### F
 
- `FAILED_LOGIN_ATTEMPTS`
- `FIRST_VALUE` (R)
- `FOLLOWING`
 
#### G
 
- `GEOMCOLLECTION`
- `GET_MASTER_PUBLIC_KEY`
- `GROUPING` (R)
- `GROUPS` (R)
 
#### H
 
- `HISTOGRAM`
- `HISTORY`
 
#### I
 
- `INACTIVE`
- `INVISIBLE`
 
#### J
 
- `JSON_TABLE` (R)
- `JSON_VALUE`
 
#### L
 
- `LAG` (R)
- `LAST_VALUE` (R)
- `LATERAL` (R)
- `LEAD` (R)
- `LOCKED`
 
#### M
 
- `MASTER_COMPRESSION_ALGORITHMS`
- `MASTER_PUBLIC_KEY_PATH`
- `MASTER_TLS_CIPHERSUITES`
- `MASTER_ZSTD_COMPRESSION_LEVEL`
- `MEMBER`
 
#### N
 
- `NESTED`
- `NETWORK_NAMESPACE`
- `NOWAIT`
- `NTH_VALUE` (R)
- `NTILE` (R)
- `NULLS`
 
#### O
 
- `OF` (R)
- `OFF`
- `OJ`
- `OLD`
- `OPTIONAL`
- `ORDINALITY`
- `ORGANIZATION`
- `OTHERS`
- `OVER` (R)
 
#### P
 
- `PASSWORD_LOCK_TIME`
- `PATH`
- `PERCENT_RANK` (R)
- `PERSIST`
- `PERSIST_ONLY`
- `PRECEDING`
- `PRIVILEGE_CHECKS_USER`
- `PROCESS`
 
#### R
 
- `RANDOM`
- `RANK` (R)
- `RECURSIVE` (R)
- `REFERENCE`
- `REPLICA`
- `REPLICAS`
- `REQUIRE_ROW_FORMAT`
- `RESOURCE`
- `RESPECT`
- `RESTART`
- `RETAIN`
- `RETURNING`
- `REUSE`
- `ROLE`
- `ROW_NUMBER` (R)
 
#### S
 
- `SECONDARY`
- `SECONDARY_ENGINE`
- `SECONDARY_ENGINE_ATTRIBUTE`
- `SECONDARY_LOAD`
- `SECONDARY_UNLOAD`
- `SKIP`
- `SRID`
- `STREAM`
- `SYSTEM` (R)
 
#### T
 
- `THREAD_PRIORITY`
- `TIES`
- `TLS`
 
#### U
 
- `UNBOUNDED`
 
#### V
 
- `VCPU`
- `VISIBLE`
 
#### W
 
- `WINDOW` (R)
 
#### Z
 
- `ZONE`

       MySQL 8.0删除了关键字和保留字:

下表显示了与MySQL 5.7相比在MySQL 8.0中删除的关键字和保留字。保留的关键字标有(R)。
 
- `ANALYSE`
- `DES_KEY_FILE`
- `PARSE_GCOL_EXPR`
- `REDOFILE`
- `SQL_CACHE`
<think>嗯,用户问的是如何使用awk命令去除第一列。首先,我得回忆一下awk的基本用法。awk是一个处理文本文件的强大工具,可以按列处理数据。用户的需求是去掉第一列,也就是保留从第二列开始的所有内容。 首先,awk默认使用空格或制表符作为字段分隔符,所以一般情况下,每行的第一列是$1,后面的列可以用$2, $3等表示。要删除第一列,可能需要输出从第二列开始到最后一列的内容。这时候,可能需要用到循环或者从第二个字段开始打印。 不过,直接的方法可能更简单。比如,使用$0变量表示整行,然后通过substr或替换的方式去掉第一个字段。但这种方法可能不够灵活,特别是当字段之间有多个空格的时候,或者第一列的长度不固定的话,处理起来可能会有问题。 另一个方法是使用awk的字段处理功能。比如,设置OFS(输出字段分隔符)为空格,然后从第二个字段开始打印。但如何打印从第二个字段到最后一个字段呢?可能需要用循环,从i=2开始遍历到NF,然后依次打印每个字段,并用OFS连接。但这样可能会比较麻烦,尤其是在处理大文件时效率可能不高。 或者,有没有更简洁的方法?比如,重新构建记录,把第一个字段去掉。可以使用sub函数替换掉第一个字段后面的分隔符。比如,sub(/^[^ ]* /, ""),这会将行首的第一个字段紧随其后的空格替换为空字符串。不过,这种方法依赖于字段之间的分隔符是空格,如果是其他分隔符的话需要调整正则表达式。 另外,用户可能不知道如何处理不同分隔符的情况。比如,如果文件是以逗号分隔的,这时候需要指定-F参数,比如-F',',然后在处理的时候也要相应调整。但用户的问题中没有提到分隔符,所以可能默认是空格或制表符。 再想一下,有没有更通用的方法。比如,将分隔符设置为默认,然后打印从第二个字段开始的所有字段。这时候可以用for循环,从i=2开始,逐个打印,并在字段之间加上OFS。不过这样处理的话,如果字段之间有多个空格,输出时可能会被压缩成一个,除非设置OFS为原来的分隔符。但这样可能比较复杂。 或者,可以使用cut命令,cut -d' ' -f2-,但cut在处理不定空格时可能不太方便,而awk更灵活。用户可能更倾向于用awk解决这个问题,所以才提问。 总结下来,可能的解决方案有两种: 1. 使用sub函数替换掉第一个字段后面的分隔符。 awk '{sub(/^[^ ]* */, ""); print}' 2. 使用循环从第二个字段开始打印,直到最后一个字段。 awk '{for(i=2;i<=NF;i++) printf("%s%s", $i, (i==NF)? "\n" : OFS)}' 或者,更简洁的方式是重新赋值$1为空,然后打印剩下的,但这样可能不奏效,因为$1被赋空后,$0会重新计算,可能保留其他字段。例如: awk '{$1=""; print $0}' 不过这种方法可能会在行首留下一个空格,因为原来的第一个字段被删除后,OFS会在前面添加。比如,原本是"a b c",处理后变成" b c"。这时候可能需要进一步处理,比如用sub去掉开头的空格。 所以,综合来看,可能推荐的命令是: awk '{$1=""; sub(/^ */, ""); print}' 或者更简单的: awk '{sub(/^[^[:space:]]*[[:space:]]+/,"")}1' 这样可以处理各种空白字符,比如空格或制表符,并且去掉第一个字段及后面的空白。 需要测试不同的情况,比如字段之间有多个空格,或者制表符分隔的情况。确保命令的通用性。 另外,用户可能对awk不熟悉,需要解释每个部分的作用。比如,sub函数的作用,正则表达式的含义,以及最后的1为何触发打印操作。 可能还需要提醒用户,如果文件有特定的分隔符,需要使用-F选项指定,例如-F'\t'处理制表符分隔的文件。 总结回答的结构应该是先介绍基本用法,再给出几种不同的方法,并解释其适用场景,以及可能的注意事项,比如行首空格的问题。</think>使用`awk`命令去除文本第一列主要有以下几种方法,以下是逐步说明: --- ### **方法一:重新构建字段** ```bash awk '{$1=""; print substr($0, 2)}' filename ``` - **原理**: 1. `$1=""`:清空第一列内容。 2. `substr($0, 2)`:从整行内容 (`$0`) 的第2个字符开始截取,跳过因删除`$1`产生的首空格。 - **注意**:适用于字段间以空格分隔,且第一列后无多余空格的情况。 --- ### **方法二:正则替换** ```bash awk '{sub(/^[^[:space:]]*[[:space:]]*/, ""); print}' filename ``` - **原理**: 1. `sub(/^[^[:space:]]*[[:space:]]*/, "")`:用正则匹配行首的第一个字段及紧随的空格/制表符,替换为空。 2. `[^[:space:]]*`匹配非空白字符(第一列内容),`[[:space:]]*`匹配后续空白。 - **优势**:兼容空格、制表符等不同分隔符。 --- ### **方法三:遍历字段** ```bash awk '{for (i=2; i<=NF; i++) printf "%s%s", $i, (i==NF) ? "\n" : OFS}' filename ``` - **原理**: 1. `for (i=2; i<=NF; i++)`:从第二列开始遍历所有字段。 2. `printf "%s%s", $i, ...`:依次打印字段,末尾换行。 - **优势**:完全控制输出格式,适合复杂分隔符场景。 --- ### **定制分隔符** 若文件以特定字符(如逗号`,`)分隔,需用 `-F` 指定: ```bash awk -F',' '{sub(/^[^,]*,/, ""); print}' filename ``` - `-F','` 指定逗号为分隔符,正则匹配第一个逗号前的内容并删除。 --- ### **总结** - **简单场景**:使用方法一或方法二。 - **复杂分隔符**:使用方法三或定制`-F`参数。 - **注意事项**:若行首可能残留空格,可用`sub(/^ +/, "")`进一步清理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值