拓展阅读
ORM-01-Hibernate、MyBatis、EclipseLink、Spring Data JPA、TopLink、ActiveJDBC、Querydsl 和 JOOQ 对比
ORM-02-Hibernate 对象关系映射(ORM)框架
ORM-02-JPA Java Persistence API 入门介绍
前言
自己通过 jdbc 实现了一个 数据库查询工具,不过后来想拓展查询功能时,总觉得不够尽兴。
所以在想能不能把 SQL 的构建单独抽离出来。
这里整理学习下其他的组件。
需求
梳理常见的关键词。
MySQL 关键字以及保留字
关键字是在SQL中具有重要意义的单词。
某些关键字,如
被保留,需要用作标识符,例如表和列名特殊待遇。内置函数的名称也可能如此。
允许使用非保留关键字作为标识符而无需引用。
A
ACCESSIBLE(R)ACCOUNTACTIONACTIVE; added in 8.0.14 (nonreserved)ADD(R)ADMIN; became nonreserved in 8.0.12AFTERAGAINSTAGGREGATEALGORITHMALL(R)ALTER(R)ALWAYSANALYSE; removed in 8.0.1ANALYZE(R)AND(R)ANYARRAY; added in 8.0.17 (reserved); became nonreserved in 8.0.19AS(R)ASC(R)ASCIIASENSITIVE(R)ATATTRIBUTE; added in 8.0.21 (nonreserved)AUTOEXTEND_SIZEAUTO_INCREMENTAVGAVG_ROW_LENGTH
解释
-
ACCESSIBLE(R) - 确定一个用户是否有权限访问表中的某些列。示例:
SELECT * FROM my_table WHERE col1 = 'value' AND ACCESSIBLE BY 'user'@'host'; -
ACCOUNT- 用户的登录信息和权限。示例:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; -
ACTION- 触发器或约束中定义的操作。示例:
CREATE TRIGGER my_trigger AFTER INSERT ON my_table FOR EACH ROW BEGIN ... END; -
ACTIVE- 标识活跃状态,通常用于描述连接或会话。示例:
SHOW PROCESSLIST; -
ADD(R) - 向表中添加新列或索引。示例:
ALTER TABLE my_table ADD COLUMN new_column INT; -
ADMIN- 管理员用户的特殊权限。示例:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost'; -
AFTER- 指定在表中的某个列之后添加新列。示例:
ALTER TABLE my_table ADD COLUMN new_column INT AFTER existing_column; -
AGAINST- 在全文搜索中使用。示例:
SELECT * FROM articles WHERE MATCH (title, content) AGAINST ('MySQL'); -
AGGREGATE- 指与 GROUP BY 一起使用的聚合函数。示例:
SELECT AVG(column_name) FROM my_table GROUP BY group_column; -
ALGORITHM- 指定 MySQL 使用的算法来处理特定操作。示例:
ALTER TABLE my_table ALGORITHM=INPLACE; -
ALL(R) - 用于子查询中返回所有行。示例:
SELECT * FROM my_table WHERE column_name > ALL (SELECT other_column FROM other_table); -
ALTER(R) - 修改表的结构。示例:
ALTER TABLE my_table MODIFY COLUMN column_name VARCHAR(100); -
ALWAYS- 始终执行特定操作或触发器。示例:
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW SET NEW.column_name = 'value'; -
ANALYZE(R) - 分析表以获取统计信息以优化查询。示例:
ANALYZE TABLE my_table; -
AND(R) - 逻辑 AND 操作符,用于连接两个条件。示例:
SELECT * FROM my_table WHERE column1 = 'value' AND column2 = 'value'; -
ANY- 与子查询中的某些条件匹配。示例:
SELECT * FROM my_table WHERE column_name = ANY (SELECT other_column FROM other_table); -
ARRAY- 存储数组类型的数据。示例:
CREATE TABLE my_table (id INT, numbers JSON); -
AS(R) - 为列或表指定别名。示例:
SELECT column_name AS alias_name FROM my_table; -
ASC(R) - 指定升序排序。示例:
SELECT * FROM my_table ORDER BY column_name ASC; -
ASCII- 返回字符的 ASCII 值。示例:
SELECT ASCII('A'); -
ASENSITIVE(R) - 指定对大小写敏感的搜索。示例:
SELECT * FROM my_table WHERE column_name COLLATE utf8_general_ci ASENSITIVE; -
AT- 指定触发器的执行时间。示例:
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW AT TIME ZONE 'UTC'; -
ATTRIBUTE- 表示列的特性。示例:
ALTER TABLE my_table MODIFY COLUMN column_name INT ATTRIBUTE 'UNSIGNED'; -
AUTOEXTEND_SIZE- 指定自动扩展文件大小的大小。示例:
ALTER TABLESPACE my_tablespace AUTOEXTEND_SIZE = 1G; -
AUTO_INCREMENT- 自动递增列的属性。示例:
CREATE TABLE my_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100)); -
AVG- 返回列的平均值。示例:
SELECT AVG(column_name) FROM my_table; -
AVG_ROW_LENGTH- 返回表的平均行长度。示例:
SHOW TABLE STATUS LIKE 'my_table';
B
BACKUPBEFORE(R)BEGINBETWEEN(R)BIGINT(R)BINARY(R)BINLOGBITBLOB(R)BLOCKBOOLBOOLEANBOTH(R)BTREEBUCKETS; added in 8.0.2 (nonreserved)BY(R)BYTE
解释
-
BACKUP- 备份数据库或表的操作或策略。示例:
BACKUP DATABASE my_database TO '/backup/path'; -
BEFORE(R) - 触发器中触发事件之前的时间点。示例:
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW BEGIN ... END; -
BEGIN- 标识事务的开始。示例:
BEGIN; -- SQL statements COMMIT; -
BETWEEN(R) - 用于确定值是否在指定范围内。示例:
SELECT * FROM my_table WHERE column_name BETWEEN 10 AND 100; -
BIGINT(R) - 用于存储大整数值的数据类型。示例:
CREATE TABLE my_table (id BIGINT PRIMARY KEY, name VARCHAR(100)); -
BINARY(R) - 用于表示二进制数据的数据类型。示例:
CREATE TABLE my_table (id INT, binary_data BINARY(100)); -
BINLOG- MySQL 中二进制日志文件的名称或相关操作。示例:
SHOW BINLOG EVENTS; -
BIT- 用于存储位字段值的数据类型。示例:
CREATE TABLE my_table (flags BIT(8)); -
BLOB(R) - 用于存储大型二进制对象的数据类型。示例:
CREATE TABLE my_table (id INT, blob_data BLOB); -
BLOCK- 在 MySQL 中用于数据存储的单元。示例:
ALTER TABLE my_table BLOCK_SIZE = 8192; -
BOOL- 布尔值数据类型的别名。示例:
CREATE TABLE my_table (is_active BOOL); -
BOOLEAN- 布尔值数据类型的别名。示例:
CREATE TABLE my_table (is_active BOOLEAN); -
BOTH(R) - 用于指定两个条件都为真。示例:
SELECT * FROM my_table WHERE condition1 AND condition2; -
BTREE- 在 MySQL 中指定索引类型。示例:
CREATE INDEX idx_name ON my_table (column_name) USING BTREE; -
BUCKETS- MySQL 中存储引擎 InnoDB 的一种特性。示例:
ALTER TABLE my_table SET BUCKETS = 10; -
BY(R) - 用于指定排序顺序或分组条件。示例:
SELECT * FROM my_table ORDER BY column_name ASC; -
BYTE- 字节数据类型的别名。示例:
CREATE TABLE my_table (data BYTE);
C
CACHECALL(R)CASCADE(R)CASCADEDCASE(R)CATALOG_NAMECHAINCHANGE(R)CHANGEDCHANNELCHAR(R)CHARACTER(R)CHARSETCHECK(R)CHECKSUMCIPHERCLASS_ORIGINCLIENTCLONE; added in 8.0.3 (nonreserved)CLOSECOALESCECODECOLLATE(R)COLLATIONCOLUMN(R)COLUMNSCOLUMN_FORMATCOLUMN_NAMECOMMENTCOMMITCOMMITTEDCOMPACTCOMPLETIONCOMPONENTCOMPRESSEDCOMPRESSIONCONCURRENTCONDITION(R)CONNECTIONCONSISTENTCONSTRAINT(R)CONSTRAINT_CATALOGCONSTRAINT_NAMECONSTRAINT_SCHEMACONTAINSCONTEXTCONTINUE(R)CONVERT(R)CPUCREATE(R)CROSS(R)CUBE(R); became reserved in 8.0.1CUME_DIST(R); added in 8.0.2 (reserved)CURRENTCURRENT_DATE(R)CURRENT_TIME(R)CURRENT_TIMESTAMP(R)CURRENT_USER(R)CURSOR(R)CURSOR_NAME
给出解释和示例
-
CACHE- 用于存储数据的缓存区域。示例:
CACHE INDEX my_index INNODB; -
CALL(R) - 调用存储过程或函数。示例:
CALL my_stored_procedure(); -
CASCADE(R) - 在删除或更新父表中的行时,同时删除或更新子表中的相关行。示例:
ALTER TABLE parent_table DROP COLUMN parent_id CASCADE; -
CASCADED- 指定级联操作。示例:
ALTER TABLE parent_table DROP COLUMN parent_id CASCADE; -
CASE(R) - 条件语句中的关键词。示例:
SELECT CASE WHEN column_name = 'value' THEN 'Result A' ELSE 'Result B' END AS result FROM my_table; -
CATALOG_NAME- 数据库的目录名称。示例:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'my_database' AND TABLE_CATALOG = 'my_catalog'; -
CHAIN- 指定多个存储过程或函数之间的链接。示例:
CREATE PROCEDURE proc1() SQL SECURITY INVOKER COMMENT 'Procedure 1' CHAIN proc2(); -
CHANGE(R) - 修改表中的列或索引。示例:
ALTER TABLE my_table CHANGE COLUMN old_column new_column VARCHAR(100); -
CHANGED- 指示最后一次修改的时间。示例:
SELECT * FROM my_table WHERE CHANGED = '2024-03-25'; -
CHANNEL- 指定复制通道。示例:
CHANGE MASTER TO MASTER_HOST='host_name', MASTER_CHANNEL='channel_name'; -
CHAR(R) - 字符数据类型。示例:
CREATE TABLE my_table (char_column CHAR(10)); -
CHARACTER(R) - 字符集相关。示例:
ALTER DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
CHARSET- 指定字符集。示例:
SET NAMES 'utf8mb4'; -
CHECK(R) - 约束中的检查条件。示例:
CREATE TABLE my_table (column_name INT CHECK (column_name > 0)); -
CHECKSUM- 表的校验和。示例:
CHECKSUM TABLE my_table; -
CIPHER- 加密算法的名称。示例:
CREATE USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password' REQUIRE CIPHER 'AES128'; -
CLASS_ORIGIN- 错误消息的类别。示例:
SELECT CLASS_ORIGIN FROM INFORMATION_SCHEMA.SYSTEM_ERRORS WHERE ERROR_CODE = 1064; -
CLIENT- MySQL 客户端相关的属性。示例:
SHOW VARIABLES LIKE 'client_%'; -
CLONE- 克隆表或数据。示例:
CLONE TABLE my_table TO my_new_table; -
CLOSE- 关闭游标。示例:
CLOSE cursor_name; -
COALESCE- 返回参数列表中的第一个非空值。示例:
SELECT COALESCE(column_name, 'default_value') FROM my_table; -
CODE- 错误代码。示例:
SELECT CODE FROM INFORMATION_SCHEMA.SYSTEM_ERRORS WHERE ERROR_CODE = 1064; -
COLLATE(R) - 指定字符集和校对规则。示例:
SELECT * FROM my_table ORDER BY column_name COLLATE utf8mb4_general_ci; -
COLLATION- 数据库或表的排序规则。示例:
CREATE TABLE my_table (column_name VARCHAR(100) COLLATE utf8mb4_general_ci); -
COLUMN(R) - 列相关的操作。示例:
ALTER TABLE my_table ADD COLUMN new_column INT; -
COLUMNS- 表中的列信息。示例:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'my_table'; -
COLUMN_FORMAT- 列的存储格式。示例:
ALTER TABLE my_table MODIFY COLUMN column_name VARCHAR(100) COLUMN_FORMAT FIXED; -
COLUMN_NAME- 列的名称。示例:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'my_table'; -
COMMENT- 对数据库对象添加注释。示例:
COMMENT ON TABLE my_table IS 'This is a table comment'; -
COMMIT- 提交事务。示例:
COMMIT; -
COMMITTED- 指示是否提交了事务。示例:
SELECT * FROM my_table WHERE COMMITTED = 1; -
COMPACT- 压缩表或索引。示例:
ALTER TABLE my_table COMPACT; -
COMPLETION- 事务提交时的处理方式。示例:
SET autocommit = 1; -
COMPONENT- MySQL 组件。示例:
INSTALL COMPONENT "file://component_name"; -
COMPRESSED- 表的压缩属性。示例:
ALTER TABLE my_table ROW_FORMAT=COMPRESSED; -
COMPRESSION- 表的压缩算法。示例:
CREATE TABLE my_table (column_name INT) COMPRESSION='zlib'; -
.
CONCURRENT- 并发操作相关。
示例:
ALTER TABLE my_table ADD COLUMN new_column INT, ALGORITHM=INPLACE, LOCK=NONE;
CONDITION(R) - 条件语句中的条件。
示例:
IF condition THEN statements;
CONNECTION- 客户端连接。
示例:
SHOW STATUS LIKE 'Threads_connected';
CONSISTENT- 一致性快照读取。
示例:
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
CONSTRAINT(R) - 约束条件。
示例:
ALTER TABLE my_table ADD CONSTRAINT constraint_name UNIQUE (column_name);
CONSTRAINT_CATALOG- 约束的目录名称。
示例:
SELECT CONSTRAINT_CATALOG FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'my_table';
CONSTRAINT_NAME- 约束的名称。
示例:
SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'my_table';
CONSTRAINT_SCHEMA- 约束所在的数据库名称。
示例:
SELECT CONSTRAINT_SCHEMA FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'my_table';
CONTAINS- 判断是否包含指定字符串。
示例:
SELECT * FROM my_table WHERE column_name CONTAINS 'substring';
CONTEXT- 事务上下文。
示例:
SELECT @@GLOBAL.autocommit;
CONTINUE(R) - 继续循环中的下一次迭代。
示例:
WHILE condition DO ... END WHILE;
CONVERT(R) - 数据类型转换。
示例:
SELECT CONVERT('2024-03-25', DATE);
CPU- CPU 相关的状态信息。
示例:
SHOW STATUS LIKE 'cpu%';
CREATE(R) - 创建数据库对象。
示例:
CREATE TABLE my_table (id INT, name VARCHAR(100));
CROSS(R) - 交叉连接。
示例:
SELECT * FROM table1 CROSS JOIN table2;
CUBE(R) - 多维数据分析中的 CUBE 操作。
示例:
SELECT * FROM my_cube GROUP BY CUBE(column1, column2);
CUME_DIST(R) - 窗口函数,返回当前行的累积分布值。
示例:
SELECT column_name, CUME_DIST() OVER (ORDER BY column_name) AS cume_dist FROM my_table;
CURRENT- 返回当前时间戳或用户。
示例:
SELECT CURRENT_TIMESTAMP, CURRENT_USER;
CURRENT_DATE(R) - 返回当前日期。
示例:
SELECT CURRENT_DATE;
CURRENT_TIME(R) - 返回当前时间。
示例:
SELECT CURRENT_TIME;
CURRENT_TIMESTAMP(R) - 返回当前时间戳。
示例:
SELECT CURRENT_TIMESTAMP;
CURRENT_USER(R) - 返回当前用户。
示例:
SELECT CURRENT_USER;
CURSOR(R) - 游标。
示例:
DECLARE cursor_name CURSOR FOR SELECT * FROM my_table;
CURSOR_NAME- 游标的名称。
示例:
DECLARE cursor_name CURSOR FOR SELECT * FROM my_table;
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_AUTHDEFINERDEFINITION; added in 8.0.4 (nonreserved)DELAYED(R)DELAY_KEY_WRITEDELETE(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.3DETERMINISTIC(R)DIAGNOSTICSDIRECTORYDISABLEDISCARDDISKDISTINCT(R)DISTINCTROW(R)DIV(R)DODOUBLE(R)DROP(R)DUAL(R)DUMPFILEDUPLICATEDYNAMIC
给出解释和示例
-
DATA- 数据相关操作或内容。示例:
LOAD DATA INFILE 'data.txt' INTO TABLE my_table; -
DATABASE(R) - 数据库的名称。示例:
CREATE DATABASE my_database; -
DATABASES(R) - 所有数据库的列表。示例:
SHOW DATABASES; -
DATAFILE- 数据文件。示例:
ALTER TABLESPACE my_tablespace ADD DATAFILE 'datafile_name'; -
DATE- 日期数据类型。示例:
SELECT DATE('2024-03-25'); -
DATETIME- 日期时间数据类型。示例:
SELECT DATETIME('2024-03-25 12:00:00'); -
DAY- 一天的时间单位。示例:
SELECT DAY(date_column) FROM my_table; -
DAY_HOUR(R) - 天和小时的时间单位。示例:
SELECT DAY_HOUR(datetime_column) FROM my_table; -
DAY_MICROSECOND(R) - 天和微秒的时间单位。示例:
SELECT DAY_MICROSECOND(datetime_column) FROM my_table; -
DAY_MINUTE(R) - 天和分钟的时间单位。示例:
SELECT DAY_MINUTE(datetime_column) FROM my_table; -
DAY_SECOND(R) - 天和秒的时间单位。示例:
SELECT DAY_SECOND(datetime_column) FROM my_table; -
DEALLOCATE- 释放预备语句或游标。示例:
DEALLOCATE PREPARE my_prepared_statement; -
DEC(R) - 等同于DECIMAL。示例:
CREATE TABLE my_table (dec_column DEC(10,2)); -
DECIMAL(R) - 十进制数据类型。示例:
CREATE TABLE my_table (decimal_column DECIMAL(10,2)); -
DECLARE(R) - 声明变量或游标。示例:
DECLARE variable_name INT DEFAULT 0; -
DEFAULT(R) - 默认值。示例:
CREATE TABLE my_table (column_name INT DEFAULT 0); -
DEFAULT_AUTH- 指定默认身份验证插件。示例:
SET DEFAULT_AUTHENTICATION_PLUGIN = 'mysql_native_password'; -
DEFINER- 指定存储过程或函数的定义者。示例:
CREATE PROCEDURE my_procedure DEFINER='user'@'host' ... -
DEFINITION- 定义对象的说明。示例:
COMMENT ON TABLE my_table IS 'This is a table definition'; -
DELAYED(R) - 延迟插入行。示例:
INSERT DELAYED INTO my_table VALUES (...); -
DELAY_KEY_WRITE- 延迟更新索引。示例:
ALTER TABLE my_table DELAY_KEY_WRITE = TRUE; -
DELETE(R) - 删除表中的行。示例:
DELETE FROM my_table WHERE condition; -
DENSE_RANK(R) - 稠密排名窗口函数。示例:
SELECT column_name, DENSE_RANK() OVER (ORDER BY column_name) AS dense_rank FROM my_table; -
DESC(R) - 降序排列。示例:
SELECT * FROM my_table ORDER BY column_name DESC; -
DESCRIBE(R) - 显示表结构。示例:
DESCRIBE my_table; -
DESCRIPTION- 对象的描述。示例:
COMMENT ON my_table IS 'This is a table description'; -
DIAGNOSTICS- 获取存储过程或函数的诊断信息。示例:
GET DIAGNOSTICS variable_name = condition_value; -
DIRECTORY- 指定目录路径。示例:
CREATE TABLESPACE my_tablespace ADD DATAFILE DIRECTORY '/path/to/directory'; -
DISABLE- 禁用触发器。示例:
ALTER TABLE my_table DISABLE TRIGGER trigger_name; -
DISCARD- 丢弃查询结果。示例:
DISCARD QUERY CACHE; -
DISK- 存储介质类型。示例:
CREATE TABLE my_table (column_name INT) ENGINE=InnoDB DATA DIRECTORY='/path/to/data'; -
DISTINCT(R) - 去重。示例:
SELECT DISTINCT column_name FROM my_table; -
DISTINCTROW(R) - 从结果集中去除重复行。
示例:
SELECT DISTINCTROW column1, column2 FROM my_table;
DIV(R) - 整数除法。
示例:
SELECT 10 DIV 3;
DO- 执行一个或多个语句。
示例:
DO $$ BEGIN DECLARE i INT DEFAULT 0; WHILE i < 10 DO INSERT INTO my_table VALUES (i); SET i = i + 1; END WHILE; END $$;
DOUBLE(R) - 双精度浮点数数据类型。
示例:
CREATE TABLE my_table (double_column DOUBLE);
DROP(R) - 删除数据库对象。
示例:
DROP TABLE my_table;
DUAL(R) - MySQL 中的伪表,始终只有一行一列。
示例:
SELECT * FROM DUAL;
DUMPFILE- 导出数据的文件路径。
示例:
SELECT * INTO OUTFILE 'dumpfile.txt' FROM my_table;
DUPLICATE- 复制数据时的处理方式。
示例:
INSERT INTO my_table (column1, column2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE column2 = value2;
DYNAMIC- 动态分区类型。
示例:
CREATE TABLE my_table (column_name INT) PARTITION BY RANGE(column_name) (PARTITION p1 VALUES LESS THAN (10));
E
EACH(R)ELSE(R)ELSEIF(R)EMPTY(R); added in 8.0.4 (reserved)ENABLEENCLOSED(R)ENCRYPTIONENDENDSENFORCED; added in 8.0.16 (nonreserved)ENGINEENGINESENGINE_ATTRIBUTE; added in 8.0.21 (nonreserved)ENUMERRORERRORSESCAPEESCAPED(R)EVENTEVENTSEVERYEXCEPT(R)EXCHANGEEXCLUDE; added in 8.0.2 (nonreserved)EXECUTEEXISTS(R)EXIT(R)EXPANSIONEXPIREEXPLAIN(R)EXPORTEXTENDEDEXTENT_SIZE
给出解释和示例
-
EACH(R) - 用于规定在触发器中触发事件的次数。已保留。示例:
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW INSERT INTO log_table VALUES (NEW.id, 'Inserted'); -
ELSE(R) - 在条件语句中,指定如果条件不成立时要执行的语句。已保留。示例:
IF condition THEN statement1; ELSE statement2; END IF; -
ELSEIF(R) - 在条件语句中,指定其他条件并在前面的条件不成立时执行。已保留。示例:
IF condition1 THEN statement1; ELSEIF condition2 THEN statement2; END IF; -
EMPTY(R) - 用于表示空值或空集合。在 MySQL 8.0.4 中添加并保留。示例:
SELECT * FROM my_table WHERE column_name IS EMPTY; -
ENABLE- 启用某些功能或选项。示例:
ALTER TABLE my_table ENABLE KEYS; -
ENCLOSED(R) - 用于指定字段值的定界符。已保留。示例:
LOAD DATA INFILE 'data.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '"'; -
ENCRYPTION- 数据加密相关。示例:
ALTER TABLE my_table ENCRYPTION='Y'; -
END- 结束某个语句块或代码段。示例:
IF condition THEN statement1; END IF; -
ENDS- 表示一段 SQL 语句的结束。示例:
DELIMITER $$ CREATE PROCEDURE my_procedure() BEGIN -- SQL statements here END$$ DELIMITER ; -
ENFORCED- 规定约束是否强制执行。在 MySQL 8.0.16 中添加并非保留。示例:
CREATE TABLE my_table ( column_name INT, CONSTRAINT constraint_name CHECK (column_name > 0) ENFORCED ); -
ENGINE- 指定存储引擎。示例:
CREATE TABLE my_table (column_name INT) ENGINE=InnoDB; -
ENGINES- 显示可用的存储引擎。示例:
SHOW ENGINES; -
ENGINE_ATTRIBUTE- 存储引擎的属性。在 MySQL 8.0.21 中添加并非保留。示例:
ALTER TABLE my_table ENGINE_ATTRIBUTE='value'; -
ENUM- 枚举数据类型。示例:
CREATE TABLE my_table (enum_column ENUM('value1', 'value2', 'value3')); -
ERROR- 错误相关操作。示例:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'ERROR'; -
ERRORS- 错误日志。示例:
SHOW ERRORS; -
ESCAPE- 用于指定转义字符。示例:
SELECT * FROM my_table WHERE column_name LIKE '100\%'; -
ESCAPED(R) - 指定转义字符。已保留。示例:
SELECT * FROM my_table WHERE column_name LIKE '100\%'; -
EVENT- 事件调度器相关。示例:
CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY DO CALL my_procedure(); -
EVENTS- 显示事件调度器的列表。示例:
SHOW EVENTS; -
EVERY- 用于指定事件的执行频率。示例:
CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY DO CALL my_procedure(); -
EXCEPT(R) - 用于组合查询并从第一个查询结果中排除第二个查询结果。已保留。示例:
SELECT * FROM table1 EXCEPT SELECT * FROM table2; -
EXCHANGE- 交换分区或表的数据。示例:
ALTER TABLE my_table1 EXCHANGE PARTITION partition_name WITH TABLE my_table2; -
EXCLUDE- 排除某些条件。在 MySQL 8.0.2 中添加并非保留。示例:
CREATE TABLE my_table (column_name INT) EXCLUDE = 'value'; -
EXECUTE- 执行预备语句或动态 SQL 语句。示例:
EXECUTE my_prepared_statement; -
EXISTS(R) - 判断子查询是否返回任何行。已保留。示例:
SELECT * FROM my_table WHERE EXISTS (SELECT * FROM other_table WHERE condition); -
EXIT(R) - 退出循环或程序。已保留。示例:
WHILE condition DO statement1; IF condition THEN LEAVE; END IF; statement2; END WHILE; -
EXPANSION- 扩展操作相关。示例:
ALTER TABLE my_table ENABLE KEYS WITH VALIDATION; -
EXPIRE- 指定密码的过期时间。示例:
ALTER USER 'user'@'host' PASSWORD EXPIRE INTERVAL 90 DAY; -
EXPLAIN(R) - 解释 SQL 查询的执行计划。已保留。示例:
EXPLAIN SELECT * FROM my_table WHERE condition; -
EXPORT- 导出数据。
EXPORT TABLE my_table INTO OUTFILE 'export_file.txt';
EXTENDED- 显示更详细的信息。
SHOW STATUS EXTENDED LIKE 'Threads_running';
EXTENT_SIZE- 磁盘块的大小。
CREATE TABLESPACE my_tablespace ADD DATAFILE 'datafile_name' EXTENT_SIZE = 1M;
F
FAILED_LOGIN_ATTEMPTS; added in 8.0.19 (nonreserved)FALSE(R)FASTFAULTSFETCH(R)FIELDSFILEFILE_BLOCK_SIZEFILTERFIRSTFIRST_VALUE(R); added in 8.0.2 (reserved)FIXEDFLOAT(R)FLOAT4(R)FLOAT8(R)FLUSHFOLLOWING; added in 8.0.2 (nonreserved)FOLLOWSFOR(R)FORCE(R)FOREIGN(R)FORMATFOUNDFROM(R)FULLFULLTEXT(R)FUNCTION(R); became reserved in 8.0.1
给出解释和例子
-
FAILED_LOGIN_ATTEMPTS; added in 8.0.19 (nonreserved) - 设置登录失败尝试次数的参数。示例:
ALTER USER 'username'@'localhost' FAILED_LOGIN_ATTEMPTS 5; -
FALSE(R) - 逻辑假值。已保留。示例:
SELECT * FROM my_table WHERE column_name = FALSE; -
FAST- 用于指定优化级别或速度。示例:
SELECT * FROM my_table ORDER BY column_name FAST; -
FAULTS- 用于检查服务器错误或故障。示例:
SHOW STATUS LIKE 'Faults'; -
FETCH(R) - 用于获取游标中的数据。已保留。示例:
FETCH cursor_name INTO variable_name; -
FIELDS- 字段相关操作或选项。示例:
LOAD DATA INFILE 'data.csv' INTO TABLE my_table FIELDS TERMINATED BY ','; -
FILE- 文件相关操作或选项。示例:
CREATE TABLESPACE my_tablespace ADD DATAFILE 'datafile_name'; -
FILE_BLOCK_SIZE- 文件块的大小。示例:
CREATE TABLESPACE my_tablespace ADD DATAFILE 'datafile_name' FILE_BLOCK_SIZE = 1024; -
FILTER- 用于过滤数据。示例:
SELECT * FROM my_table WHERE column_name FILTER(PARTITION BY partition_column ORDER BY order_column); -
FIRST- 在排序中指定第一个值。示例:
SELECT * FROM my_table ORDER BY column_name FIRST; -
FIRST_VALUE(R); added in 8.0.2 (reserved) - 返回窗口中第一个值。已保留。示例:
SELECT column_name, FIRST_VALUE(column_name) OVER (PARTITION BY partition_column ORDER BY order_column) AS first_value FROM my_table; -
FIXED- 固定长度的数据类型或选项。示例:
CREATE TABLE my_table (column_name CHAR(10) FIXED); -
FLOAT(R) - 浮点数数据类型。已保留。示例:
CREATE TABLE my_table (column_name FLOAT); -
FLOAT4(R) - 单精度浮点数数据类型。已保留。示例:
CREATE TABLE my_table (column_name FLOAT4); -
FLOAT8(R) - 双精度浮点数数据类型。已保留。示例:
CREATE TABLE my_table (column_name FLOAT8); -
FLUSH- 刷新缓存或重置权限。示例:
FLUSH PRIVILEGES; -
FOLLOWING; added in 8.0.2 (nonreserved) - 用于窗口函数中指定行范围。已非保留。示例:
SELECT column_name, SUM(column_name) OVER (ORDER BY column_name ROWS BETWEEN CURRENT ROW AND FOLLOWING) AS running_total FROM my_table; -
FOLLOWS- 用于指定对象的顺序。示例:
CREATE TABLE my_table1 (column_name INT) FOLLOWS my_table2; -
FOR(R) - 用于循环或指定锁定方式。已保留。示例:
FOR loop_variable IN 1..10 LOOP statement; END LOOP; -
FORCE(R) - 强制使用某些选项或索引。已保留。示例:
SELECT * FROM my_table FORCE INDEX (index_name); -
FOREIGN(R) - 外键相关操作。已保留。示例:
ALTER TABLE child_table ADD FOREIGN KEY (column_name) REFERENCES parent_table (column_name); -
FORMAT- 数据格式化选项或设置。示例:
SELECT * FROM my_table FORMAT=CSV; -
FOUND- 用于检查是否找到了结果。示例:
IF FOUND THEN statement; END IF; -
FROM(R) - 用于指定数据源。已保留。示例:
SELECT * FROM my_table; -
FULL- 全表扫描或完整匹配。示例:
SELECT * FROM my_table FULL JOIN other_table ON my_table.id = other_table.id; -
FULLTEXT(R) - 全文搜索相关操作。已保留。
示例:
CREATE FULLTEXT INDEX index_name ON my_table (column FULLTEXT(column_name);
FUNCTION(R); became reserved in 8.0.1 - 函数相关操作。已保留。
示例:
CREATE FUNCTION my_function(param INT) RETURNS INT RETURN param * 2;
G
GENERALGENERATED(R)GEOMCOLLECTION; added in 8.0.11 (nonreserved)GEOMETRYGEOMETRYCOLLECTIONGET(R)GET_FORMATGET_MASTER_PUBLIC_KEY; added in 8.0.4 (reserved); became nonreserved in 8.0.11GLOBALGRANT(R)GRANTSGROUP(R)GROUPING(R); added in 8.0.1 (reserved)GROUPS(R); added in 8.0.2 (reserved)GROUP_REPLICATION
给出解释和例子
-
GENERAL- 通用性的,一般的。示例:
ALTER TABLE my_table ADD COLUMN column_name VARCHAR(255) COMMENT 'General description'; -
GENERATED(R) - 自动生成的值。已保留。示例:
CREATE TABLE my_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, generated_column INT GENERATED ALWAYS AS (id * 2) STORED ); -
GEOMCOLLECTION; added in 8.0.11 (nonreserved) - 几何对象集合类型。已非保留。示例:
CREATE TABLE my_geometries ( id INT, geom_collection GEOMCOLLECTION, SPATIAL INDEX(geom_collection) ); -
GEOMETRY- 几何对象类型。示例:
CREATE TABLE my_geometries ( id INT, geom GEOMETRY, SPATIAL INDEX(geom) ); -
GEOMETRYCOLLECTION- 几何对象集合类型。示例:
CREATE TABLE my_geometries ( id INT, geom_collection GEOMETRYCOLLECTION, SPATIAL INDEX(geom_collection) ); -
GET(R) - 获取信息或数据。已保留。示例:
GET DIAGNOSTICS my_variable = ROW_COUNT; -
GET_FORMAT- 获取日期格式。示例:
SELECT GET_FORMAT(DATE, 'EUR'); -
GET_MASTER_PUBLIC_KEY; added in 8.0.4 (reserved); became nonreserved in 8.0.11 - 获取主服务器的公钥。在 MySQL 8.0.11 之前是保留关键词,在之后变为非保留。示例:
SHOW MASTER STATUS; -
GLOBAL- 全局范围的,影响整个系统的。示例:
SET GLOBAL variable_name = value; -
GRANT(R) - 授权权限给用户或角色。已保留。示例:
GRANT SELECT, INSERT ON my_database.my_table TO 'username'@'localhost'; -
GRANTS- 显示用户或角色的授权信息。示例:
SHOW GRANTS FOR 'username'@'localhost'; -
GROUP(R) - 分组操作或关键词。已保留。示例:
SELECT column_name, COUNT(*) FROM my_table GROUP BY column_name; -
GROUPING(R); added in 8.0.1 (reserved) - 分组函数。已保留。示例:
SELECT column_name, GROUPING(column_name) FROM my_table GROUP BY column_name; -
GROUPS(R); added in 8.0.2 (reserved) - 分组数量。已保留。示例:
SELECT column_name, COUNT(*) FROM my_table GROUP BY column_name WITH ROLLUP; -
GROUP_REPLICATION- 组复制相关操作。示例:
SHOW GROUP_REPLICATION STATUS;
H
HANDLERHASHHAVING(R)HELPHIGH_PRIORITY(R)HISTOGRAM; added in 8.0.2 (nonreserved)HISTORY; added in 8.0.3 (nonreserved)HOSTHOSTSHOURHOUR_MICROSECOND(R)HOUR_MINUTE(R)HOUR_SECOND(R)
给出解释和例子
-
HANDLER- 用于处理表的操作。示例:
HANDLER my_table OPEN; -
HASH- 哈希函数或哈希索引相关。示例:
CREATE INDEX index_name ON my_table USING HASH(column_name); -
HAVING(R) - 用于在对查询结果进行分组后进行筛选。已保留。示例:
SELECT column_name, COUNT(*) FROM my_table GROUP BY column_name HAVING COUNT(*) > 5; -
HELP- 显示帮助信息。示例:
HELP ALTER TABLE; -
HIGH_PRIORITY(R) - 指定高优先级查询。已保留。示例:
SELECT HIGH_PRIORITY * FROM my_table; -
HISTOGRAM; added in 8.0.2 (nonreserved) - 直方图相关操作。已非保留。示例:
ANALYZE TABLE my_table COMPUTE HISTOGRAM; -
HISTORY; added in 8.0.3 (nonreserved) - 历史记录相关操作。已非保留。示例:
SHOW HISTORY; -
HOST- 主机名或 IP 地址相关。示例:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host'; -
HOSTS- 显示主机列表。示例:
SHOW HOSTS; -
HOUR- 用于指定时间单位为小时。示例:
SELECT * FROM my_table WHERE HOUR(datetime_column) = 12; -
HOUR_MICROSECOND(R) - 用于指定时间单位为小时和微秒。已保留。示例:
SELECT HOUR_MICROSECOND('12:30:45.123456'); -
HOUR_MINUTE(R) - 用于指定时间单位为小时和分钟。已保留。示例:
SELECT HOUR_MINUTE('12:30:45'); -
HOUR_SECOND(R) - 用于指定时间单位为小时和秒。已保留。示例:
SELECT HOUR_SECOND('12:30:45');
I
IDENTIFIEDIF(R)IGNORE(R)IGNORE_SERVER_IDSIMPORTIN(R)INACTIVE; added in 8.0.14 (nonreserved)INDEX(R)INDEXESINFILE(R)INITIAL_SIZEINNER(R)INOUT(R)INSENSITIVE(R)INSERT(R)INSERT_METHODINSTALLINSTANCEINT(R)INT1(R)INT2(R)INT3(R)INT4(R)INT8(R)INTEGER(R)INTERVAL(R)INTO(R)INVISIBLEINVOKERIOIO_AFTER_GTIDS(R)IO_BEFORE_GTIDS(R)IO_THREADIPCIS(R)ISOLATIONISSUERITERATE(R)
给出解释和例子
-
IDENTIFIED- 用于指定身份验证方式。示例:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; -
IF(R) - 条件语句中的关键词。已保留。示例:
IF condition THEN statement; END IF; -
IGNORE(R) - 在插入数据时忽略重复键错误。已保留。示例:
INSERT IGNORE INTO my_table (column1, column2) VALUES (value1, value2); -
IGNORE_SERVER_IDS- 用于复制配置中指定要忽略的服务器ID。示例:
CHANGE MASTER TO MASTER_IGNORE_SERVER_IDS = (server_id1, server_id2); -
IMPORT- 导入数据。示例:
IMPORT TABLESPACE my_tablespace DATAFILE 'datafile_name'; -
IN(R) - 在条件语句中用于检查值是否在指定的范围内。已保留。示例:
SELECT * FROM my_table WHERE column_name IN (value1, value2, value3); -
INACTIVE; added in 8.0.14 (nonreserved) - 指定某个对象状态为不活动。示例:
ALTER TABLE my_table SET INACTIVE; -
INDEX(R) - 用于创建索引。已保留。示例:
CREATE INDEX index_name ON my_table (column_name); -
INDEXES- 显示索引列表。示例:
SHOW INDEXES FROM my_table; -
INFILE(R) - 用于加载文件数据。已保留。示例:
LOAD DATA INFILE 'data.txt' INTO TABLE my_table; -
INITIAL_SIZE- 初始大小参数。示例:
CREATE TABLESPACE my_tablespace ADD DATAFILE 'datafile_name' INITIAL_SIZE = 100M; -
INNER(R) - 内连接操作。已保留。示例:
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id; -
INOUT(R) - 存储过程参数类型。已保留。示例:
CREATE PROCEDURE my_procedure(INOUT param INT) BEGIN ... END; -
INSENSITIVE(R) - 游标类型。已保留。示例:
DECLARE cursor_name CURSOR INSENSITIVE FOR SELECT * FROM my_table; -
INSERT(R) - 插入数据。已保留。示例:
INSERT INTO my_table (column1, column2) VALUES (value1, value2); -
INSERT_METHOD- 插入方式选项。示例:
CREATE TABLE my_table (column_name INT) INSERT_METHOD = FIRST; -
INSTALL- 安装或部署相关操作。示例:
INSTALL PLUGIN my_plugin SONAME 'plugin_name'; -
INSTANCE- 实例相关操作。示例:
CREATE INSTANCE my_instance; -
INT(R) - 整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name INT); -
INT1(R) - 1 字节整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name INT1); -
INT2(R) - 2 字节整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name INT2); -
INT3(R) - 3 字节整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name INT3); -
INT4(R) - 4 字节整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name INT4); -
INT8(R) - 8 字节整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name INT8); -
INTEGER(R) - 整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name INTEGER); -
INTERVAL(R) - 时间间隔类型。已保留。示例:
SELECT INTERVAL 1 DAY; -
INTO(R) - 指定结果存储位置。已保留。示例:
SELECT column_name INTO variable_name FROM my_table; -
INVISIBLE- 使索引不可见。示例:
ALTER TABLE my_table ALTER INDEX index_name INVISIBLE; -
INVOKER- 触发器相关操作。示例:
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW INVOKER = 'creator'; -
IO- 输入输出操作。示例:
START SLAVE IO_THREAD; -
IO_AFTER_GTIDS(R) - 复制线程操作。已保留。示例:
STOP SLAVE IO_AFTER_GTIDS; -
IO_BEFORE_GTIDS(R) - 复制线程操作。已保留。示例:
START SLAVE IO_BEFORE_GTIDS; -
IO_THREAD- 复制线程相关操作。示例:
START SLAVE IO_THREAD; -
IPC- 进程间通信相关操作。示例:
INSTALL COMPONENT 'file://component_name' SONAME 'shared_library'; -
IS(R) - 用于比较两个值是否相等。已保留。示例:
SELECT * FROM my_table 36. `ISOLATION` - 事务隔离级别设置或查询。 示例: ```sql SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -
ISSUER- SSL 证书颁发者相关信息。示例:
GRANT USAGE ON *.* TO 'username'@'hostname' REQUIRE ISSUER '/C=US/ST=CA/L=City/O=Organization/OU=Unit/CN=CommonName/EMAIL=email@example.com'; -
ITERATE(R) - 用于循环控制中的关键字。已保留。示例: ```sql REPEAT statement; ITERATE; UNTIL condition END REPEAT;
J+K
JOIN(R)JSONJSON_TABLE(R); added in 8.0.4 (reserved)-
JSON_VALUE; added in 8.0.21 (nonreserved) KEY(R)KEYS(R)KEY_BLOCK_SIZEKILL(R)
给出解释和例子
-
JOIN(R) - 用于连接两个或多个表中的行。示例:
SELECT * FROM table1 JOIN table2 ON table1.id = table2.id; -
JSON- JSON 数据类型或 JSON 函数。示例:
SELECT JSON_OBJECT('key', 'value'); -
JSON_TABLE(R) - 用于将 JSON 数据解析成关系行。示例:
SELECT * FROM JSON_TABLE(json_column, '$.path' COLUMNS (column1 PATH '$.key')); -
JSON_VALUE- 从 JSON 文档中提取标量值。示例:
SELECT JSON_VALUE(json_column, '$.key'); -
KEY(R) - 表的索引。示例:
CREATE TABLE my_table (column1 INT, column2 VARCHAR(50), KEY index_name (column1)); -
KEYS(R) - 显示表的索引列表。示例:
SHOW KEYS FROM my_table; -
KEY_BLOCK_SIZE- 指定索引块大小。示例:
CREATE TABLE my_table (column1 INT, column2 VARCHAR(50), INDEX index_name (column1) KEY_BLOCK_SIZE = 8); -
KILL(R) - 终止指定线程。示例:
KILL QUERY thread_id;
L
LAG(R); added in 8.0.2 (reserved)LANGUAGELASTLAST_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)LEAVESLEFT(R)LESSLEVELLIKE(R)LIMIT(R)LINEAR(R)LINES(R)LINESTRINGLISTLOAD(R)LOCALLOCALTIME(R)LOCALTIMESTAMP(R)LOCK(R)LOCKED; added in 8.0.1 (nonreserved)LOCKSLOGFILELOGSLONG(R)LONGBLOB(R)LONGTEXT(R)LOOP(R)LOW_PRIORITY(R)
解释和例子
-
LAG(R) - 分析函数之一,在当前行之前返回指定偏移量的行值。示例:
SELECT value, LAG(value) OVER (ORDER BY date_col) AS lag_value FROM my_table; -
LANGUAGE- 指定编程语言。示例:
CREATE FUNCTION my_function() RETURNS INT LANGUAGE SQL BEGIN RETURN 1; END; -
LAST- 返回分组中最后一个值。示例:
SELECT id, value FROM my_table ORDER BY id DESC LIMIT 1; -
LAST_VALUE(R) - 分析函数之一,返回分组中最后一个非空值。示例:
SELECT value, LAST_VALUE(value) OVER (PARTITION BY category ORDER BY date_col) AS last_value FROM my_table; -
LATERAL(R) - 用于联接中的侧边查询。示例:
SELECT * FROM table1 JOIN LATERAL(SELECT * FROM table2 WHERE table1.id = table2.id) AS lateral_table ON true; -
LEAD(R) - 分析函数之一,在当前行之后返回指定偏移量的行值。示例:
SELECT value, LEAD(value) OVER (ORDER BY date_col) AS lead_value FROM my_table; -
LEADING(R) - 用于连接操作中指定连接表。示例:
SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id WHERE table1.id > 100; -
LEAVE(R) - 用于循环控制结构中的关键字。示例:
WHILE condition DO statement; LEAVE; END WHILE; -
LEAVES- 返回 JSON 树中的叶节点。示例:
SELECT JSON_SEARCH(json_column, 'one', 'value', NULL, '$**.leaves') FROM my_table; -
LEFT(R) - 左连接操作。示例:
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id; -
LESS- 小于操作符。示例:
SELECT * FROM my_table WHERE column_name < value; -
LEVEL- 指定递归查询的层级。示例:
WITH RECURSIVE cte AS ( SELECT * FROM my_table WHERE parent_id IS NULL UNION ALL SELECT child.* FROM my_table child JOIN cte ON child.parent_id = cte.id ) SELECT * FROM cte WHERE LEVEL <= 3; -
LIKE(R) - 用于模式匹配的操作符。示例:
SELECT * FROM my_table WHERE column_name LIKE 'prefix%'; -
LIMIT(R) - 限制结果集的行数。示例:
SELECT * FROM my_table LIMIT 10; -
LINEAR(R) - 指定索引使用的插入方法。示例:
CREATE TABLE my_table (column_name INT, INDEX(column_name) USING LINEAR HASH); -
LINES(R) - 用于指定 GEO 几何对象类型。示例:
SELECT ST_AsText(GeomFromText('LINESTRING(0 0, 1 1, 2 2)')); -
LINESTRING- 用于定义几何对象。示例:
CREATE TABLE my_geometry_table (geometry_column LINESTRING); -
LIST- 用于聚合操作的函数。示例:
SELECT GROUP_CONCAT(column_name) AS concatenated_list FROM my_table; -
LOAD(R) - 用于加载外部数据。示例:
LOAD DATA INFILE 'data.txt' INTO TABLE my_table; -
LOCAL- 指定事件的时区为本地时区。示例:
CREATE EVENT my_event ON SCHEDULE EVERY 1 HOUR STARTS '2024-03-25 00:00:00' ENDS '2024-03-26 00:00:00' DO BEGIN ... END; -
LOCALTIME(R) - 返回当前时间。示例:
SELECT LOCALTIME(); -
LOCALTIMESTAMP(R) - 返回当前日期时间。示例:
SELECT LOCALTIMESTAMP(); -
LOCK(R) - 锁定表的行。示例:
LOCK TABLES my_table WRITE; -
LOCKED- 指定连接是否处于锁定状态。示例:
SELECT * FROM performance_schema.threads WHERE locked = 'Y'; -
LOCKS- 返回当前数据库中的锁信息。示例:
SHOW OPEN TABLES WHERE In_use > 0; -
LOGFILE- 指定日志文件路径。示例:
SET GLOBAL general_log_file = 'log_file_path.log'; -
LOGS- 返回日志文件列表。示例:
SHOW BINARY LOGS; -
LONG(R) - 长整数数据类型。已保留。示例:
CREATE TABLE my_table (column_name LONG); -
LONGBLOB(R) - 长二进制数据类型。已保留。示例:
CREATE TABLE my_table (column_name LONGBLOB); -
LONGTEXT(R) - 长文本数据类型。已保留。示例:
CREATE TABLE my_table (column_name LONGTEXT); -
LOOP(R) - 循环控制结构中的关键字。已保留。示例:
LOOP statement; END LOOP; -
LOW_PRIORITY(R) - 指定查询的优先级较低。
示例:
SELECT LOW_PRIORITY * FROM my_table;
M
MASTERMASTER_AUTO_POSITIONMASTER_BIND(R)MASTER_COMPRESSION_ALGORITHMS; added in 8.0.18 (nonreserved)MASTER_CONNECT_RETRYMASTER_DELAYMASTER_HEARTBEAT_PERIODMASTER_HOSTMASTER_LOG_FILEMASTER_LOG_POSMASTER_PASSWORDMASTER_PORTMASTER_PUBLIC_KEY_PATH; added in 8.0.4 (nonreserved)MASTER_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_CIPHERSUITES; added in 8.0.19 (nonreserved)MASTER_TLS_VERSIONMASTER_USERMASTER_ZSTD_COMPRESSION_LEVEL; added in 8.0.18 (nonreserved)MATCH(R)MAXVALUE(R)MAX_CONNECTIONS_PER_HOURMAX_QUERIES_PER_HOURMAX_ROWSMAX_SIZEMAX_UPDATES_PER_HOURMAX_USER_CONNECTIONSMEDIUMMEDIUMBLOB(R)MEDIUMINT(R)MEDIUMTEXT(R)MEMBER; added in 8.0.17 (reserved); became nonreserved in 8.0.19MEMORYMERGEMESSAGE_TEXTMICROSECONDMIDDLEINT(R)MIGRATEMINUTEMINUTE_MICROSECOND(R)MINUTE_SECOND(R)MIN_ROWSMOD(R)MODEMODIFIES(R)MODIFYMONTHMULTILINESTRINGMULTIPOINTMULTIPOLYGONMUTEXMYSQL_ERRNO
给出解释和例子
MASTER: 用于指定主数据库的相关参数。- 示例:
MASTER_HOST='localhost', MASTER_USER='user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234
- 示例:
MASTER_AUTO_POSITION: 指定是否自动获取主数据库的当前复制位置。- 示例:
MASTER_AUTO_POSITION
- 示例:
MASTER_BIND(R): 指定主数据库与从数据库之间的连接绑定地址。- 示例:
MASTER_BIND='192.168.1.100'
- 示例:
MASTER_COMPRESSION_ALGORITHMS: 指定主数据库与从数据库之间传输数据时使用的压缩算法。- 示例:
MASTER_COMPRESSION_ALGORITHMS='zlib'
- 示例:
MASTER_CONNECT_RETRY: 指定在连接主数据库时的重试次数。- 示例:
MASTER_CONNECT_RETRY=3
- 示例:
MASTER_DELAY: 指定从数据库延迟复制主数据库的时间。- 示例:
MASTER_DELAY=3600(延迟1小时)
- 示例:
MASTER_HEARTBEAT_PERIOD: 指定主数据库发送心跳信号的时间间隔。- 示例:
MASTER_HEARTBEAT_PERIOD=10(每10秒发送一次心跳信号)
- 示例:
MASTER_HOST: 指定主数据库的主机名或IP地址。- 示例:
MASTER_HOST='db.example.com'
- 示例:
MASTER_LOG_FILE: 指定主数据库的二进制日志文件。- 示例:
MASTER_LOG_FILE='mysql-bin.000001'
- 示例:
MASTER_LOG_POS: 指定主数据库的二进制日志文件的位置。- 示例:
MASTER_LOG_POS=1234
- 示例:
MASTER_PASSWORD: 指定主数据库连接的密码。- 示例:
MASTER_PASSWORD='password123'
- 示例:
MASTER_PORT: 指定主数据库的端口号。- 示例:
MASTER_PORT=3306
- 示例:
MASTER_PUBLIC_KEY_PATH; added in 8.0.4 (nonreserved): 指定主数据库的公钥路径。- 示例:
MASTER_PUBLIC_KEY_PATH='/path/to/public/key'
- 示例:
MASTER_RETRY_COUNT: 指定连接主数据库时的重试次数。- 示例:
MASTER_RETRY_COUNT=5
- 示例:
MASTER_SERVER_ID: 指定主数据库的服务器ID。- 示例:
MASTER_SERVER_ID=1
- 示例:
MASTER_SSL: 指定是否使用SSL连接到主数据库。- 示例:
MASTER_SSL=1
- 示例:
MASTER_SSL_CA: 指定SSL连接时使用的CA证书。- 示例:
MASTER_SSL_CA='/path/to/ca_cert.pem'
- 示例:
MASTER_SSL_CAPATH: 指定SSL连接时使用的CA证书目录。- 示例:
MASTER_SSL_CAPATH='/path/to/ca_certs/'
- 示例:
MASTER_SSL_CERT: 指定SSL连接时使用的证书。- 示例:
MASTER_SSL_CERT='/path/to/client_cert.pem'
- 示例:
MASTER_SSL_CIPHER: 指定SSL连接时使用的密码套件。- 示例:
MASTER_SSL_CIPHER='AES128-SHA'
- 示例:
MASTER_SSL_CRL: 指定SSL连接时使用的CRL文件。- 示例:
MASTER_SSL_CRL='/path/to/crl.pem'
- 示例:
MASTER_SSL_CRLPATH: 指定SSL连接时使用的CRL文件目录。- 示例:
MASTER_SSL_CRLPATH='/path/to/crls/'
- 示例:
MASTER_SSL_KEY: 指定SSL连接时使用的私钥。- 示例:
MASTER_SSL_KEY='/path/to/client_key.pem'
- 示例:
MASTER_SSL_VERIFY_SERVER_CERT(R): 指定是否验证主数据库的服务器证书。- 示例:
MASTER_SSL_VERIFY_SERVER_CERT=1
- 示例:
MASTER_TLS_CIPHERSUITES; added in 8.0.19 (nonreserved): 指定TLS连接时使用的密码套件。- 示例:
MASTER_TLS_CIPHERSUITES='TLS_AES_256_GCM_SHA384'
- 示例:
MASTER_TLS_VERSION: 指定TLS连接时使用的TLS版本。- 示例:
MASTER_TLS_VERSION='TLSv1.2'
- 示例:
MASTER_USER: 指定主数据库连接的用户名。- 示例:
MASTER_USER='replication_user'
- 示例:
MASTER_ZSTD_COMPRESSION_LEVEL; added in 8.0.18 (nonreserved): 指定主数据库与从数据库之间传输数据时使用的ZSTD压缩级别。- 示例:
MASTER_ZSTD_COMPRESSION_LEVEL=3
- 示例:
MATCH(R): 用于指定匹配模式或条件。- 示例:
SELECT * FROM table WHERE column MATCH 'pattern';
- 示例:
MAXVALUE(R): 用于指定列或索引的最大值。- 示例:
CREATE TABLE table_name (column_name INT PRIMARY KEY AUTO_INCREMENT, other_columns);
- 示例:
MAX_CONNECTIONS_PER_HOUR: 指定每小时允许的最大连接数。- 示例:
GRANT USAGE ON *.* TO 'user'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 100;
- 示例:
MAX_QUERIES_PER_HOUR: 指定每小时允许的最大查询数。- 示例:
GRANT USAGE ON *.* TO 'user'@'localhost' WITH MAX_QUERIES_PER_HOUR 1000;
- 示例:
MAX_ROWS: 指定表的最大行数。- 示例:
CREATE TABLE table_name (column1 INT, column2 VARCHAR(50)) MAX_ROWS=1000;
- 示例:
MAX_SIZE: 指定表的最大尺寸。- 示例:
CREATE TABLE table_name (column1 INT, column2 VARCHAR(50)) MAX_SIZE=100MB;
- 示例:
MAX_UPDATES_PER_HOUR: 指定每小时允许的最大更新数。- 示例:
GRANT USAGE ON *.* TO 'user'@'localhost' WITH MAX_UPDATES_PER_HOUR 500;
- 示例:
MAX_USER_CONNECTIONS: 指定用户的最大连接数。- 示例:
GRANT USAGE ON *.* TO 'user'@'localhost' WITH MAX_USER_CONNECTIONS 10;
- 示例:
MEDIUM: 用于指定中等大小。- 示例:
CREATE TABLE table_name (column1 MEDIUMINT, column2 MEDIUMTEXT);
- 示例:
MEDIUMBLOB(R): 用于存储中等大小的二进制对象。- 示例:
CREATE TABLE table_name (column MEDIUMBLOB);
- 示例:
MEDIUMINT(R): 用于存储中等范围的整数值。- 示例:
CREATE TABLE table_name (column MEDIUMINT);
- 示例:
MEDIUMTEXT(R): 用于存储中等大小的文本数据。- 示例:
CREATE TABLE table_name (column MEDIUMTEXT);
- 示例:
MEMBER: 用于指定成员关系。- 示例:
CREATE TABLE members (id INT, name VARCHAR(50), PRIMARY KEY (id)) ENGINE=INNODB;
- 示例:
MEMORY: 用于指定存储引擎为内存存储引擎。- 示例:
CREATE TABLE table_name (column1 INT, column2 VARCHAR(50)) ENGINE=MEMORY;
- 示例:
MERGE: 用于指定表合并存储引擎。- 示例:
CREATE TABLE table_name (column1 INT, column2 VARCHAR(50)) ENGINE=MERGE;
- 示例:
MESSAGE_TEXT: 用于指定消息文本。- 示例:
INSERT INTO log_table (message_text) VALUES ('Error occurred during transaction.');
- 示例:
MICROSECOND: 用于指定微秒。- 示例:
SELECT MICROSECOND('10:30:15.500000');
- 示例:
MIDDLEINT(R): 用于存储中等范围的整数值。- 示例:
CREATE TABLE table_name (column MIDDLEINT);
- 示例:
MIGRATE: 用于指定迁移操作。- 示例:
ALTER TABLE old_table RENAME TO new_table;
- 示例:
MINUTE: 用于指定分钟。- 示例:
SELECT MINUTE('10:30:15');
- 示例:
MINUTE_MICROSECOND(R): 用于指定分钟和微秒。- 示例:
SELECT MINUTE_MICROSECOND('10:30:15.500000');
- 示例:
MINUTE_SECOND(R): 用于指定分钟和秒。- 示例:
SELECT MINUTE_SECOND('10:30:15');
- 示例:
MIN_ROWS: 用于指定表的最小行数。- 示例:
CREATE TABLE table_name (column1 INT, column2 VARCHAR(50)) MIN_ROWS=100;
- 示例:
MOD(R): 用于计算除法的余数。- 示例:
SELECT MOD(10, 3);
- 示例:
MODE: 用于指定模式。- 示例:
SET sql_mode='STRICT_TRANS_TABLES';
- 示例:
MODIFIES(R): 用于指定函数修改的数据。- 示例:
CREATE FUNCTION myFunction RETURNS INT MODIFIES SQL DATA RETURN 1;
- 示例:
MODIFY: 用于修改列的属性。- 示例:
ALTER TABLE table_name MODIFY column_name VARCHAR(100);
- 示例:
MONTH: 用于指定月份。- 示例:
SELECT MONTH('2018-12-25');
- 示例:
MULTILINESTRING: 用于存储多个线段。- 示例:
CREATE TABLE table_name (column MULTILINESTRING);
- 示例:
-
MULTIPOINT: 用于存储多个点。 MULTIPOLYGON: 用于存储多个多边形。- 示例:
CREATE TABLE regions (id INT AUTO_INCREMENT PRIMARY KEY, area MULTIPOLYGON);
- 示例:
MUTEX: 用于指定互斥锁。- 示例:
GET_LOCK('lock_name', timeout); RELEASE_LOCK('lock_name');
- 示例:
MYSQL_ERRNO: 用于指定 MySQL 错误号。- 示例:
SELECT MYSQL_ERRNO();
- 示例:
N
NAMENAMESNATIONALNATURAL(R)NCHARNDBNDBCLUSTERNESTED; added in 8.0.4 (nonreserved)NETWORK_NAMESPACE; added in 8.0.16 (nonreserved)NEVERNEWNEXTNONODEGROUPNONENOT(R)NOWAIT; added in 8.0.1 (nonreserved)NO_WAITNO_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)NUMBERNUMERIC(R)NVARCHAR
给出解释和例子
NAME:- 解释:
NAME是一个用于指定标识符的关键字,通常用于表名、列名等标识符。 - 示例:创建一个名为
employees的表格。CREATE TABLE employees ( employee_id INT PRIMARY KEY, name VARCHAR(50) );
- 解释:
NAMES:- 解释:
NAMES关键字通常用于设置字符集。 - 示例:设置字符集为 UTF-8。
SET NAMES 'utf8';
- 解释:
NATIONAL:- 解释:
NATIONAL关键字用于指定国家字符集的数据类型,通常与字符数据类型一起使用。 - 示例:创建一个使用国家字符集的字符列。
CREATE TABLE my_table ( country_name NATIONAL CHAR(50) );
- 解释:
NATURAL:- 解释:
NATURAL关键字用于指定自然连接,在自然连接中,表之间通过共同的列进行连接。 - 示例:执行自然连接。
SELECT * FROM table1 NATURAL JOIN table2;
- 解释:
NCHAR:- 解释:
NCHAR是用于指定 Unicode 字符的定长字符数据类型。 - 示例:创建一个
NCHAR类型的列。CREATE TABLE my_table ( my_column NCHAR(10) );
- 解释:
NDB:- 解释:
NDB是 MySQL 中 NDB 存储引擎的名称。 - 示例:在创建表时指定使用 NDB 存储引擎。
CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) ) ENGINE=NDB;
- 解释:
NDBCLUSTER:- 解释:
NDBCLUSTER是 MySQL 中 NDB 集群存储引擎的名称。 - 示例:创建一个使用 NDB 集群存储引擎的表格。
CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) ) ENGINE=NDBCLUSTER;
- 解释:
NESTED:- 解释:
NESTED关键字用于表示嵌套表达式,通常用于查询中。 - 示例:使用嵌套查询获取员工的详细信息。
SELECT * FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE location_id = 1700);
- 解释:
NETWORK_NAMESPACE:- 解释:
NETWORK_NAMESPACE是一个 MySQL 8.0.16 新增的关键字,用于指定网络命名空间。 - 示例:在创建存储过程时使用网络命名空间。
CREATE PROCEDURE my_procedure () SQL SECURITY INVOKER BEGIN DECLARE v_network_namespace VARCHAR(50) DEFAULT 'my_network_namespace'; -- 你的存储过程逻辑 END;
- 解释:
NEVER:- 解释:
NEVER关键字用于指定一个条件永远不会为真。 - 示例:使用
NEVER条件来确保触发器永远不会被激活。CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW BEGIN IF NEW.column_name = 'value' THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This trigger should never activate'; END IF; END;
- 解释:
NEW:- 解释:
NEW关键字在触发器中用于引用插入、更新或删除操作中的新行的值。 - 示例:在触发器中使用
NEW关键字设置默认值。CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW BEGIN IF NEW.column_name IS NULL THEN SET NEW.column_name = 'default_value'; END IF; END;
- 解释:
NEXT:- 解释:
NEXT关键字通常用于指定序列中的下一个值。 - 示例:获取序列的下一个值。
SELECT NEXT VALUE FOR my_sequence;
- 解释:
NO:- 解释:
NO关键字通常用于否定操作或设置选项。 - 示例:禁用外键约束检查。
SET FOREIGN_KEY_CHECKS = 0;
- 解释:
NODEGROUP:- 解释:
NODEGROUP关键字用于指定表的节点组,通常在 NDB 集群中使用。 - 示例:创建一个使用指定节点组的表。
CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) ) ENGINE=NDBCLUSTER NODEGROUP=node_group_name;
- 解释:
NONE:- 解释:
NONE关键字通常用于表示无或不适用的选项。 - 示例:创建一个使用无索引的列。
CREATE TABLE my_table ( id INT, name VARCHAR(50), INDEX(id) ALGORITHM=NONE );
- 解释:
NOT:- 解释:
NOT关键字用于否定条件。 - 示例:使用
NOT条件查询未满足特定条件的行。SELECT * FROM my_table WHERE NOT column_name = 'value';
- 解释:
NOWAIT:- 解释:
NOWAIT是在 MySQL 8.0.1 中添加的关键字,用于指示不要等待锁定资源,而是立即返回。 - 示例:尝试获取表的排他锁而不等待。
LOCK TABLES my_table WRITE NOWAIT;
- 解释:
NO_WRITE_TO_BINLOG:- 解释:
NO_WRITE_TO_BINLOG关键字用于指示不将语句写入二进制日志中。 - 示例:执行一条不记录到二进制日志的更新语句。
UPDATE my_table SET column_name = 'new_value' NO_WRITE_TO_BINLOG;
- 解释:
NODEGROUP:- 解释:
NODEGROUP关键字用于将表的分区关联到特定的节点组。 - 示例:创建一个分区表并将其关联到特定的节点组。
CREATE TABLE my_partitioned_table ( id INT, name VARCHAR(50) ) PARTITION BY HASH(id) PARTITIONS 4 NODEGROUP group1;
- 解释:
NO_WAIT:- 解释:
NO_WAIT是NOWAIT的另一种拼写方式,用于在执行锁定操作时立即返回而不等待。 - 示例:类似于
NOWAIT,尝试获取锁并立即返回。SELECT * FROM my_table WHERE id = 1 FOR UPDATE NO_WAIT;
- 解释:
NO_WRITE_TO_BINLOG:- 解释:
NO_WRITE_TO_BINLOG关键字用于指示某些操作不要将数据写入二进制日志。 - 示例:在执行某些操作时不将其写入二进制日志。
INSERT /*+ NO_WRITE_TO_BINLOG */ INTO my_table (id, name) VALUES (1, 'John');
- 解释:
NULL:- 解释:
NULL是表示缺失值或未知值的特殊关键字。 - 示例:将列的值设置为
NULL。INSERT INTO my_table (id, name) VALUES (1, NULL);
- 解释:
NTH_VALUE:- 解释:
NTH_VALUE函数用于返回指定位置的值,用于分析窗口函数中。 - 示例:使用
NTH_VALUE函数返回第二个最高销售额。SELECT department, sales, NTH_VALUE(sales, 2) OVER (ORDER BY sales DESC) AS second_highest_sales FROM sales_data;
- 解释:
NTILE:- 解释:
NTILE函数用于将排序结果分割成指定数量的桶,每个桶中的行数尽可能相等。 - 示例:将员工按薪水分成四个桶。
SELECT name, salary, NTILE(4) OVER (ORDER BY salary) AS quartile FROM employees;
- 解释:
NULLS:- 解释:
NULLS关键字通常与ORDER BY子句一起使用,用于指定NULL值在排序中的位置。 - 示例:将
NULL值放在排序结果的末尾。SELECT * FROM my_table ORDER BY column_name NULLS LAST;
- 解释:
NUMBER:- 解释:
NUMBER是一个数据类型,表示数字,通常用于存储数值数据。 - 示例:创建一个
NUMBER类型的列。CREATE TABLE my_table ( id INT, quantity NUMBER );
- 解释:
NUMERIC:- 解释:
NUMERIC是一个精确数值类型,用于存储固定精度和小数位数的数字。 - 示例:创建一个
NUMERIC类型的列。CREATE TABLE my_table ( id INT, price NUMERIC(10, 2) );
- 解释:
NVARCHAR:- 解释:
NVARCHAR是一个变长 Unicode 字符数据类型,用于存储字符数据。 - 示例:创建一个
NVARCHAR类型的列。CREATE TABLE my_table ( id INT, description NVARCHAR(100) );
- 解释:
O
OF(R); added in 8.0.1 (reserved)OFF; added in 8.0.20 (nonreserved)OFFSETOJ; added in 8.0.16 (nonreserved)OLD; added in 8.0.14 (nonreserved)ON(R)ONEONLYOPENOPTIMIZE(R)OPTIMIZER_COSTS(R)OPTION(R)OPTIONAL; added in 8.0.13 (nonreserved)OPTIONALLY(R)OPTIONSOR(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
给出解释和例子
OF:- 解释:
OF是用于指定数据库对象的限定符,在引用对象时使用。 - 示例:查询某个表的列。
SELECT column_name FROM table_name OF database_name;
- 解释:
OFF:- 解释:
OFF是一个选项,通常用于关闭某些功能或设置。 - 示例:关闭二进制日志。
SET GLOBAL binary_log = 'OFF';
- 解释:
OFFSET:- 解释:
OFFSET是用于指定查询结果的偏移量的关键字,通常与LIMIT一起使用。 - 示例:获取查询结果的第 11 到 20 行。
SELECT * FROM my_table LIMIT 10 OFFSET 10;
- 解释:
OJ:- 解释:
OJ是指外连接操作符,用于执行外连接。 - 示例:执行外连接。
SELECT * FROM table1 OJ table2 ON table1.id = table2.id;
- 解释:
OLD:- 解释:
OLD是在触发器中引用旧的插入、更新或删除的行的伪行。 - 示例:在触发器中使用
OLD引用旧的更新前的行。CREATE TRIGGER my_trigger BEFORE UPDATE ON my_table FOR EACH ROW BEGIN INSERT INTO log_table (log_message) VALUES ('Row updated with ID: ' || OLD.id); END;
- 解释:
ON:- 解释:
ON通常用于指定条件、连接条件或触发器执行时机等。 - 示例:在创建触发器时指定触发时机。
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW BEGIN -- 触发器逻辑 END;
- 解释:
ONE:- 解释:
ONE是一个数量词,通常用于指定一个值。 - 示例:查询具有唯一值的列。
SELECT * FROM my_table WHERE column_name = 'value' LIMIT 1;
- 解释:
ONLY:- 解释:
ONLY通常用于限定某些操作只作用于指定对象。 - 示例:删除表中的所有数据,但不删除表本身。
DELETE FROM my_table ONLY;
- 解释:
OPEN:- 解释:
OPEN通常用于打开游标。 - 示例:打开一个名为
my_cursor的游标。OPEN my_cursor;
- 解释:
OPTIMIZE:- 解释:
OPTIMIZE是一个优化关键字,用于优化表或查询的性能。 - 示例:优化表格以提高查询性能。
OPTIMIZE TABLE my_table;
- 解释:
OPTIMIZER_COSTS:- 解释:
OPTIMIZER_COSTS是一个用于控制优化器成本估算的选项。 - 示例:启用优化器成本估算。
SET OPTIMIZER_COSTS = ON;
- 解释:
OPTION:- 解释:
OPTION通常用于指定选项、参数或配置。 - 示例:使用
OPTION选项在查询中指定提示。SELECT * FROM my_table OPTION (MAX_EXECUTION_TIME=1000);
- 解释:
OPTIONAL:- 解释:
OPTIONAL是一个附加的选项,用于指示某些内容是可选的。 - 示例:指定一个可选参数。
SELECT * FROM my_table OPTIONAL parameter;
- 解释:
OPTIONALLY:- 解释:
OPTIONALLY通常用于指定某些操作是可选的。 - 示例:指定可选的列更新。
UPDATE my_table SET column_name = value OPTIONALLY;
- 解释:
OPTIONS:- 解释:
OPTIONS是一个通用选项关键字,用于指定附加选项或配置。 - 示例:指定一些其他的查询选项。
SELECT * FROM my_table OPTIONS (key1='value1', key2='value2');
- 解释:
OR:- 解释:
OR是一个逻辑操作符,用于组合多个条件。 - 示例:查询满足条件1或条件2的行。
SELECT * FROM my_table WHERE condition1 OR condition2;
- 解释:
ORDER:- 解释:
ORDER通常与BY子句一起使用,用于指定排序顺序。 - 示例:按照某个列对查询结果进行排序。
SELECT * FROM my_table ORDER BY column_name;
- 解释:
ORDINALITY:- 解释:
ORDINALITY是一个用于返回数组中元素的顺序号的函数。 - 示例:获取数组中每个元素的顺序号。
SELECT column_name, ORDINALITY(array_column) AS position FROM my_table;
- 解释:
ORGANIZATION:- 解释:
ORGANIZATION是一个用于指定表的组织方式的关键字。 - 示例:指定表的存储组织方式。
CREATE TABLE my_table ( id INT, name VARCHAR(50) ) ORGANIZATION ROW;
- 解释:
OTHERS:- 解释:
OTHERS是一个在 CASE 表达式中用于指定其他情况的关键字。 - 示例:在 CASE 表达式中处理其他情况。
CASE column_name WHEN value1 THEN result1 WHEN value2 THEN result2 ELSE 'Other' END;
- 解释:
OUT:- 解释:
OUT通常用于指定过程或函数的输出参数。 - 示例:定义一个输出参数。
CREATE PROCEDURE my_procedure (OUT param INT) BEGIN -- 过
- 解释:
OUTER:- 解释:
OUTER通常用于指定外连接,例如左外连接、右外连接。 - 示例:执行左外连接。
SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.id = table2.id;
- 解释:
OUTFILE:- 解释:
OUTFILE是一个用于将查询结果写入文件的关键字。 - 示例:将查询结果写入文件。
SELECT * FROM my_table INTO OUTFILE 'result.txt';
- 解释:
OVER:- 解释:
OVER通常用于指定窗口函数的窗口规范。 - 示例:使用
OVER定义窗口规范。SELECT column1, SUM(column2) OVER (PARTITION BY column3 ORDER BY column4) AS running_total FROM my_table;
- 解释:
OWNER:- 解释:
OWNER是指数据库对象的所有者或创建者。 - 示例:查看表的所有者。
SHOW TABLE STATUS LIKE 'my_table';
- 解释:
P
PACK_KEYSPAGEPARSERPARTIALPARTITION(R)PARTITIONINGPARTITIONSPASSWORDPASSWORD_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.16PERSIST_ONLY; added in 8.0.2 (reserved); became nonreserved in 8.0.16PHASEPLUGINPLUGINSPLUGIN_DIRPOINTPOLYGONPORTPRECEDESPRECEDING; added in 8.0.2 (nonreserved)PRECISION(R)PREPAREPRESERVEPREVPRIMARY(R)PRIVILEGESPRIVILEGE_CHECKS_USER; added in 8.0.18 (nonreserved)PROCEDURE(R)PROCESS; added in 8.0.11 (nonreserved)PROCESSLISTPROFILEPROFILESPROXYPURGE(R)
给出解释和例子
PACK_KEYS:- 解释:
PACK_KEYS是一个表选项,用于指定表格索引如何被压缩和打包。 - 示例:在创建表时指定
PACK_KEYS选项。CREATE TABLE my_table ( id INT, name VARCHAR(50) ) PACK_KEYS = 1;
- 解释:
PAGE:- 解释:
PAGE是 MySQL InnoDB 存储引擎中的一个概念,表示数据文件的一个页面。 - 示例:查找 InnoDB 存储引擎的页面大小。
SHOW VARIABLES LIKE 'innodb_page_size';
- 解释:
PARSER:- 解释:
PARSER是一个用于指定解析器的关键字,通常用于指定特定的 SQL 语法解析器。 - 示例:指定使用特定的解析器。
SET PARSER my_parser;
- 解释:
PARTIAL:- 解释:
PARTIAL是一个关键字,通常用于描述部分操作或部分结果。 - 示例:创建部分索引。
CREATE INDEX my_index ON my_table (column_name) WHERE condition;
- 解释:
PARTITION:- 解释:
PARTITION是用于创建分区表的关键字,可以将表分成多个逻辑部分。 - 示例:创建一个按日期范围分区的表。
CREATE TABLE sales ( id INT, amount DECIMAL(10,2), sale_date DATE ) PARTITION BY RANGE (YEAR(sale_date)) ( PARTITION p1 VALUES LESS THAN (2010), PARTITION p2 VALUES LESS THAN (2015), PARTITION p3 VALUES LESS THAN MAXVALUE );
- 解释:
PARTITIONING:- 解释:
PARTITIONING是一个关键字,用于指定分区表的分区策略。 - 示例:指定分区表的分区策略。
CREATE TABLE my_table ( id INT, name VARCHAR(50) ) PARTITION BY HASH(id) PARTITIONS 4;
- 解释:
PARTITIONS:- 解释:
PARTITIONS是一个关键字,用于指定分区表的分区数量。 - 示例:创建一个包含四个分区的表。
CREATE TABLE my_table ( id INT, name VARCHAR(50) ) PARTITION BY HASH(id) PARTITIONS 4;
- 解释:
PASSWORD:- 解释:
PASSWORD是一个关键字,通常用于设置或更改用户密码。 - 示例:更改用户密码。
ALTER USER 'user'@'host' IDENTIFIED BY 'new_password';
- 解释:
PASSWORD_LOCK_TIME:- 解释:
PASSWORD_LOCK_TIME是一个用于指定密码锁定时间的关键字,用于安全策略。 - 示例:设置密码锁定时间为 10 分钟。
SET PASSWORD_LOCK_TIME = 600;
- 解释:
PATH:- 解释:
PATH是一个关键字,通常用于指定文件路径或搜索路径。 - 示例:指定文件路径。
LOAD DATA INFILE '/path/to/file.csv' INTO TABLE my_table;
- 解释:
PERCENT_RANK:- 解释:
PERCENT_RANK是一个分析函数,用于计算某行在排序结果中的百分比排名。 - 示例:计算每个销售额的百分比排名。
SELECT sales, PERCENT_RANK() OVER (ORDER BY sales) AS percent_rank FROM sales_data;
- 解释:
PERSIST:- 解释:
PERSIST是一个选项,用于指定是否将特定配置或设置永久保存。 - 示例:设置参数永久保存。
SET PERSIST max_connections = 100;
- 解释:
PERSIST_ONLY:- 解释:
PERSIST_ONLY是一个选项,用于指定仅将特定配置或设置永久保存,但不应用于当前会话。 - 示例:设置参数仅在重新启动后永久保存。
SET PERSIST_ONLY max_connections = 100;
- 解释:
PHASE:- 解释:
PHASE是一个关键字,通常用于描述操作的阶段或步骤。 - 示例:执行备份操作的不同阶段。
BACKUP DATABASE my_database PHASE=ALL;
- 解释:
PLUGIN:- 解释:
PLUGIN是一个关键字,用于管理 MySQL 中的插件。 - 示例:安装新的插件。
INSTALL PLUGIN my_plugin SONAME 'my_plugin.so';
- 解释:
PLUGINS:- 解释:
PLUGINS是一个关键字,用于列出安装的插件。 - 示例:列出已安装的插件。
SHOW PLUGINS;
- 解释:
PLUGIN_DIR:- 解释:
PLUGIN_DIR是一个用于指定插件目录的关键字。 - 示例:指定插件的安装目录。
SET GLOBAL PLUGIN_DIR = '/path/to/plugins';
- 解释:
POINT:- 解释:
POINT是一个几何数据类型,表示二维点。 - 示例:创建一个
POINT类型的列。CREATE TABLE my_table ( id INT, location POINT );
- 解释:
POLYGON:- 解释:
POLYGON是一个几何数据类型,表示一个多边形。 - 示例:创建一个
POLYGON类型的列。CREATE TABLE my_table ( id INT, area POLYGON );
- 解释:
PORT:- 解释:
PORT是一个用于指定连接端口的关键字,通常用于连接数据库服务器。 - 示例:连接到 MySQL 服务器的特定端口。
- 解释:
PRECEDES:- 解释:
PRECEDES是一个用于比较两个值的相对顺序的关键字,通常用于排序或比较操作。 - 示例:比较两个日期的先后顺序。
SELECT * FROM events WHERE event_date1 PRECEDES event_date2;
- 解释:
PRECEDING:- 解释:
PRECEDING是一个用于指定窗口函数中的行或范围的关键字,通常用于指定相对位置。 - 示例:指定窗口函数的行范围为当前行之前的两行。
SELECT value, SUM(value) OVER (ORDER BY id ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS sum_values FROM my_table;
- 解释:
PRECISION:- 解释:
PRECISION是一个与数值数据类型相关的关键字,通常用于指定数值的精度。 - 示例:创建一个 DECIMAL 类型的列,并指定精度为 10 位。
CREATE TABLE my_table ( id INT, amount DECIMAL(10, 2) );
- 解释:
PREPARE:- 解释:
PREPARE是一个用于准备执行动态 SQL 语句的关键字,通常与EXECUTE结合使用。 - 示例:准备执行一个动态 SQL 语句。
PREPARE stmt FROM 'SELECT * FROM my_table WHERE id = ?'; EXECUTE stmt USING @id;
- 解释:
PRESERVE:- 解释:
PRESERVE是一个关键字,通常用于指示某些操作应保持或保留某些特性。 - 示例:创建一个保留表的备份。
CREATE TABLE backup_table LIKE original_table PRESERVE ROW FORMAT;
- 解释:
PREV:- 解释:
PREV是一个用于引用前一行数据的伪行,在某些情况下可用于触发器或窗口函数中。 - 示例:在触发器中使用
PREV引用前一行的数据。CREATE TRIGGER my_trigger BEFORE UPDATE ON my_table FOR EACH ROW BEGIN INSERT INTO log_table (log_message) VALUES ('Previous value of column: ' || PREV.column_name); END;
- 解释:
PRIMARY:- 解释:
PRIMARY是一个关键字,通常用于指定主键约束或主键索引。 - 示例:在创建表时指定主键。
CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) );
- 解释:
PRIVILEGES:- 解释:
PRIVILEGES是一个关键字,用于指定数据库或表的权限。 - 示例:授予用户对特定表的查询权限。
GRANT SELECT ON my_table TO 'user'@'localhost';
- 解释:
PRIVILEGE_CHECKS_USER:- 解释:
PRIVILEGE_CHECKS_USER是一个用于指定特定用户进行权限检查的选项。 - 示例:将权限检查委托给指定的用户。
SET GLOBAL PRIVILEGE_CHECKS_USER = 'admin'@'localhost';
- 解释:
PROCEDURE:- 解释:
PROCEDURE是一个关键字,用于定义存储过程。 - 示例:创建一个简单的存储过程。
CREATE PROCEDURE my_procedure() BEGIN SELECT 'Hello, World!'; END;
- 解释:
PROCESS:- 解释:
PROCESS是一个用于表示 MySQL 进程的关键字。 - 示例:列出当前运行的 MySQL 进程。
SHOW PROCESSLIST;
- 解释:
PROCESSLIST:- 解释:
PROCESSLIST是一个用于查看 MySQL 当前活动进程的关键字。 - 示例:查看当前 MySQL 进程列表。
SHOW PROCESSLIST;
- 解释:
PROFILE:- 解释:
PROFILE是一个用于启用查询分析功能的关键字,用于查看查询执行计划和性能统计信息。 - 示例:分析查询执行计划。
EXPLAIN SELECT * FROM my_table;
- 解释:
PROFILES:- 解释:
PROFILES是一个用于列出查询分析配置文件的关键字。 - 示例:查看当前配置的查询分析配置文件。
SHOW PROFILES;
- 解释:
PROXY:- 解释:
PROXY是一个用于代理访问或操作的关键字。 - 示例:配置 MySQL 代理。
SET GLOBAL PROXY_USERS = 'user1'@'host1', 'user2'@'host2';
- 解释:
PURGE:- 解释:
PURGE是一个关键字,通常用于清除或删除不需要的数据或对象。 - 示例:清除二进制日志。
PURGE BINARY LOGS BEFORE '2023-01-01 00:00:00';
- 解释:
Q
QUARTERQUERYQUICK
给出解释和例子
QUARTER:- 解释:
QUARTER是一个用于提取日期的季度部分的函数。它返回一个整数,表示给定日期所在的季度(1 到 4)。 - 示例:查询每个销售发生的季度。
SELECT sale_date, QUARTER(sale_date) AS quarter FROM sales_data;
- 解释:
QUERY:- 解释:
QUERY是一个通用关键字,表示查询操作。在 SQL 中,它用于指代对数据库的检索或操作。 - 示例:执行一个简单的查询操作。
SELECT * FROM my_table WHERE condition;
- 解释:
QUICK:- 解释:
QUICK是一个选项或参数,通常用于 MySQL 查询操作中,用于提高查询速度,但可能牺牲一些准确性。 - 示例:在
SELECT查询中使用QUICK选项以加快检索速度。SELECT QUICK * FROM my_table WHERE condition;
- 解释:
R
RANDOM; added in 8.0.18 (nonreserved)RANGE(R)RANK(R); added in 8.0.2 (reserved)READ(R)READS(R)READ_ONLYREAD_WRITE(R)REAL(R)REBUILDRECOVER
给出解释和例子
RANDOM:- 解释:
RANDOM是一个用于生成随机数的函数,在 MySQL 8.0.18 中添加。它返回一个在指定范围内的随机数。 - 示例:生成一个 1 到 100 之间的随机数。
SELECT RAND() * 100 AS random_number;
- 解释:
RANGE:- 解释:
RANGE是用于指定范围条件的关键字,通常与BETWEEN或IN运算符一起使用。 - 示例:查询销售额在特定范围内的订单。
SELECT * FROM sales WHERE amount RANGE BETWEEN 1000 AND 2000;
- 解释:
RANK:- 解释:
RANK是一个分析函数,用于为结果集中的行分配排名。在 MySQL 8.0.2 中添加。 - 示例:为销售额按照金额排名。
SELECT sale_id, amount, RANK() OVER (ORDER BY amount DESC) AS rank FROM sales_data;
- 解释:
READ:- 解释:
READ是一个关键字,通常用于指定读取数据的操作或权限。 - 示例:使用
READ锁来防止其他事务修改数据。SELECT * FROM my_table FOR READ;
- 解释:
READS:- 解释:
READS是一个关键字,通常用于指定事务的隔离级别或权限。 - 示例:设置事务的隔离级别为
READ COMMITTED。SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
- 解释:
READ_ONLY:- 解释:
READ_ONLY是一个关键字,通常用于指定数据库连接的只读模式。 - 示例:设置数据库连接为只读模式。
SET GLOBAL read_only = ON;
- 解释:
READ_WRITE:- 解释:
READ_WRITE是一个关键字,通常用于指定数据库连接的读写模式。 - 示例:设置数据库连接为读写模式。
SET GLOBAL read_only = OFF;
- 解释:
REAL:- 解释:
REAL是一个数据类型,用于存储单精度浮点数。 - 示例:创建一个
REAL类型的列。CREATE TABLE my_table ( id INT, value REAL );
- 解释:
REBUILD:- 解释:
REBUILD是一个关键字,通常用于重新构建索引或其他数据库对象。 - 示例:重建表的索引。
ALTER TABLE my_table REBUILD INDEX my_index;
- 解释:
RECOVER:- 解释:
RECOVER是一个关键字,通常用于恢复数据库中的损坏或丢失的数据。 - 示例:尝试从错误中恢复数据库。
RECOVER DATABASE my_database;
- 解释:
RECURSIVE(R); added in 8.0.1 (reserved)REDOFILE; removed in 8.0.3REDO_BUFFER_SIZEREDUNDANTREFERENCE; added in 8.0.4 (nonreserved)REFERENCES(R)REGEXP(R)RELAY
RECOVER:- 解释:
RECOVER是一个关键字,通常用于恢复数据库或数据,以使其恢复到正常状态。 - 示例:执行数据库恢复操作。
RECOVER DATABASE my_database;
- 解释:
RECURSIVE:- 解释:
RECURSIVE是一个关键字,用于在 SQL 中定义递归查询或递归操作,允许查询或操作自身的结果。 - 示例:执行递归查询以获取员工及其所有下属的层次结构。
WITH RECURSIVE EmployeeHierarchy AS ( SELECT emp_id, emp_name, manager_id FROM employees WHERE emp_id = 1 UNION ALL SELECT e.emp_id, e.emp_name, e.manager_id FROM employees e JOIN EmployeeHierarchy eh ON e.manager_id = eh.emp_id ) SELECT * FROM EmployeeHierarchy;
- 解释:
REDO_BUFFER_SIZE:- 解释:
REDO_BUFFER_SIZE是一个用于配置 MySQL InnoDB 存储引擎的重做日志缓冲区大小的参数。 - 示例:设置重做日志缓冲区大小为 64MB。
SET GLOBAL innodb_redo_log_buffer_size = 64M;
- 解释:
REDUNDANT:- 解释:
REDUNDANT是一个关键字,通常用于描述数据冗余或冗余信息。 - 示例:在创建表时指定数据冗余选项。
CREATE TABLE my_table ( id INT, name VARCHAR(50), PRIMARY KEY (id) REDUNDANT );
- 解释:
REFERENCE:- 解释:
REFERENCE是一个关键字,通常用于指定外键约束。 - 示例:创建一个带有外键约束的表。
CREATE TABLE orders ( order_id INT, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
- 解释:
REFERENCES:- 解释:
REFERENCES是一个关键字,通常用于指定外键约束。 - 示例:创建一个带有外键约束的表。
CREATE TABLE orders ( order_id INT, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
- 解释:
REGEXP:- 解释:
REGEXP是一个用于在 SQL 中进行正则表达式匹配的运算符。 - 示例:查找名字以 “J” 开头的所有员工。
SELECT * FROM employees WHERE emp_name REGEXP '^J';
- 解释:
RELAY:- 解释:
RELAY是一个用于描述中继日志或中继文件的关键字,通常与 MySQL 复制相关。 - 示例:查看中继日志信息。
SHOW RELAYLOG EVENTS;
- 解释:
RELAYLOGRELAY_LOG_FILERELAY_LOG_POSRELAY_THREADRELEASE(R)RELOADREMOTE; added in 8.0.3 (nonreserved); removed in 8.0.14REMOVERENAME(R)REORGANIZE
RELAYLOG:- 解释:
RELAYLOG是 MySQL 复制中使用的中继日志,记录主服务器上已提交的事务,但尚未在从服务器上执行的事务。 - 示例:查看当前中继日志文件列表。
SHOW RELAYLOG EVENTS;
- 解释:
RELAY_LOG_FILE:- 解释:
RELAY_LOG_FILE是一个用于指定中继日志文件的参数,通常用于 MySQL 复制配置中。 - 示例:设置从服务器的中继日志文件。
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000001';
- 解释:
RELAY_LOG_POS:- 解释:
RELAY_LOG_POS是一个用于指定中继日志位置的参数,通常用于 MySQL 复制配置中。 - 示例:设置从服务器的中继日志位置。
CHANGE MASTER TO MASTER_LOG_POS = 12345;
- 解释:
RELAY_THREAD:- 解释:
RELAY_THREAD是 MySQL 复制中使用的线程,负责读取主服务器上的二进制日志并将其复制到从服务器。 - 示例:查看当前的中继线程状态。
SHOW PROCESSLIST;
- 解释:
RELEASE:- 解释:
RELEASE是一个关键字,通常用于释放锁或资源。 - 示例:释放表级锁。
RELEASE LOCKS;
- 解释:
RELOAD:- 解释:
RELOAD是一个关键字,通常用于重新加载 MySQL 的配置或重新加载特定的模块。 - 示例:重新加载 MySQL 的配置文件。
FLUSH PRIVILEGES;
- 解释:
REMOTE:- 解释:
REMOTE是一个关键字,通常用于描述远程连接或远程操作。 - 示例:执行远程查询操作。
SELECT * FROM remote_database.remote_table;
- 解释:
REMOVE:- 解释:
REMOVE是一个关键字,通常用于从数据结构中删除元素或删除对象。 - 示例:从列表中删除指定的元素。
DELETE FROM my_list WHERE value = 'deleted_value';
- 解释:
RENAME:- 解释:
RENAME是一个关键字,通常用于重命名对象或更改对象的名称。 - 示例:重命名表格。
RENAME TABLE old_table TO new_table;
- 解释:
REORGANIZE:- 解释:
REORGANIZE是一个关键字,通常用于重新组织或重建数据库对象,以优化性能或修复碎片化。 - 示例:重新组织表格以优化性能。
ALTER TABLE my_table REORGANIZE PARTITION;
- 解释:
REPAIRREPEAT(R)REPEATABLEREPLACE(R)REPLICA; added in 8.0.22 (nonreserved)REPLICAS; added in 8.0.22 (nonreserved)REPLICATE_DO_DBREPLICATE_DO_TABLEREPLICATE_IGNORE_DBREPLICATE_IGNORE_TABLE
REPAIR:- 解释:
REPAIR是一个关键字,通常用于修复损坏的表格或索引。 - 示例:修复损坏的表格。
REPAIR TABLE my_table;
- 解释:
REPEAT:- 解释:
REPEAT是一个关键字,通常用于执行循环操作。 - 示例:使用
REPEAT构造循环来执行一系列操作。REPEAT SET @x = @x + 1; UNTIL @x > 10 END REPEAT;
- 解释:
REPEATABLE:- 解释:
REPEATABLE是一个关键字,通常用于设置事务的隔离级别,确保在同一事务内的读取操作会返回一致的结果。 - 示例:设置事务隔离级别为可重复读。
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
- 解释:
REPLACE:- 解释:
REPLACE是一个关键字,用于替换表中的数据行,如果数据行存在则替换,如果不存在则插入新行。 - 示例:替换表中的数据行。
REPLACE INTO my_table (id, name) VALUES (1, 'John');
- 解释:
REPLICA:- 解释:
REPLICA是一个关键字,通常用于描述从服务器,即用于复制主服务器的数据的服务器。 - 示例:执行与从服务器相关的操作。
SHOW REPLICA STATUS;
- 解释:
REPLICAS:- 解释:
REPLICAS是一个关键字,通常用于描述从服务器的数量,即用于复制主服务器的数据的服务器数量。 - 示例:设置复制配置以指定从服务器数量。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_PORT = 3306, MASTER_REPLICAS = 3;
- 解释:
REPLICATE_DO_DB:- 解释:
REPLICATE_DO_DB是一个用于指定应复制的数据库的参数,通常用于 MySQL 复制配置中。 - 示例:设置只复制指定的数据库。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_DO_DB = 'db1';
- 解释:
REPLICATE_DO_TABLE:- 解释:
REPLICATE_DO_TABLE是一个用于指定应复制的表格的参数,通常用于 MySQL 复制配置中。 - 示例:设置只复制指定的表格。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_DO_TABLE = 'table1';
- 解释:
REPLICATE_IGNORE_DB:- 解释:
REPLICATE_IGNORE_DB是一个用于指定应忽略复制的数据库的参数,通常用于 MySQL 复制配置中。 - 示例:设置忽略复制的数据库。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_IGNORE_DB = 'db2';
- 解释:
REPLICATE_IGNORE_TABLE:- 解释:
REPLICATE_IGNORE_TABLE是一个用于指定应忽略复制的表格的参数,通常用于 MySQL 复制配置中。 - 示例:设置忽略复制的表格。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_IGNORE_TABLE = 'table2';
- 解释:
REPLICATE_REWRITE_DBREPLICATE_WILD_DO_TABLEREPLICATE_WILD_IGNORE_TABLEREPLICATIONREQUIRE(R)REQUIRE_ROW_FORMAT; added in 8.0.19 (nonreserved)RESETRESIGNAL(R)RESOURCE; added in 8.0.3 (nonreserved)RESPECT; added in 8.0.2 (nonreserved)
REPLICATE_REWRITE_DB:- 解释:
REPLICATE_REWRITE_DB是一个用于在复制过程中重写数据库名称的参数,通常用于 MySQL 复制配置中。 - 示例:设置复制过程中重写数据库名称。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_REWRITE_DB = 'new_db';
- 解释:
REPLICATE_WILD_DO_TABLE:- 解释:
REPLICATE_WILD_DO_TABLE是一个用于指定应复制的表格模式的参数,通常用于 MySQL 复制配置中。 - 示例:设置复制指定模式的表格。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_WILD_DO_TABLE = 'db1.table%';
- 解释:
REPLICATE_WILD_IGNORE_TABLE:- 解释:
REPLICATE_WILD_IGNORE_TABLE是一个用于指定应忽略复制的表格模式的参数,通常用于 MySQL 复制配置中。 - 示例:设置忽略指定模式的表格。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_WILD_IGNORE_TABLE = 'db1.table%';
- 解释:
REPLICATION:- 解释:
REPLICATION是一个关键字,通常用于描述 MySQL 复制过程,即将主服务器上的数据复制到一个或多个从服务器上。 - 示例:启动 MySQL 复制过程。
START REPLICA;
- 解释:
REQUIRE:- 解释:
REQUIRE是一个关键字,通常用于指定所需的条件或要求。 - 示例:创建视图时指定所需的权限。
CREATE VIEW my_view AS SELECT * FROM my_table REQUIRE VIEW_METADATA_READ;
- 解释:
REQUIRE_ROW_FORMAT:- 解释:
REQUIRE_ROW_FORMAT是一个用于指定所需的行格式的参数,通常用于 MySQL 复制配置中。 - 示例:设置复制过程中所需的行格式。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REQUIRE_ROW_FORMAT = 'DYNAMIC';
- 解释:
RESET:- 解释:
RESET是一个关键字,通常用于重置特定的 MySQL 服务器变量为其默认值。 - 示例:重置会话级别的所有变量为默认值。
RESET SESSION;
- 解释:
RESIGNAL:- 解释:
RESIGNAL是一个关键字,用于重新抛出异常,通常用于异常处理程序中。 - 示例:在异常处理程序中重新抛出异常。
BEGIN DECLARE custom_exception CONDITION FOR SQLSTATE '45000'; DECLARE EXIT HANDLER FOR custom_exception BEGIN RESIGNAL; END; -- 这里执行一些操作,如果出现异常,则重新抛出 END;
- 解释:
RESOURCE:- 解释:
RESOURCE是一个关键字,通常用于描述资源或资源管理。 - 示例:执行资源管理操作。
CREATE RESOURCE POOL my_pool WITH (MAX_MEMORY = '1G');
- 解释:
RESPECT:- 解释:
RESPECT是一个关键字,用于遵循或尊重特定规则或条件。 - 示例:创建一个视图时遵循表的引用完整性。
CREATE VIEW my_view AS SELECT * FROM my_table RESPECT CONSTRAINTS;
- 解释:
RESTART; added in 8.0.4 (nonreserved)RESTORERESTRICT(R)RESUMERETAIN; added in 8.0.14 (nonreserved)RETURN(R)RETURNED_SQLSTATERETURNING; added in 8.0.21 (nonreserved)RETURNSREUSE; added in 8.0.3 (nonreserved)
REPLICATE_REWRITE_DB:- 解释:
REPLICATE_REWRITE_DB是一个用于指定复制操作中要重写的数据库名称的参数,通常用于 MySQL 复制配置中。 - 示例:配置复制操作以重写数据库名称。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_REWRITE_DB = 'db_rewrite';
- 解释:
REPLICATE_WILD_DO_TABLE:- 解释:
REPLICATE_WILD_DO_TABLE是一个用于指定应复制的通配符表格的参数,通常用于 MySQL 复制配置中。 - 示例:设置复制操作以复制满足通配符条件的表格。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_WILD_DO_TABLE = 'db1.table%';
- 解释:
REPLICATE_WILD_IGNORE_TABLE:- 解释:
REPLICATE_WILD_IGNORE_TABLE是一个用于指定应忽略复制的通配符表格的参数,通常用于 MySQL 复制配置中。 - 示例:设置复制操作以忽略满足通配符条件的表格。
CHANGE MASTER TO MASTER_HOST = 'master_server', MASTER_REPLICATE_WILD_IGNORE_TABLE = 'db2.table%';
- 解释:
REPLICATION:- 解释:
REPLICATION是一个用于描述数据库复制过程的关键字,指的是将主服务器上的更改同步到一个或多个从服务器的过程。 - 示例:设置主服务器以允许复制操作。
CHANGE MASTER TO MASTER_HOST = 'master_server';
- 解释:
REQUIRE:- 解释:
REQUIRE是一个关键字,通常用于指定外部依赖条件,例如存储过程的编译条件。 - 示例:在存储过程中指定编译条件。
CREATE PROCEDURE my_procedure() SQL SECURITY DEFINER COMMENT 'This is my procedure' LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER SQL SECURITY DEFINER BEGIN -- Procedure body END;
- 解释:
REQUIRE_ROW_FORMAT:- 解释:
REQUIRE_ROW_FORMAT是一个用于指定存储引擎行格式的参数,通常用于 MySQL 表格创建或修改中。 - 示例:设置表格的行格式要求。
CREATE TABLE my_table ( id INT, name VARCHAR(50) ) ENGINE = InnoDB ROW_FORMAT = COMPRESSED;
- 解释:
RESET:- 解释:
RESET是一个关键字,通常用于重置特定的服务器参数或会话变量为其默认值。 - 示例:重置会话变量为默认值。
RESET SESSION my_variable;
- 解释:
RESIGNAL:- 解释:
RESIGNAL是一个关键字,通常用于重新引发异常,用于处理异常情况。 - 示例:重新引发异常。
DECLARE my_exception CONDITION FOR SQLSTATE 'HY000'; SIGNAL my_exception SET MESSAGE_TEXT = 'Custom error message';
- 解释:
RESOURCE:- 解释:
RESOURCE是一个关键字,通常用于描述数据库资源或资源管理。 - 示例:管理数据库资源。
ALTER RESOURCE GROUP my_group ADD THREAD_PRIORITY 1;
- 解释:
RESPECT:- 解释:
RESPECT是一个关键字,通常用于表示遵循某些条件或规则。 - 示例:在权限管理中使用
RESPECT选项。GRANT SELECT ON my_table TO 'user'@'localhost' WITH GRANT OPTION RESPECT QUOTA;
- 解释:
REVERSEREVOKE(R)RIGHT(R)RLIKE(R)ROLE; became nonreserved in 8.0.1ROLLBACKROLLUPROTATEROUTINEROW(R); became reserved in 8.0.2
REVERSE:- 解释:
REVERSE是一个函数,用于将字符串反转。 - 示例:反转字符串。
SELECT REVERSE('hello'); -- Output: 'olleh'
- 解释:
REVOKE:- 解释:
REVOKE是一个关键字,用于撤销对数据库对象的权限授予。 - 示例:撤销对用户的某些权限。
REVOKE SELECT, INSERT ON my_table FROM 'user'@'localhost';
- 解释:
RIGHT:- 解释:
RIGHT是一个字符串函数,用于从字符串的右侧返回指定数量的字符。 - 示例:从字符串右侧返回指定数量的字符。
SELECT RIGHT('MySQL', 3); -- Output: 'SQL'
- 解释:
RLIKE:- 解释:
RLIKE是一个操作符,用于执行正则表达式匹配,类似于REGEXP。 - 示例:使用正则表达式匹配操作符。
SELECT * FROM my_table WHERE column RLIKE '^A';
- 解释:
ROLE:- 解释:
ROLE是一个关键字,用于定义数据库角色,管理和分配权限。 - 示例:创建一个数据库角色。
CREATE ROLE my_role;
- 解释:
ROLLBACK:- 解释:
ROLLBACK是一个关键字,用于取消当前事务中的所有未提交更改。 - 示例:回滚当前事务。
ROLLBACK;
- 解释:
ROLLUP:- 解释:
ROLLUP是一个关键字,用于在聚合查询中生成一系列子总计行。 - 示例:使用
ROLLUP生成聚合查询的子总计。SELECT column1, SUM(column2) FROM my_table GROUP BY column1 WITH ROLLUP;
- 解释:
ROTATE:- 解释:
ROTATE是一个函数,用于将字符串中的字符向左旋转指定数量的位置。 - 示例:将字符串向左旋转两个位置。
SELECT ROTATE('MySQL', 2); -- Output: 'SQLMy'
- 解释:
ROUTINE:- 解释:
ROUTINE是一个关键字,通常用于描述数据库中的存储过程和函数。 - 示例:查找所有存储过程和函数。
SHOW ROUTINES;
- 解释:
ROW:- 解释:
ROW是一个关键字,通常用于描述数据行或记录。 - 示例:使用
ROW构造一个数据行。INSERT INTO my_table VALUES ROW(1, 'John', 'Doe');
- 解释:
ROWS(R); became reserved in 8.0.2ROW_COUNTROW_FORMATROW_NUMBER(R); added in 8.0.2 (reserved)RTREE
ROW_COUNT:- 解释:
ROW_COUNT是一个系统变量,用于获取最后一个SELECT、INSERT、UPDATE或DELETE语句所影响的行数。 - 示例:获取最近一次修改的行数。
SELECT ROW_COUNT();
- 解释:
ROW_FORMAT:- 解释:
ROW_FORMAT是一个用于指定 InnoDB 表格行格式的参数,可以影响存储和检索数据的方式。 - 示例:在创建表格时指定行格式。
CREATE TABLE my_table ( id INT, name VARCHAR(50) ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
- 解释:
ROW_NUMBER:- 解释:
ROW_NUMBER是一个窗口函数,用于为结果集中的每一行分配一个唯一的序号。 - 示例:使用
ROW_NUMBER函数对结果集进行编号。SELECT *, ROW_NUMBER() OVER (ORDER BY id) AS row_num FROM my_table;
- 解释:
RTREE:- 解释:
RTREE是一个空间索引类型,用于高效存储和查询空间数据。 - 示例:在表格上创建 RTREE 空间索引。
CREATE SPATIAL INDEX my_spatial_index ON my_table (spatial_column) USING RTREE;
- 解释:
S
SAVEPOINTSCHEDULESCHEMA(R)SCHEMAS(R)SCHEMA_NAMESECONDSECONDARY; 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)
SAVEPOINT:- 解释:
SAVEPOINT是一个关键字,用于在事务中设置保存点,以便在后续的事务操作中回滚到特定的保存点。 - 示例:在事务中设置保存点。
START TRANSACTION; INSERT INTO my_table (column1) VALUES (1); SAVEPOINT my_savepoint; UPDATE my_table SET column2 = 2 WHERE id = 1; ROLLBACK TO my_savepoint; COMMIT;
- 解释:
SCHEDULE:- 解释:
SCHEDULE是一个关键字,通常用于描述计划任务或事件的执行计划。 - 示例:创建一个每天执行的计划任务。
CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY DO BEGIN -- Event body END;
- 解释:
SCHEMA:- 解释:
SCHEMA是一个关键字,用于描述数据库的结构,包括表格、视图、索引等对象的集合。 - 示例:在特定的数据库中创建表格。
CREATE TABLE my_database.my_table ( id INT, name VARCHAR(50) );
- 解释:
SCHEMAS:- 解释:
SCHEMAS是一个关键字,用于获取数据库服务器上的所有数据库的列表。 - 示例:显示数据库服务器上的所有数据库。
SHOW SCHEMAS;
- 解释:
SCHEMA_NAME:- 解释:
SCHEMA_NAME是一个函数,用于返回指定表格的模式名称。 - 示例:获取表格所属的模式名称。
SELECT SCHEMA_NAME FROM information_schema.TABLES WHERE TABLE_NAME = 'my_table';
- 解释:
SECOND:- 解释:
SECOND是一个函数,用于从时间戳或日期时间中提取秒部分。 - 示例:从时间戳中提取秒部分。
SELECT SECOND('2022-03-30 12:45:30'); -- Output: 30
- 解释:
SECONDARY:- 解释:
SECONDARY是一个关键字,通常用于描述从服务器或辅助资源。 - 示例:配置从服务器的相关参数。
CHANGE MASTER TO MASTER_HOST = 'secondary_server';
- 解释:
SECONDARY_ENGINE:- 解释:
SECONDARY_ENGINE是一个关键字,通常用于指定辅助存储引擎。 - 示例:在表格上使用辅助存储引擎。
CREATE TABLE my_table ENGINE = InnoDB SECONDARY_ENGINE = TokuDB;
- 解释:
SECONDARY_ENGINE_ATTRIBUTE:- 解释:
SECONDARY_ENGINE_ATTRIBUTE是一个关键字,用于指定辅助存储引擎的属性。 - 示例:指定辅助存储引擎的属性。
CREATE TABLE my_table ENGINE = InnoDB SECONDARY_ENGINE_ATTRIBUTE = 'key_block_size=8';
- 解释:
SECONDARY_LOAD:- 解释:
SECONDARY_LOAD是一个关键字,用于从辅助源加载数据。 - 示例:从辅助源加载数据到表格。
LOAD DATA FROM SECONDARY SOURCE INTO TABLE my_table;
- 解释:
SECONDARY_UNLOAD; added in 8.0.13 (nonreserved)SECOND_MICROSECOND(R)SECURITYSELECT(R)SENSITIVE(R)SEPARATOR(R)SERIALSERIALIZABLESERVERSESSION
SECONDARY_UNLOAD:- 解释:
SECONDARY_UNLOAD是一个关键字,用于从主服务器卸载数据到辅助资源。 - 示例:从主服务器卸载数据到辅助资源。
UNLOAD DATA TO SECONDARY TARGET FROM TABLE my_table;
- 解释:
SECOND_MICROSECOND:- 解释:
SECOND_MICROSECOND是一个函数,用于从时间戳或日期时间中提取秒和微秒部分。 - 示例:从日期时间中提取秒和微秒部分。
SELECT SECOND_MICROSECOND('2022-03-30 12:45:30.123456'); -- Output: 30.123456
- 解释:
SECURITY:- 解释:
SECURITY是一个关键字,通常用于描述数据库对象的安全性设置。 - 示例:设置存储过程的安全性。
CREATE PROCEDURE my_procedure() SECURITY DEFINER;
- 解释:
SELECT:- 解释:
SELECT是一个关键字,用于从数据库中检索数据。 - 示例:选择所有行和列。
SELECT * FROM my_table;
- 解释:
SENSITIVE:- 解释:
SENSITIVE是一个关键字,通常用于描述敏感数据或查询的安全性设置。 - 示例:设置查询结果为敏感数据。
SELECT * FROM sensitive_table SENSITIVE;
- 解释:
SEPARATOR:- 解释:
SEPARATOR是一个关键字,用于指定用于分隔字符的分隔符。 - 示例:设置逗号作为分隔符。
SELECT CONCAT_WS(',', col1, col2, col3) FROM my_table;
- 解释:
SERIAL:- 解释:
SERIAL是一个数据类型,通常用于定义自动增长的整数列。 - 示例:创建一个带有自动增长列的表格。
CREATE TABLE my_table ( id SERIAL PRIMARY KEY, name VARCHAR(50) );
- 解释:
SERIALIZABLE:- 解释:
SERIALIZABLE是一个事务隔离级别,通常用于设置最高级别的事务隔离。 - 示例:设置事务隔离级别为可串行化。
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
- 解释:
SERVER:- 解释:
SERVER是一个关键字,通常用于描述数据库服务器或外部数据源。 - 示例:创建外部数据源。
CREATE SERVER my_server FOREIGN DATA WRAPPER mysql OPTIONS (HOST 'localhost', DATABASE 'my_database', USER 'user', PASSWORD 'password');
- 解释:
SESSION:- 解释:
SESSION是一个关键字,通常用于描述当前数据库会话的属性或设置。 - 示例:设置会话变量。
SET SESSION my_variable = 'value';
- 解释:
SET(R)SHARESHOW(R)SHUTDOWNSIGNAL(R)SIGNEDSIMPLESKIP; added in 8.0.1 (nonreserved)SLAVESLOW
SET:- 解释:
SET是一个关键字,用于设置会话变量或执行赋值操作。 - 示例:设置会话变量。
SET @my_variable = 'value';
- 解释:
SHARE:- 解释:
SHARE是一个关键字,通常用于共享锁定数据以防止写入冲突。 - 示例:在数据上应用共享锁。
LOCK TABLES my_table SHARE MODE;
- 解释:
SHOW:- 解释:
SHOW是一个关键字,用于显示数据库服务器的元数据、状态或配置信息。 - 示例:显示所有数据库服务器上的表格。
SHOW TABLES;
- 解释:
SHUTDOWN:- 解释:
SHUTDOWN是一个关键字,用于关闭 MySQL 服务器。 - 示例:关闭 MySQL 服务器。
SHUTDOWN;
- 解释:
SIGNAL:- 解释:
SIGNAL是一个关键字,用于生成异常或信号。 - 示例:生成一个自定义异常。
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Custom error message';
- 解释:
SIGNED:- 解释:
SIGNED是一个数据类型修饰符,用于指定整数类型是带符号的。 - 示例:声明一个带符号的整数列。
CREATE TABLE my_table (id SIGNED);
- 解释:
SIMPLE:- 解释:
SIMPLE是一个关键字,通常用于描述简单的查询执行计划。 - 示例:在查询中使用简单的执行计划。
EXPLAIN SIMPLE SELECT * FROM my_table;
- 解释:
SKIP:- 解释:
SKIP是一个关键字,用于在语法中指示跳过某些元素。 - 示例:在备份过程中跳过索引。
BACKUP TABLE my_table SKIP INDEX;
- 解释:
SLAVE:- 解释:
SLAVE是一个关键字,通常用于描述从服务器或复制进程。 - 示例:启动从服务器的复制进程。
START SLAVE;
- 解释:
SLOW:- 解释:
SLOW是一个关键字,通常用于描述慢查询或慢日志相关的操作。 - 示例:查看慢查询日志。
SHOW SLOW LOG;
- 解释:
SMALLINT(R)SNAPSHOTSOCKETSOMESONAMESOUNDSSOURCESPATIAL(R)SPECIFIC(R)SQL(R)SQLEXCEPTION(R)
SMALLINT:- 解释:
SMALLINT是一个数据类型,用于存储小范围的整数值。 - 示例:创建一个
SMALLINT类型的列。CREATE TABLE my_table ( id SMALLINT, name VARCHAR(50) );
- 解释:
SNAPSHOT:- 解释:
SNAPSHOT是一个关键字,通常用于描述数据库的快照或备份。 - 示例:创建数据库的快照。
CREATE DATABASE my_database SNAPSHOT;
- 解释:
SOCKET:- 解释:
SOCKET是一个关键字,通常用于描述网络通信中的套接字。 - 示例:指定 MySQL 服务器监听的套接字。
START SERVER SOCKET = '/var/run/mysql.sock';
- 解释:
SOME:- 解释:
SOME是一个关键字,通常用于描述条件中的一些满足情况。 - 示例:使用
SOME条件。SELECT * FROM my_table WHERE column1 > SOME (SELECT column2 FROM another_table);
- 解释:
SONAME:- 解释:
SONAME是一个关键字,通常用于指定动态链接库的名称。 - 示例:指定动态链接库的名称。
CREATE FUNCTION my_function RETURNS INT SONAME 'my_library.so';
- 解释:
SOUNDS:- 解释:
SOUNDS是一个函数,用于比较两个字符串的声音相似性。 - 示例:比较两个字符串的声音相似性。
SELECT * FROM my_table WHERE SOUNDS LIKE 'John';
- 解释:
SOURCE:- 解释:
SOURCE是一个关键字,通常用于执行 SQL 脚本文件。 - 示例:执行 SQL 脚本文件。
SOURCE /path/to/script.sql;
- 解释:
SPATIAL:- 解释:
SPATIAL是一个关键字,用于创建空间索引或处理空间数据。 - 示例:在表格上创建空间索引。
CREATE SPATIAL INDEX my_spatial_index ON my_table(geometry_column);
- 解释:
SPECIFIC:- 解释:
SPECIFIC是一个关键字,通常用于引用特定的存储过程或函数。 - 示例:调用特定的存储过程。
CALL my_procedure SPECIFIC my_procedure_name;
- 解释:
SQL:- 解释:
SQL是结构化查询语言的缩写,用于操作和管理关系数据库。 - 示例:执行 SQL 查询。
SELECT * FROM my_table WHERE column1 = 'value';
- 解释:
SQLEXCEPTION:- 解释:
SQLEXCEPTION是一个关键字,用于处理 SQL 异常。 - 示例:捕获 SQL 异常并处理。
BEGIN -- SQL statements EXCEPTION WHEN SQLEXCEPTION THEN -- Handle exception END;
- 解释:
SQLSTATE(R)SQLWARNING(R)SQL_AFTER_GTIDSSQL_AFTER_MTS_GAPSSQL_BEFORE_GTIDSSQL_BIG_RESULT(R)SQL_BUFFER_RESULTSQL_CACHE; removed in 8.0.3SQL_CALC_FOUND_ROWS(R)SQL_NO_CACHE
SQLSTATE:- 解释:
SQLSTATE是一个系统变量,用于返回最后一个 SQL 操作的状态码。 - 示例:获取最后一个 SQL 操作的状态码。
SELECT SQLSTATE;
- 解释:
SQLWARNING:- 解释:
SQLWARNING是一个系统变量,用于返回最后一个 SQL 操作的警告信息。 - 示例:获取最后一个 SQL 操作的警告信息。
SELECT SQLWARNING;
- 解释:
SQL_AFTER_GTIDS:- 解释:
SQL_AFTER_GTIDS是一个选项,用于指定在备份中要处理的 GTID 事务范围。 - 示例:在备份操作中指定处理的 GTID 事务范围。
BACKUP DATABASE my_database TO '/backup' WITH SQL_AFTER_GTIDS = 'xxxxxx:yyyyyy';
- 解释:
SQL_AFTER_MTS_GAPS:- 解释:
SQL_AFTER_MTS_GAPS是一个选项,用于指定在备份中要跳过的多线程复制的事务范围。 - 示例:在备份操作中指定跳过的多线程复制事务范围。
BACKUP DATABASE my_database TO '/backup' WITH SQL_AFTER_MTS_GAPS = 'xxxxxx:yyyyyy';
- 解释:
SQL_BEFORE_GTIDS:- 解释:
SQL_BEFORE_GTIDS是一个选项,用于指定在备份中要跳过的 GTID 事务范围。 - 示例:在备份操作中指定跳过的 GTID 事务范围。
BACKUP DATABASE my_database TO '/backup' WITH SQL_BEFORE_GTIDS = 'xxxxxx:yyyyyy';
- 解释:
SQL_BIG_RESULT:- 解释:
SQL_BIG_RESULT是一个查询修饰符,用于指示查询返回的结果集可能很大。 - 示例:在查询中使用
SQL_BIG_RESULT。SELECT SQL_BIG_RESULT * FROM my_table;
- 解释:
SQL_BUFFER_RESULT:- 解释:
SQL_BUFFER_RESULT是一个查询修饰符,用于指示查询结果应该被缓存。 - 示例:在查询中使用
SQL_BUFFER_RESULT。SELECT SQL_BUFFER_RESULT * FROM my_table;
- 解释:
SQL_CACHE:- 解释:
SQL_CACHE是一个查询缓存选项,在 MySQL 8.0.3 中被移除。 - 示例:在查询中使用
SQL_CACHE。SELECT SQL_CACHE * FROM my_table;
- 解释:
SQL_CALC_FOUND_ROWS:- 解释:
SQL_CALC_FOUND_ROWS是一个查询修饰符,用于计算符合条件的行数,通常与FOUND_ROWS()函数一起使用。 - 示例:在查询中使用
SQL_CALC_FOUND_ROWS。SELECT SQL_CALC_FOUND_ROWS * FROM my_table WHERE condition LIMIT 10;
- 解释:
SQL_NO_CACHE:- 解释:
SQL_NO_CACHE是一个查询缓存选项,用于禁用查询结果的缓存。 - 示例:在查询中使用
SQL_NO_CACHE。SELECT SQL_NO_CACHE * FROM my_table;
- 解释:
SQL_SMALL_RESULT(R)SQL_THREADSQL_TSI_DAYSQL_TSI_HOURSQL_TSI_MINUTESQL_TSI_MONTHSQL_TSI_QUARTERSQL_TSI_SECONDSQL_TSI_WEEKSQL_TSI_YEAR
SQL_SMALL_RESULT:- 解释:
SQL_SMALL_RESULT是一个查询提示,用于告知 MySQL 在执行查询时使用较小的临时表格。 - 示例:在查询中使用
SQL_SMALL_RESULT查询提示。SELECT SQL_SMALL_RESULT * FROM my_table;
- 解释:
SQL_THREAD:- 解释:
SQL_THREAD是一个关键字,用于描述 MySQL 服务器中的 SQL 线程。 - 示例:查看当前 SQL 线程的状态。
SHOW PROCESSLIST;
- 解释:
SQL_TSI_DAY:- 解释:
SQL_TSI_DAY是一个常量,用于在日期函数中表示以天为单位的时间间隔。 - 示例:使用
SQL_TSI_DAY常量计算日期差值。SELECT TIMESTAMPDIFF(SQL_TSI_DAY, '2022-01-01', '2022-03-01'); -- Output: 59
- 解释:
SQL_TSI_HOUR:- 解释:
SQL_TSI_HOUR是一个常量,用于在日期函数中表示以小时为单位的时间间隔。 - 示例:使用
SQL_TSI_HOUR常量计算小时差值。SELECT TIMESTAMPDIFF(SQL_TSI_HOUR, '2022-01-01 00:00:00', '2022-01-01 03:00:00'); -- Output: 3
- 解释:
SQL_TSI_MINUTE:- 解释:
SQL_TSI_MINUTE是一个常量,用于在日期函数中表示以分钟为单位的时间间隔。 - 示例:使用
SQL_TSI_MINUTE常量计算分钟差值。SELECT TIMESTAMPDIFF(SQL_TSI_MINUTE, '2022-01-01 00:00:00', '2022-01-01 00:30:00'); -- Output: 30
- 解释:
SQL_TSI_MONTH:- 解释:
SQL_TSI_MONTH是一个常量,用于在日期函数中表示以月为单位的时间间隔。 - 示例:使用
SQL_TSI_MONTH常量计算月份差值。SELECT TIMESTAMPDIFF(SQL_TSI_MONTH, '2022-01-01', '2022-03-01'); -- Output: 2
- 解释:
SQL_TSI_QUARTER:- 解释:
SQL_TSI_QUARTER是一个常量,用于在日期函数中表示以季度为单位的时间间隔。 - 示例:使用
SQL_TSI_QUARTER常量计算季度差值。SELECT TIMESTAMPDIFF(SQL_TSI_QUARTER, '2022-01-01', '2022-07-01'); -- Output: 2
- 解释:
SQL_TSI_SECOND:- 解释:
SQL_TSI_SECOND是一个常量,用于在日期函数中表示以秒为单位的时间间隔。 - 示例:使用
SQL_TSI_SECOND常量计算秒差值。SELECT TIMESTAMPDIFF(SQL_TSI_SECOND, '2022-01-01 00:00:00', '2022-01-01 00:00:10'); -- Output: 10
- 解释:
SQL_TSI_WEEK:- 解释:
SQL_TSI_WEEK是一个常量,用于在日期函数中表示以周为单位的时间间隔。 - 示例:使用
SQL_TSI_WEEK常量计算周差值。SELECT TIMESTAMPDIFF(SQL_TSI_WEEK, '2022-01-01', '2022-01-15'); -- Output: 2
- 解释:
SQL_TSI_YEAR:- 解释:
SQL_TSI_YEAR是一个常量,用于在日期函数中表示以年为单位的时间间隔。 - 示例:使用
SQL_TSI_YEAR常量计算年份差值。SELECT TIMESTAMPDIFF(SQL_TSI_YEAR, '2020-01-01', '2022-01-01'); -- Output: 2
- 解释:
SRID; added in 8.0.3 (nonreserved)SSL(R)STACKEDSTARTSTARTING(R)STARTSSTATS_AUTO_RECALCSTATS_PERSISTENTSTATS_SAMPLE_PAGESSTATUSSTOP
SRID:- 解释:
SRID是一个关键字,用于描述空间数据的坐标参考系统标识符。 - 示例:在创建空间数据列时指定 SRID。
CREATE TABLE spatial_table ( id INT, geom GEOMETRY(SRID=4326) );
- 解释:
SSL:- 解释:
SSL是一个关键字,用于描述 MySQL 连接中使用的安全套接字层。 - 示例:在 MySQL 连接中启用 SSL 加密。
ALTER INSTANCE ROTATE INNODB MASTER KEY, ROTATE BINLOG MASTER KEY;
- 解释:
STACKED:- 解释:
STACKED是一个关键字,通常用于描述存储过程或触发器的堆栈大小。 - 示例:设置存储过程的堆栈大小。
SET SESSION stack_size = 32K;
- 解释:
START:- 解释:
START是一个关键字,通常用于描述事件的开始时间。 - 示例:定义事件的开始时间。
CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY STARTS '2024-03-27' DO ...;
- 解释:
STARTING:- 解释:
STARTING是一个关键字,通常用于描述事件的起始点。 - 示例:定义事件的起始时间。
CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY STARTING '2024-03-27' DO ...;
- 解释:
STARTS:- 解释:
STARTS是一个关键字,通常用于描述事件的起始时间。 - 示例:定义事件的起始时间。
CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY STARTS '2024-03-27' DO ...;
- 解释:
STATS_AUTO_RECALC: - 解释:STATS_AUTO_RECALC是一个关键字,用于指定表格的统计信息是否自动重新计算。 - 示例:在创建表格时指定是否自动重新计算统计信息。CREATE TABLE my_table (...) STATS_AUTO_RECALC = ON;STATS_PERSISTENT: - 解释:STATS_PERSISTENT是一个关键字,用于指定表格的统计信息是否持久化存储。 - 示例:在创建表格时指定是否持久化存储统计信息。CREATE TABLE my_table (...) STATS_PERSISTENT = ON;STATS_SAMPLE_PAGES: - 解释:STATS_SAMPLE_PAGES是一个关键字,用于指定表格的统计信息采样页数。 - 示例:在创建表格时指定统计信息的采样页数。CREATE TABLE my_table (...) STATS_SAMPLE_PAGES = 100;STATUS: - 解释:STATUS是一个关键字,用于描述服务器的状态或指标。 - 示例:查看 MySQL 服务器的运行状态。SHOW GLOBAL STATUS;STOP: - 解释:STOP是一个关键字,用于停止执行正在进行的事件。 - 示例:停止执行名为my_event的事件。ALTER EVENT my_event DISABLE;
STORAGESTORED(R)STRAIGHT_JOIN(R)STREAM; added in 8.0.20 (nonreserved)STRINGSUBCLASS_ORIGINSUBJECTSUBPARTITIONSUBPARTITIONSSUPER
STORAGE:- 解释:
STORAGE是一个关键字,用于描述存储引擎或存储参数。 - 示例:在创建表格时指定存储引擎。
CREATE TABLE my_table (...) ENGINE = InnoDB STORAGE = DISK;
- 解释:
STORED:- 解释:
STORED是一个关键字,通常用于描述存储过程或函数是否是存储的。 - 示例:创建一个存储过程。
CREATE PROCEDURE my_procedure () SQL SECURITY INVOKER LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL STORED;
- 解释:
STRAIGHT_JOIN:- 解释:
STRAIGHT_JOIN是一个查询提示,用于强制 MySQL 使用STRAIGHT_JOIN方式连接表格。 - 示例:在查询中使用
STRAIGHT_JOIN查询提示。SELECT STRAIGHT_JOIN * FROM table1, table2 WHERE table1.id = table2.id;
- 解释:
STREAM:- 解释:
STREAM是一个关键字,通常用于描述数据流或流处理相关的操作。 - 示例:处理数据流。
SELECT * FROM my_stream;
- 解释:
STRING:- 解释:
STRING是一个关键字,通常用于描述字符数据类型或字符串相关的操作。 - 示例:声明一个字符串变量。
DECLARE my_string VARCHAR(255);
- 解释:
SUBCLASS_ORIGIN:- 解释:
SUBCLASS_ORIGIN是一个关键字,用于描述数据类型的子类来源。 - 示例:查看数据类型的子类来源。
SELECT SUBCLASS_ORIGIN FROM information_schema.COLUMNS WHERE TABLE_NAME = 'my_table';
- 解释:
SUBJECT:- 解释:
SUBJECT是一个关键字,通常用于描述主题或对象的相关信息。 - 示例:设置邮件主题。
SEND MAIL TO 'recipient@example.com' SUBJECT 'Meeting Agenda';
- 解释:
SUBPARTITION:- 解释:
SUBPARTITION是一个关键字,用于描述分区表的子分区。 - 示例:创建一个带有子分区的分区表。
CREATE TABLE my_partitioned_table (...) PARTITION BY RANGE (...) SUBPARTITION BY HASH (...) SUBPARTITIONS 4;
- 解释:
SUBPARTITIONS:- 解释:
SUBPARTITIONS是一个关键字,用于指定分区表的子分区数量。 - 示例:创建一个带有子分区的分区表。
CREATE TABLE my_partitioned_table (...) PARTITION BY RANGE (...) SUBPARTITION BY HASH (...) SUBPARTITIONS 4;
- 解释:
SUPER:- 解释:
SUPER是一个关键字,通常用于描述超级用户或特权相关的操作。 - 示例:授予超级用户权限。
GRANT SUPER ON *.* TO 'user'@'host';
- 解释:
SUSPENDSWAPSSWITCHESSYSTEM(R); added in 8.0.3 (reserved)
SUSPEND:- 解释:
SUSPEND是一个关键字,通常在存储过程或函数中用于挂起执行。 - 示例:在存储过程中使用
SUSPEND关键字。CREATE PROCEDURE my_procedure() BEGIN -- Some logic IF condition THEN SUSPEND; END IF; -- More logic END;
- 解释:
SWAPS:- 解释:
SWAPS是一个关键字,用于描述操作系统的交换空间使用情况。 - 示例:查看当前系统的交换空间使用情况。
SHOW GLOBAL STATUS LIKE 'Swaps';
- 解释:
SWITCHES:- 解释:
SWITCHES是一个关键字,通常用于描述 MySQL 服务器的切换操作。 - 示例:查看 MySQL 服务器的切换次数。
SHOW GLOBAL STATUS LIKE 'Switches';
- 解释:
SYSTEM:- 解释:
SYSTEM是一个关键字,通常用于描述系统级别的操作或属性。 - 示例:查看系统级别的变量。
SHOW VARIABLES LIKE 'system%';
- 解释:
T
TABLE(R)TABLESTABLESPACETABLE_CHECKSUMTABLE_NAMETEMPORARYTEMPTABLETERMINATED(R)TEXT
TABLE:- 解释:
TABLE是一个关键字,用于描述数据库中的表格对象。 - 示例:创建一个名为
my_table的表格。CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) );
- 解释:
TABLES:- 解释:
TABLES是一个关键字,用于描述数据库中的表格。 - 示例:显示数据库中的所有表格。
SHOW TABLES;
- 解释:
TABLESPACE:- 解释:
TABLESPACE是一个关键字,用于描述数据库中的表空间。 - 示例:创建一个名为
my_tablespace的表空间。CREATE TABLESPACE my_tablespace ADD DATAFILE 'my_tablespace.ibd' ENGINE = InnoDB;
- 解释:
TABLE_CHECKSUM:- 解释:
TABLE_CHECKSUM是一个关键字,用于描述表格的校验和属性。 - 示例:在创建表格时启用校验和功能。
CREATE TABLE my_table ( id INT, name VARCHAR(50) ) TABLE_CHECKSUM = 1;
- 解释:
TABLE_NAME:- 解释:
TABLE_NAME是一个关键字,用于描述数据库中表格的名称。 - 示例:查询信息模式视图以获取表格名称。
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'my_database';
- 解释:
TEMPORARY:- 解释:
TEMPORARY是一个关键字,用于描述临时表格或对象。 - 示例:创建一个临时表格。
CREATE TEMPORARY TABLE temp_table ( id INT PRIMARY KEY, name VARCHAR(50) );
- 解释:
TEMPTABLE:- 解释:
TEMPTABLE是一个关键字,用于描述在查询执行中是否使用了临时表格。 - 示例:在查询中使用临时表格进行处理。
SELECT * FROM my_table1 JOIN my_table2 USE INDEX FOR JOIN (PRIMARY) ORDER BY id;
- 解释:
TERMINATED:- 解释:
TERMINATED是一个关键字,通常在 LOAD DATA INFILE 语句中使用,用于指定字段的终止字符。 - 示例:使用
TERMINATED BY在加载数据时指定字段终止字符。LOAD DATA INFILE 'data.txt' INTO TABLE my_table FIELDS TERMINATED BY ',';
- 解释:
TEXT:- 解释:
TEXT是一个数据类型,用于存储长文本数据。 - 示例:创建一个 TEXT 类型的列。
CREATE TABLE my_table ( id INT PRIMARY KEY, content TEXT );
- 解释:
THANTHEN(R)THREAD_PRIORITY; added in 8.0.3 (nonreserved)TIES; added in 8.0.2 (nonreserved)TIMETIMESTAMPTIMESTAMPADDTIMESTAMPDIFFTINYBLOB(R)TINYINT(R)
THAN:- 解释:
THAN是一个关键字,通常用于比较操作或语句中,表示一个值大于另一个值。 - 示例:使用
THAN比较两个值。SELECT * FROM my_table WHERE value1 > value2;
- 解释:
THEN:- 解释:
THEN是一个关键字,通常与CASE表达式一起使用,表示条件为真时执行的结果。 - 示例:使用
THEN表示CASE表达式的条件分支。CASE WHEN condition THEN result ELSE alternative END;
- 解释:
THREAD_PRIORITY:- 解释:
THREAD_PRIORITY是一个关键字,用于设置线程的优先级。 - 示例:设置线程的优先级。
SET GLOBAL thread_priority = 10;
- 解释:
TIES:- 解释:
TIES是一个关键字,用于描述在排序中出现的平局情况。 - 示例:在排序结果中标记平局。
SELECT * FROM my_table ORDER BY score DESC TIES ('Tie');
- 解释:
TIME:- 解释:
TIME是一个数据类型,用于存储时间值。 - 示例:创建一个 TIME 类型的列。
CREATE TABLE my_table ( id INT PRIMARY KEY, time_column TIME );
- 解释:
TIMESTAMP:- 解释:
TIMESTAMP是一个数据类型,用于存储日期和时间值,通常用于记录时间戳。 - 示例:创建一个 TIMESTAMP 类型的列。
CREATE TABLE my_table ( id INT PRIMARY KEY, timestamp_column TIMESTAMP );
- 解释:
TIMESTAMPADD:- 解释:
TIMESTAMPADD是一个函数,用于在日期时间值中添加一定数量的时间间隔。 - 示例:使用
TIMESTAMPADD函数在日期时间值中添加一天。SELECT TIMESTAMPADD(DAY, 1, '2022-01-01');
- 解释:
TIMESTAMPDIFF:- 解释:
TIMESTAMPDIFF是一个函数,用于计算两个日期时间值之间的时间间隔。 - 示例:使用
TIMESTAMPDIFF函数计算两个日期时间值之间的天数差。SELECT TIMESTAMPDIFF(DAY, '2022-01-01', '2022-01-10');
- 解释:
TINYBLOB:- 解释:
TINYBLOB是一个数据类型,用于存储最大长度为 255 字节的二进制数据。 - 示例:创建一个 TINYBLOB 类型的列。
CREATE TABLE my_table ( id INT PRIMARY KEY, data TINYBLOB );
- 解释:
TINYINT:- 解释:
TINYINT是一个数据类型,用于存储范围较小的整数值。 - 示例:创建一个 TINYINT 类型的列。
CREATE TABLE my_table ( id INT PRIMARY KEY, age TINYINT );
- 解释:
TINYTEXT(R)TLS; added in 8.0.21 (nonreserved)TO(R)TRAILING(R)TRANSACTIONTRIGGER(R)TRIGGERSTRUE(R)TRUNCATETYPETYPES
TINYTEXT:- 解释:
TINYTEXT是一个数据类型,用于存储短文本数据,最大长度为 255 个字符。 - 示例:创建一个
TINYTEXT类型的列。CREATE TABLE my_table ( id INT PRIMARY KEY, description TINYTEXT );
- 解释:
TLS:- 解释:
TLS是一个关键字,用于描述传输层安全协议。 - 示例:在 MySQL 连接中启用 TLS 加密。
ALTER INSTANCE ROTATE INNODB MASTER KEY, ROTATE BINLOG MASTER KEY;
- 解释:
TO:- 解释:
TO是一个关键字,通常用于描述目标或接收者。 - 示例:将数据从一个表格复制到另一个表格。
INSERT INTO target_table SELECT * FROM source_table;
- 解释:
TRAILING:- 解释:
TRAILING是一个关键字,通常用于描述字符串操作,表示去除字符串末尾的空格。 - 示例:使用
TRAILING去除字符串末尾的空格。SELECT TRAILING(' Hello ') AS trimmed_string;
- 解释:
TRANSACTION:- 解释:
TRANSACTION是一个关键字,用于描述数据库事务。 - 示例:开始一个事务。
START TRANSACTION;
- 解释:
TRIGGER:- 解释:
TRIGGER是一个关键字,用于描述数据库触发器。 - 示例:创建一个触发器。
CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW INSERT INTO log_table VALUES (NEW.id, NOW());
- 解释:
TRIGGERS:- 解释:
TRIGGERS是一个关键字,用于描述数据库中的触发器。 - 示例:显示数据库中的所有触发器。
SHOW TRIGGERS;
- 解释:
TRUE:- 解释:
TRUE是一个布尔值,表示真值。 - 示例:使用
TRUE在查询中筛选真值。SELECT * FROM my_table WHERE condition = TRUE;
- 解释:
TRUNCATE:- 解释:
TRUNCATE是一个关键字,用于快速清空表格的内容,但保留表结构。 - 示例:清空名为
my_table的表格。TRUNCATE TABLE my_table;
- 解释:
TYPE:- 解释:
TYPE是一个关键字,用于描述数据类型或对象类型。 - 示例:定义一个自定义数据类型。
CREATE TYPE my_type AS ENUM ('A', 'B', 'C');
- 解释:
TYPES:- 解释:
TYPES是一个关键字,用于描述数据库中可用的数据类型。 - 示例:显示数据库中的所有数据类型。
SHOW TYPES;
- 解释:
U
UNBOUNDED; added in 8.0.2 (nonreserved)UNCOMMITTEDUNDEFINEDUNDO(R)UNDOFILEUNDO_BUFFER_SIZEUNICODEUNINSTALLUNION(R)UNIQUE(R)
UNBOUNDED:- 解释:
UNBOUNDED是一个关键字,用于描述在窗口函数中表示无边界。 - 示例:在窗口函数中使用
UNBOUNDED表示无边界。SELECT val, SUM(val) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_total FROM my_table;
- 解释:
UNCOMMITTED:- 解释:
UNCOMMITTED是一个关键字,用于描述事务的隔离级别,表示事务不需要等待其他事务的提交。 - 示例:在启动事务时指定隔离级别为
UNCOMMITTED。START TRANSACTION ISOLATION LEVEL UNCOMMITTED;
- 解释:
UNDEFINED:- 解释:
UNDEFINED是一个关键字,通常用于描述变量或状态的未定义性。 - 示例:使用
UNDEFINED表示状态未定义。DECLARE my_var INT DEFAULT UNDEFINED;
- 解释:
UNDO:- 解释:
UNDO是一个关键字,通常用于描述数据库事务中的回滚操作。 - 示例:执行事务回滚操作。
ROLLBACK;
- 解释:
UNDOFILE:- 解释:
UNDOFILE是一个关键字,用于指定用于存储事务日志的文件名。 - 示例:在 MySQL 配置文件中指定 UNDOFILE。
undo_log = undo_file_name
- 解释:
UNDO_BUFFER_SIZE:- 解释:
UNDO_BUFFER_SIZE是一个关键字,用于指定 UNDO 缓冲区的大小。 - 示例:在 MySQL 配置文件中设置 UNDO 缓冲区大小。
undo_buffer_size = size
- 解释:
UNICODE:- 解释:
UNICODE是一个关键字,用于描述字符集或编码。 - 示例:在连接 MySQL 数据库时指定字符集为 UNICODE。
mysql -u username -p --default-character-set=UNICODE
- 解释:
UNINSTALL:- 解释:
UNINSTALL是一个关键字,用于卸载插件或扩展。 - 示例:卸载名为
my_plugin的插件。UNINSTALL PLUGIN my_plugin;
- 解释:
UNION:- 解释:
UNION是一个关键字,用于合并两个或多个查询的结果集。 - 示例:使用
UNION合并两个查询的结果。SELECT column1 FROM table1 UNION SELECT column2 FROM table2;
- 解释:
UNIQUE:- 解释:
UNIQUE是一个关键字,用于描述表格中的唯一约束。 - 示例:在创建表格时定义唯一约束。
CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) UNIQUE );
- 解释:
UNKNOWNUNLOCK(R)UNSIGNED(R)UNTILUPDATE(R)UPGRADEUSAGE(R)USE(R)USERUSER_RESOURCESUSE_FRM
UNBOUNDED:- 解释:
UNBOUNDED是一个关键字,通常用于描述窗口函数中的边界,表示未限定的边界。 - 示例:在窗口函数中使用
UNBOUNDED。SELECT val, SUM(val) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_total FROM my_table;
- 解释:
UNCOMMITTED:- 解释:
UNCOMMITTED是一个关键字,通常用于描述事务的隔离级别,表示未提交读取。 - 示例:设置事务的隔离级别为
UNCOMMITTED。SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
- 解释:
UNDEFINED:- 解释:
UNDEFINED是一个关键字,通常用于描述未定义的值或状态。 - 示例:使用
UNDEFINED描述未定义的行为。ALTER TABLE my_table ALTER COLUMN col SET DEFAULT UNDEFINED;
- 解释:
UNDO:- 解释:
UNDO是一个关键字,通常用于描述数据库中的撤销日志。 - 示例:查看 MySQL 中的撤销日志。
SHOW ENGINE INNODB STATUS;
- 解释:
UNDOFILE:- 解释:
UNDOFILE是一个关键字,用于描述撤销日志文件的名称。 - 示例:在 MySQL 中配置撤销日志文件。
SET GLOBAL innodb_undo_directory = '/path/to/undo/logs';
- 解释:
UNDO_BUFFER_SIZE:- 解释:
UNDO_BUFFER_SIZE是一个关键字,用于描述撤销日志缓冲区的大小。 - 示例:配置 MySQL 中的撤销日志缓冲区大小。
SET GLOBAL innodb_undo_buffer_size = 256MB;
- 解释:
UNICODE:- 解释:
UNICODE是一个关键字,用于描述统一字符编码标准。 - 示例:在数据库中存储 Unicode 字符串。
CREATE TABLE my_table ( id INT, text_column VARCHAR(100) CHARACTER SET utf8mb4 );
- 解释:
UNINSTALL:- 解释:
UNINSTALL是一个关键字,用于描述卸载或移除软件或插件。 - 示例:卸载 MySQL 插件。
UNINSTALL PLUGIN my_plugin;
- 解释:
UNION:- 解释:
UNION是一个关键字,用于组合多个查询结果集。 - 示例:使用
UNION合并两个查询结果集。SELECT col1 FROM table1 UNION SELECT col2 FROM table2;
- 解释:
UNIQUE:- 解释:
UNIQUE是一个关键字,用于描述唯一约束或索引。 - 示例:在列上创建唯一约束。
ALTER TABLE my_table ADD CONSTRAINT unique_constraint UNIQUE (column_name);
- 解释:
USING(R)UTC_DATE(R)UTC_TIME(R)UTC_TIMESTAMP(R)
USING:- 解释:
USING是一个关键字,通常用于指定连接条件或指定被更新的列和其对应的值。 - 示例:在
JOIN操作中使用USING指定连接条件。SELECT * FROM table1 JOIN table2 USING (common_column);
- 解释:
UTC_DATE:- 解释:
UTC_DATE是一个系统函数,返回当前UTC日期,不包含时间部分。 - 示例:使用
UTC_DATE获取当前UTC日期。SELECT UTC_DATE();
- 解释:
UTC_TIME:- 解释:
UTC_TIME是一个系统函数,返回当前UTC时间,不包含日期部分。 - 示例:使用
UTC_TIME获取当前UTC时间。SELECT UTC_TIME();
- 解释:
UTC_TIMESTAMP:- 解释:
UTC_TIMESTAMP是一个系统函数,返回当前UTC日期和时间。 - 示例:使用
UTC_TIMESTAMP获取当前UTC日期和时间。SELECT UTC_TIMESTAMP();
- 解释:
V
VALIDATIONVALUEVALUES(R)VARBINARY(R)VARCHAR(R)VARCHARACTER(R)VARIABLESVARYING(R)VCPU; added in 8.0.3 (nonreserved)VIEWVIRTUAL(R)VISIBLE
VALIDATION:- 解释:
VALIDATION是一个关键字,通常用于描述验证过程或规则。 - 示例:在表格定义中使用
VALIDATION规则。CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) VALIDATION 'non_empty_string' );
- 解释:
VALUE:- 解释:
VALUE是一个关键字,通常用于描述数值或数据。 - 示例:在查询中使用
VALUE。SELECT VALUE FROM my_table WHERE id = 1;
- 解释:
VALUES:- 解释:
VALUES是一个关键字,通常用于描述插入或更新操作中的值列表。 - 示例:使用
VALUES插入新行。INSERT INTO my_table (col1, col2) VALUES (value1, value2);
- 解释:
VARBINARY:- 解释:
VARBINARY是一个数据类型,用于存储二进制数据,最大长度取决于指定的大小。 - 示例:创建一个
VARBINARY类型的列。CREATE TABLE my_table ( id INT, binary_data VARBINARY(100) );
- 解释:
VARCHAR:- 解释:
VARCHAR是一个数据类型,用于存储可变长度的字符数据,最大长度取决于指定的大小。 - 示例:创建一个
VARCHAR类型的列。CREATE TABLE my_table ( id INT, name VARCHAR(50) );
- 解释:
VARCHARACTER:- 解释:
VARCHARACTER是VARCHAR的同义词,用于存储可变长度的字符数据。 - 示例:创建一个
VARCHARACTER类型的列。CREATE TABLE my_table ( id INT, name VARCHARACTER(50) );
- 解释:
VARIABLES:- 解释:
VARIABLES是一个关键字,通常用于描述系统变量或用户定义的变量。 - 示例:显示 MySQL 中的所有系统变量。
SHOW VARIABLES;
- 解释:
VARYING:- 解释:
VARYING是一个关键字,通常用于描述可变长度的数据类型。 - 示例:在列定义中使用
VARYING。CREATE TABLE my_table ( id INT, description VARCHAR(255) VARYING );
- 解释:
VCPU:- 解释:
VCPU是一个关键字,通常用于描述虚拟中央处理单元。 - 示例:配置虚拟机的 vCPU 数量。
SET VCPU = 4;
- 解释:
VIEW:- 解释:
VIEW是一个关键字,用于描述数据库中的视图对象。 - 示例:创建一个视图。
CREATE VIEW my_view AS SELECT * FROM my_table WHERE condition;
- 解释:
VIRTUAL:- 解释:
VIRTUAL是一个关键字,用于描述虚拟列或虚拟索引。 - 示例:在表格中定义一个虚拟列。
ALTER TABLE my_table ADD COLUMN virtual_column VARCHAR(50) VIRTUAL;
- 解释:
VISIBLE:- 解释:
VISIBLE是一个关键字,通常用于描述对象的可见性。 - 示例:在创建索引时设置索引的可见性。
CREATE INDEX idx ON my_table (column_name) VISIBLE;
- 解释:
W
WAITWARNINGSWEEKWEIGHT_STRINGWHEN(R)WHERE(R)WHILE(R)WINDOW(R); added in 8.0.2 (reserved)WITH(R)WITHOUTWORKWRAPPERWRITE(R)
WAIT:- 解释:
WAIT是一个关键字,通常用于描述等待或暂停操作。 - 示例:等待一段时间后执行下一个操作。
SELECT * FROM my_table WHERE condition WAIT 10;
- 解释:
WARNINGS:- 解释:
WARNINGS是一个关键字,用于描述查询或操作产生的警告消息。 - 示例:显示最近一次操作产生的警告消息。
SHOW WARNINGS;
- 解释:
WEEK:- 解释:
WEEK是一个关键字,通常用于描述一年中的周数。 - 示例:获取当前日期所在的周数。
SELECT WEEK(NOW());
- 解释:
WEIGHT_STRING:- 解释:
WEIGHT_STRING是一个关键字,用于描述字符串的重量比较。 - 示例:使用
WEIGHT_STRING比较字符串的重量。SELECT * FROM my_table WHERE col1 = col2 WEIGHT_STRING;
- 解释:
WHEN:- 解释:
WHEN是一个关键字,通常用于描述条件逻辑。 - 示例:在
CASE表达式中使用WHEN。SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE default_result END;
- 解释:
WHERE:- 解释:
WHERE是一个关键字,用于筛选行。 - 示例:使用
WHERE筛选符合条件的行。SELECT * FROM my_table WHERE column1 = 'value';
- 解释:
WHILE:- 解释:
WHILE是一个关键字,用于循环语句中描述循环条件。 - 示例:在存储过程中使用
WHILE循环。WHILE condition DO -- loop body END WHILE;
- 解释:
WINDOW:- 解释:
WINDOW是一个关键字,用于描述窗口函数的命名窗口。 - 示例:在使用窗口函数时定义一个命名窗口。
SELECT column1, SUM(column2) OVER my_window AS running_total FROM my_table WINDOW my_window AS (ORDER BY column1);
- 解释:
WITH:- 解释:
WITH是一个关键字,通常用于描述公共表表达式或递归查询。 - 示例:使用
WITH定义一个公共表表达式。WITH cte AS (SELECT * FROM my_table WHERE condition) SELECT * FROM cte;
- 解释:
WITHOUT:- 解释:
WITHOUT是一个关键字,通常用于描述排除某些条件或属性。 - 示例:在查询中使用
WITHOUT排除某些行。SELECT * FROM my_table WHERE condition WITHOUT row_locks;
- 解释:
WORK:- 解释:
WORK是一个关键字,通常用于描述数据库事务。 - 示例:在事务中使用
WORK关键字。START TRANSACTION WORK;
- 解释:
WRAPPER:- 解释:
WRAPPER是一个关键字,通常用于描述外部函数的包装器。 - 示例:创建一个包装器函数。
CREATE FUNCTION my_wrapper(p1 INT) RETURNS INT SONAME 'my_library';
- 解释:
WRITE:- 解释:
WRITE是一个关键字,通常用于描述对数据库的写入操作。 - 示例:使用
WRITE在表格中插入新行。INSERT INTO my_table VALUES (1, 'value') WRITE;
- 解释:
X + Y + Z
X509XAXIDXML-
XOR(R) YEAR-
YEAR_MONTH(R) ZEROFILL(R)ZONE; added in 8.0.22 (nonreserved)
X509:- 解释:
X509是一个关键字,通常用于描述基于 X.509 标准的数字证书。 - 示例:使用
X509格式的数字证书进行身份验证。GRANT ALL PRIVILEGES ON my_database.* TO 'user'@'host' IDENTIFIED BY 'password' REQUIRE X509;
- 解释:
XA:- 解释:
XA是一个关键字,通常用于描述分布式事务处理中的分布式事务管理器。 - 示例:在 MySQL 中使用 XA 分布式事务。
XA START 'xa_transaction_id';
- 解释:
XID:- 解释:
XID是一个关键字,通常用于描述分布式事务中的事务标识符。 - 示例:使用
XID标识符管理分布式事务。XA END 'xa_transaction_id';
- 解释:
XML:- 解释:
XML是一个关键字,通常用于描述可扩展标记语言(XML)。 - 示例:将数据从 XML 格式导入到数据库中。
LOAD XML LOCAL INFILE '/path/to/file.xml' INTO TABLE my_table;
- 解释:
XOR:- 解释:
XOR是一个关键字,用于描述逻辑运算中的异或操作。 - 示例:在条件语句中使用
XOR进行逻辑判断。SELECT * FROM my_table WHERE col1 = 'value1' XOR col2 = 'value2';
- 解释:
YEAR:- 解释:
YEAR是一个关键字,通常用于描述年份数据类型。 - 示例:使用
YEAR数据类型定义一个年份列。CREATE TABLE my_table ( id INT, year_column YEAR );
- 解释:
YEAR_MONTH:- 解释:
YEAR_MONTH是一个关键字,通常用于描述年份和月份组合数据类型。 - 示例:使用
YEAR_MONTH数据类型定义一个年份和月份组合的列。CREATE TABLE my_table ( id INT, year_month_column YEAR_MONTH );
- 解释:
ZEROFILL:- 解释:
ZEROFILL是一个关键字,通常用于描述填充数字字段值的前导零。 - 示例:在定义数字列时使用
ZEROFILL。CREATE TABLE my_table ( id INT ZEROFILL, value INT );
- 解释:
ZONE:- 解释:
ZONE是一个关键字,通常用于描述时区或区域。 - 示例:在查询中使用
ZONE来处理时区信息。SELECT CONVERT_TZ('2024-03-28 12:00:00', 'UTC', 'America/New_York') AS converted_time;
- 解释:
MySQL 8.0新关键字和保留字
下表显示了与MySQL 5.7相比在MySQL 8.0中添加的关键字和保留字。保留的关键字标有(R)。
A
ACTIVEADMINARRAYATTRIBUTE
B
BUCKETS
C
CLONECOMPONENTCUME_DIST(R)
D
DEFINITIONDENSE_RANK(R)DESCRIPTION
E
EMPTY(R)ENFORCEDENGINE_ATTRIBUTEEXCEPT(R)EXCLUDE
F
FAILED_LOGIN_ATTEMPTSFIRST_VALUE(R)FOLLOWING
G
GEOMCOLLECTIONGET_MASTER_PUBLIC_KEYGROUPING(R)GROUPS(R)
H
HISTOGRAMHISTORY
I
INACTIVEINVISIBLE
J
JSON_TABLE(R)JSON_VALUE
L
LAG(R)LAST_VALUE(R)LATERAL(R)LEAD(R)LOCKED
M
MASTER_COMPRESSION_ALGORITHMSMASTER_PUBLIC_KEY_PATHMASTER_TLS_CIPHERSUITESMASTER_ZSTD_COMPRESSION_LEVELMEMBER
N
NESTEDNETWORK_NAMESPACENOWAITNTH_VALUE(R)NTILE(R)NULLS
O
OF(R)OFFOJOLDOPTIONALORDINALITYORGANIZATIONOTHERSOVER(R)
P
PASSWORD_LOCK_TIMEPATHPERCENT_RANK(R)PERSISTPERSIST_ONLYPRECEDINGPRIVILEGE_CHECKS_USERPROCESS
R
RANDOMRANK(R)RECURSIVE(R)REFERENCEREPLICAREPLICASREQUIRE_ROW_FORMATRESOURCERESPECTRESTARTRETAINRETURNINGREUSEROLEROW_NUMBER(R)
S
SECONDARYSECONDARY_ENGINESECONDARY_ENGINE_ATTRIBUTESECONDARY_LOADSECONDARY_UNLOADSKIPSRIDSTREAMSYSTEM(R)
T
THREAD_PRIORITYTIESTLS
U
UNBOUNDED
V
VCPUVISIBLE
W
WINDOW(R)
Z
ZONE
MySQL 8.0删除了关键字和保留字
下表显示了与MySQL 5.7相比在MySQL 8.0中删除的关键字和保留字。保留的关键字标有(R)。
ANALYSEDES_KEY_FILEPARSE_GCOL_EXPRREDOFILESQL_CACHE
chat
mysql 基础知识
列出 mysql 所有的关键词,给出表格,序号,关键词,描述,例子。
以下是 MySQL 的所有关键词,包括 SQL 关键词、保留字和函数名称。我将它们按照字母顺序排列,并提供了描述和例子。
| 序号 | 关键词 | 描述 | 例子 |
|---|---|---|---|
| 1 | ADD | 用于在表中添加列或添加索引 | ALTER TABLE table_name ADD column_name datatype; |
| 2 | ALL | 用于指定操作应该应用于查询中的所有行 | SELECT * FROM table_name WHERE condition ALL; |
| 3 | ALTER | 用于修改数据库表的结构 | ALTER TABLE table_name ADD column_name datatype; |
| 4 | AND | 用于在 WHERE 子句中将多个条件结合在一起 | SELECT * FROM table_name WHERE condition1 AND condition2; |
| 5 | AS | 用于重命名列或表 | SELECT column_name AS alias_name FROM table_name; |
| 6 | ASC | 用于按升序对结果集进行排序 | SELECT * FROM table_name ORDER BY column_name ASC; |
| 7 | AVG | 用于计算数值列的平均值 | SELECT AVG(column_name) FROM table_name; |
| 8 | BETWEEN | 用于在给定范围内检索值 | SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2; |
| 9 | BY | 用于指定排序顺序 | SELECT * FROM table_name ORDER BY column_name ASC|DESC; |
| 10 | CASE | 用于在 SELECT 子句中执行条件语句 | SELECT column_name, CASE WHEN condition THEN result END FROM table_name; |
| 11 | CAST | 用于将一个数据类型转换为另一个数据类型 | SELECT CAST(column_name AS new_data_type) FROM table_name; |
| 12 | CHAR | 定义固定长度的字符串类型 | CREATE TABLE table_name (column_name CHAR(length)); |
| 13 | COLUMN | 用于定义表中的列 | ALTER TABLE table_name ADD column_name datatype; |
| 14 | COUNT | 用于计算选择的行数 | SELECT COUNT(column_name) FROM table_name; |
| 15 | CREATE | 用于创建数据库或表 | CREATE DATABASE database_name; |
| 16 | DATE | 用于定义日期格式的数据类型 | CREATE TABLE table_name (column_name DATE); |
| 17 | DELETE | 用于删除表中的行或表 | DELETE FROM table_name WHERE condition; |
| 18 | DESC | 用于按降序对结果集进行排序 | SELECT * FROM table_name ORDER BY column_name DESC; |
| 19 | DISTINCT | 用于返回唯一不同的值 | SELECT DISTINCT column_name FROM table_name; |
| 20 | DROP | 用于删除数据库、表、索引、触发器等 | DROP TABLE table_name; |
| 21 | EXISTS | 用于测试子查询是否为空 | SELECT column_name FROM table_name WHERE EXISTS (subquery); |
| 22 | FOREIGN | 用于定义外键 | CREATE TABLE table_name (column_name datatype, FOREIGN KEY (column_name) REFERENCES another_table(column_name)); |
| 23 | FROM | 用于指定要查询数据的表名或表达式 | SELECT * FROM table_name; |
| 24 | GROUP | 用于将查询结果分组 | SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; |
| 25 | HAVING | 用于在 GROUP BY 子句中指定条件 | SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING condition; |
| 26 | INDEX | 用于创建或删除索引 | CREATE INDEX index_name ON table_name(column_name); |
| 27 | INSERT | 用于将新行插入表中 | INSERT INTO table_name (column1, column2) VALUES (value1, value2); |
| 28 | INNER | 用于根据连接条件返回匹配行 | SELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; |
| 29 | INTO | 用于将查询结果插入表中 | INSERT INTO table_name (column1, column2) SELECT column1, column2 FROM another_table_name; |
| 30 | IS | 用于测试表达式是否为 true、false 或未知 | SELECT * FROM table_name WHERE column_name IS NULL; |
| 31 | JOIN | 用于将行从两个或多个表中组合起来 | SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name; |
| 32 | KEY | 用于定义列或列组合的索引 | CREATE TABLE table_name (column1 datatype, column2 datatype, KEY (column1, column2)); |
| 33 | LEFT | 用于返回从左表(table1)中的所有记录和右表(table2)中的匹配记录 | SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name; |
| 34 | LIKE | 用于搜索与指定模式匹配的数据 | SELECT * FROM table_name WHERE column_name LIKE pattern; |
| 35 | LIMIT | 用于限制结果集的数量 | SELECT * FROM table_name LIMIT number; |
| 36 | MAX | 用于计算数值列的最大值 | SELECT MAX(column_name) FROM table_name; |
| 37 | MIN | 用于计算数值列的最小值 | SELECT MIN(column_name) FROM table_name; |
| 38 | NOT | 用于否定条件 | SELECT * FROM table_name WHERE NOT condition; |
| 39 | NULL | 用于测试值是否为 NULL | SELECT * FROM table_name WHERE column_name IS NULL; |
mysql 列出 DML 和 DQL 中会用到的所有关键词,group by … having 之类的也加上。
以下是 MySQL 中在 DML (Data Manipulation Language) 和 DQL (Data Query Language) 中经常使用的关键词,包括 SELECT 查询语句中的聚合函数和分组语句:
以下是完整的 MySQL 关键词列表,包括 DML、DQL、DDL、以及其他常用的关键词:
DML (Data Manipulation Language)
- SELECT: 从数据库中检索数据。
- INSERT: 将新行插入数据库表中。
- UPDATE: 更新数据库表中的现有行。
- DELETE: 从数据库表中删除行。
- WHERE: 用于指定条件,过滤要返回的数据。
- ORDER BY: 用于对结果集进行排序。
- LIMIT: 限制结果集的行数。
- GROUP BY: 将结果集按照一个或多个列进行分组。
- HAVING: 在 GROUP BY 中指定条件。
- JOIN: 将两个或多个表中的行组合起来,基于连接条件。
- INNER JOIN: 返回匹配两个表中行的行。
- LEFT JOIN: 返回左表中的所有行,以及右表中匹配的行。
- RIGHT JOIN: 返回右表中的所有行,以及左表中匹配的行。
- FULL JOIN: 返回左表和右表中的所有行,以及匹配的行。
- UNION: 合并两个或多个 SELECT 语句的结果集。
DDL (Data Definition Language)
- CREATE: 用于创建数据库、表、索引等。
- ALTER: 用于修改数据库对象,如表结构。
- DROP: 用于删除数据库对象,如表、索引等。
- TRUNCATE: 用于删除表中的所有数据。
DCL (Data Control Language)
- GRANT: 授予用户特定的权限。
- REVOKE: 撤销用户的权限。
Other Common Keywords
- AS: 用于为列或表指定别名。
- AND: 在 WHERE 子句中将多个条件结合在一起。
- OR: 在 WHERE 子句中指定多个可能的条件。
- IN: 指定条件范围,条件为多个值之一。
- BETWEEN: 指定范围内的条件。
- LIKE: 用于搜索与指定模式匹配的数据。
- IS NULL: 用于测试值是否为 NULL。
- IS NOT NULL: 用于测试值是否不为 NULL。
- COUNT(): 计算选择的行数。
- SUM(): 计算数值列的总和。
- AVG(): 计算数值列的平均值。
- MIN(): 计算数值列的最小值。
- MAX(): 计算数值列的最大值。
- DISTINCT: 返回唯一不同的值。
- FROM: 指定要查询数据的表名或表达式。
- AS: 用于为列或表指定别名。
- ON: 用于指定连接条件。
- ASC: 用于按升序对结果集进行排序。
- DESC: 用于按降序对结果集进行排序。
- UNION ALL: 合并两个或多个 SELECT 语句的结果集,包括重复行。
这些关键词涵盖了 MySQL 中常用的语句和功能,你可以根据需要使用它们。
帮我写一个 java 枚举类,列出上面所有的 mysql 关键词,形如:COUNT(“COUNT”, “计算选择的行数”)
以下是更新后的 Java 枚举类,包含了所有 MySQL 关键词及其描述:
public enum MySQLKeyword {
// DML (Data Manipulation Language)
SELECT("SELECT", "从数据库中检索数据。"),
INSERT("INSERT", "将新行插入数据库表中。"),
UPDATE("UPDATE", "更新数据库表中的现有行。"),
DELETE("DELETE", "从数据库表中删除行。"),
WHERE("WHERE", "用于指定条件,过滤要返回的数据。"),
ORDER_BY("ORDER BY", "用于对结果集进行排序。"),
LIMIT("LIMIT", "限制结果集的行数。"),
GROUP_BY("GROUP BY", "将结果集按照一个或多个列进行分组。"),
HAVING("HAVING", "在 GROUP BY 中指定条件。"),
JOIN("JOIN", "将两个或多个表中的行组合起来,基于连接条件。"),
INNER_JOIN("INNER JOIN", "返回匹配两个表中行的行。"),
LEFT_JOIN("LEFT JOIN", "返回左表中的所有行,以及右表中匹配的行。"),
RIGHT_JOIN("RIGHT JOIN", "返回右表中的所有行,以及左表中匹配的行。"),
FULL_JOIN("FULL JOIN", "返回左表和右表中的所有行,以及匹配的行。"),
UNION("UNION", "合并两个或多个 SELECT 语句的结果集。"),
// DDL (Data Definition Language)
CREATE("CREATE", "用于创建数据库、表、索引等。"),
ALTER("ALTER", "用于修改数据库对象,如表结构。"),
DROP("DROP", "用于删除数据库对象,如表、索引等。"),
TRUNCATE("TRUNCATE", "用于删除表中的所有数据。"),
// DCL (Data Control Language)
GRANT("GRANT", "授予用户特定的权限。"),
REVOKE("REVOKE", "撤销用户的权限。"),
// Other Common Keywords
AS("AS", "用于为列或表指定别名。"),
AND("AND", "在 WHERE 子句中将多个条件结合在一起。"),
OR("OR", "在 WHERE 子句中指定多个可能的条件。"),
IN("IN", "指定条件范围,条件为多个值之一。"),
BETWEEN("BETWEEN", "指定范围内的条件。"),
LIKE("LIKE", "用于搜索与指定模式匹配的数据。"),
IS_NULL("IS NULL", "用于测试值是否为 NULL。"),
IS_NOT_NULL("IS NOT NULL", "用于测试值是否不为 NULL。"),
COUNT("COUNT()", "计算选择的行数。"),
SUM("SUM()", "计算数值列的总和。"),
AVG("AVG()", "计算数值列的平均值。"),
MIN("MIN()", "计算数值列的最小值。"),
MAX("MAX()", "计算数值列的最大值。"),
DISTINCT("DISTINCT", "返回唯一不同的值。"),
FROM("FROM", "指定要查询数据的表名或表达式。"),
ON("ON", "用于指定连接条件。"),
ASC("ASC", "用于按升序对结果集进行排序。"),
DESC("DESC", "用于按降序对结果集进行排序。"),
UNION_ALL("UNION ALL", "合并两个或多个 SELECT 语句的结果集,包括重复行。");
private final String keyword;
private final String description;
MySQLKeyword(String keyword, String description) {
this.keyword = keyword;
this.description = description;
}
public String getKeyword() {
return keyword;
}
public String getDescription() {
return description;
}
}
现在这个枚举类包含了所有 MySQL 关键词以及相应的描述。你可以按需使用这些枚举常量来执行各种 MySQL 操作。
给出 mysql 关键词语法文档的网址,及相关学习资料
你可以在 MySQL 官方文档中找到关于 MySQL 关键字的详细信息。
以下是 MySQL 官方文档的网址:
在该文档中,你可以找到关于 MySQL 中所有语句、函数、关键字等的详尽说明。
此外,以下是一些学习 MySQL 的相关资源:
-
MySQL Tutorial: 一个面向初学者的 MySQL 教程,从基础知识到高级概念都有涵盖。
-
W3Schools MySQL Tutorial: W3Schools 提供的 MySQL 教程,包含了大量的例子和练习,适合快速入门和参考。
-
Coursera - Learn SQL Basics for Data Science: 由 Coursera 提供的在线课程,适合想要系统学习 SQL 的人群。
-
MySQL YouTube Channel: MySQL 官方 YouTube 频道,提供了许多关于 MySQL 的视频教程和演示。
-
MySQL Documentation: MySQL 官方文档,提供了详尽的 MySQL 相关资料和文档,适合进行深入学习和参考。
这些资源将帮助你建立对 MySQL 的扎实理解,并能够熟练使用 MySQL 进行数据库管理和查询操作。
参考资料
https://www.cnblogs.com/yuchuan/p/mysql_keyword.html
