ALTER FUNCTION 语句此语句可用于更改存储函数的特性。一个ALTER FUNCTION语句中可以指定多个更改。但是,不能使用此语句更改存储函数的参数或主体;要进行此类更改,必须使用DROP FUNCTION 和 CREATE FUNCTION删除并重新创建函数。 必须具有该函数的ALTER ROUTINE权限才能执行(该权限自动授予函数创建者)。如果启用了二进制日志记录,ALTER FUNCTION 语句可能还需要SUPER权限。 ALTER INSTANCE 语句ALTER INSTANCE定义了适用于M...
ALTER LOGFILE GROUP 语句此语句将名为‘file_name‘的 UNDO 文件添加到现有日志文件组logfile_group中。ALTER LOGFILE GROUP语句只有一个ADD UNDOFILE子句,当前不支持DROP UNDOFILE子句。 注意 所有NDB集群磁盘数据对象共享同一命名空间。这意味着每个磁盘数据对象必须具有唯一的名称(而不仅仅是给定类型的每个磁盘数据对象)。例如,不能有同名的表空间和撤销日志文件,也不能有同名的撤销日志文件和数据文件。 可选参数INITIA...
列列表规范 以下示例加载 persondata 表的所有列: 1. LOAD DATA INFILE ‘persondata.txt‘ INTO TABLE persondata; 默认情况下,当 LOAD DATA 语句末尾未提供列列表时,输入行应包含表的每个字段。如果只想加载表的某些列,请指定字段列表: 1. LOAD DATA INFILE ‘persondata.txt‘ INTO TABLE persondata 2. (col_name_or_user_var [, col_name_or_user_var] ...); 如果输入文件中字段的顺序与表中列的顺序不同,也必须要指定列...
列列表规范 以下示例加载 persondata 表的所有列: 1. LOAD DATA INFILE ‘persondata.txt‘ INTO TABLE persondata; 默认情况下,当 LOAD DATA 语句末尾未提供列列表时,输入行应包含表的每个字段。如果只想加载表的某些列,请指定字段列表: 1. LOAD DATA INFILE ‘persondata.txt‘ INTO TABLE persondata 2. (col_name_or_user_var [, col_name_or_user_var] ...); 如果输入文件中字段的顺序与表中列的顺序不同,也必须要指定列...
CREATE TABLE 语句 1. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name 2. (create_definition,...) 3. [table_options] 4. [partition_options] 5. 6. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name 7. [(create_definition,...)] 8. [table_options] 9. [partition_options] 10. [IGNORE | REPLACE] 11. [AS] query_expression 12. 13. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] t...
表选项 表选项用于优化表的行为。在大多数情况下,不必指定这些选项。除非另有说明,否则这些选项适用于所有存储引擎。不适用于给定存储引擎的选项也可以作为表定义的一部分。如果以后使用 ALTER TABLE 将表转换为使用其他存储引擎,则应用这些选项。 ● ENGINE 使用下表中显示的名称指定表的存储引擎。引擎名称可以不加引号或用引号引起来。可以识别名称 ‘DEFAULT‘ 但会忽略它。存储引擎 描述InnoDB 具有行锁定和外键的事务安全...
CHECK 约束 在 MySQL 8.0.16 之前,CREATE TABLE 只允许以下有限功能版本的表 CHECK 约束语法,它被解析并忽略: 1. CHECK (expr) 从 MySQL 8.0.16 开始,CREATE TABLE 支持表和列 CHECK 约束的核心功能,适用于所有存储引擎。对于表约束和列约束,CREATE TABLE 允许以下 CHECK 约束语法: 1. [CONSTRAINT [symbol]] CHECK (expr) [[NOT] ENFORCED] 可选项 symbol 指定约束的名称。如果省略,MySQL 将从表名、字面量 chk 和一个序数(...
派生表 派生表是一个表达式,在查询 FROM 子句范围内生成一个表。例如,SELECT 语句 FROM 子句中的子查询是派生表: 1. SELECT ... FROM (subquery) [AS] tbl_name ... JSON_TABLE() 函数生成一个表,并提供另一种创建派生表的方法: 1. SELECT * FROM JSON_TABLE(arg_list) [AS] tbl_name ... [AS] tbl_name 子句是必需的,因为 FROM 子句中的每个表都必须有一个名称。派生表中的任何列都必须具有唯一的名称。或者,tbl_name 后面...
UNION 子句 1. SELECT ... 2. UNION [ALL | DISTINCT] SELECT ... 3. [UNION [ALL | DISTINCT] SELECT ...] UNION 将来自多个 SELECT 语句的结果组合到一个结果集中。例子: 1. mysql> SELECT 1, 2; 2. +---+---+ 3. | 1 | 2 | 4. +---+---+ 5. | 1 | 2 | 6. +---+---+ 7. mysql> SELECT ‘a‘, ‘b‘; 8. +---+---+ 9. | a | b | 10. +---+---+ 11.| a | b | 12. +---+---+ 13. mysql> SELECT 1, 2 UNION SELECT ‘a‘, ‘b‘; 14...
SELECT ... INTO 语句 SELECT 的 SELECT ... INTO 形式将查询结果存储在变量中或写入文件: SELECT ... INTO var_list 选择列值并将它们存储到变量中。 SELECT ... INTO OUTFILE 将所选行写入文件。可以指定列和行终止符以生成特定的输出格式。 SELECT ... INTO DUMPFILE 在没有任何格式的情况下将单行写入文件。 给定的 SELECT 语句最多可以包含一个 INTO 子句,但如 SELECT 语法描述所示,INTO 可以出现在不同的位置: ● 在 FRO...
JOIN 子句 MySQL 对 SELECT 语句和多表 DELETE 和 UPDATE 语句 table_references 部分支持以下 JOIN 语法:1. table_references: 2. escaped_table_reference [, escaped_table_reference] ... 3. 4. escaped_table_reference: { 5. table_reference 6. | { OJ table_reference } 7. } 8. 9. table_reference: { 10. table_factor 11. | joined_table 12. } 13. 14. table_factor: { 15. tbl_name [PART...
事务性语句和锁定语句 START TRANSACTION、COMMIT 和 ROLLBACK 1. START TRANSACTION 2. [transaction_characteristic [, transaction_characteristic] ...] 3. 4. transaction_characteristic: { 5. WITH CONSISTENT SNAPSHOT 6. | READ WRITE 7. | READ ONLY 8. } 9. 10. BEGIN [WORK] 11. COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] 12. ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] 13. SET autocommi...
SAVEPOINT、ROLLBACK TO SAVEPOINT 和 RELEASE SAVEPOINT 语句 1. SAVEPOINT identifier 2. ROLLBACK [WORK] TO [SAVEPOINT] identifier 3. RELEASE SAVEPOINT identifier InnoDB 支持 SQL 语句 SAVEPOINT、ROLLBACK TO SAVEPOINT、RELEASE SAVEPOINT 和用于 ROLLBACK 的可选 WORK 关键字。 SAVEPOINT 语句设置一个名为 identifier 的事务保存点。如果当前事务具有同名的保存点,则删除旧的保存点并设置新的保存点。 ROLLBACK TO S...
LOCK INSTANCE FOR BACKUP 和 UNLOCK INSTANCE 语句 1. LOCK INSTANCE FOR BACKUP 2. 3. UNLOCK INSTANCE LOCK INSTANCE FOR BACKUP 获取实例级备份锁,该锁允许在联机备份期间使用 DML 语句,同时防止可能导致快照不一致的操作。 执行 LOCK INSTANCE FOR BACKUP 语句需要 BACKUP_ADMIN 权限。在执行从早期版本到 MySQL 8.0 的就地升级时,具有 RELOAD 权限的用户将自动获得 BACKUP_ADMIN 权限。 多个会话可以同时持有一个备份锁。...
表锁释放 当一个会话持有的表锁被释放时,它们将同时被释放。会话可以显式释放锁,也可以在某些条件下隐式释放锁。 ● 会话可以通过 UNLOCK TABLES 语句显式释放锁。 ● 如果会话在已经持有锁的情况下发出 LOCK TABLES 语句以获取锁,则在授予新锁之前,将隐式释放其现有锁。 ● 如果会话开始一个事务(例如,使用 START TRANSACTION),会隐式执行 UNLOCK TABLES 释放现有锁。 如果客户端会话连接终止,无论是正常终止还是异常终止...