数据定义语句
- 原子数据定义语句支持
- MySQL 8.0支持原子数据定义语言(DDL)语句。此功能称为原子DDL。原子DDL语句将数据字典更新,存储引擎操作和与DDL操作相关联的二进制日志写入操作组合到单个原子事务中。即使事务在操作期间停止,事务也可以提交,并在数据字典,存储引擎和二进制日志中保留适用的更改,或者回滚。通过在MySQL
- ALTER DATABASE语句
- ALTER{DATABASE|SCHEMA}[db_name] alter_specification ...alter_specification:[DEFAULT]CHARACTERSET[=] charset_name |[DEFAULT]COLLATE[=] collation_name |
- ALTER EVENT语句
- ALTER[DEFINER= user]EVENT event_name[ONSCHEDULE schedule][ONCOMPLETION[NOT]PRESERVE][RENAMETO new_event_name][ENABLE|DISABLE|DISABLEONSLAVE][COMMENT's
- ALTER FUNCTION语句
- ALTERFUNCTION func_name[characteristic ...]characteristic:COMMENT'string'|LANGUAGESQL|{CONTAINSSQL|NOSQL|READSSQLDATA|MODIFIESSQLDATA}|SQLSECURITY{DEF
- ALTER LOGFILE GROUP语句
- ALTERLOGFILEGROUP logfile_group ADDUNDOFILE'file_name'[INITIAL_SIZE[=] size][WAIT]ENGINE[=] engine_name该语句将UNDO名为“file_name'的文件添加到现有的日志文件组中logfile_gro
- ALTER PROCEDURE语句
- ALTERPROCEDURE proc_name[characteristic ...]characteristic:COMMENT'string'|LANGUAGESQL|{CONTAINSSQL|NOSQL|READSSQLDATA|MODIFIESSQLDATA}|SQLSECURITY{DE
- ALTER SERVER语句
- ALTERSERVER server_name OPTIONS(option[, option]...)更改的服务器信息server_name,调整CREATE SERVER语句中允许的任何选项。mysql.servers表中的相应字段会相应更新。此语句需要SUPER特权。例如,要更新USER选项:
- ALTER TABLE语句
- ALTERTABLE tbl_name[alter_specification[, alter_specification]...][partition_options]alter_specification: table_options |ADD[COLUMN] col_name column_d
- ALTER TABLE分区操作
- 与分区相关的子句ALTER TABLE可与分区表一起使用,以进行重新分区,添加,删除,丢弃,导入,合并和拆分分区,以及执行分区维护。只需在分区表上使用带有partition_options子句的子句,即可ALTER TABLE根据定义的分区方案对表进行重新分区partition_options。这一
- ALTER TABLE和生成的列
- ALTER TABLE允许生成的列操作是ADD,MODIFY,和CHANGE。可以添加生成的列。CREATETABLE t1(c1 INT);ALTERTABLE t1 ADDCOLUMN c2 INT GENERATEDALWAYSAS(c1 + 1)STORED;可以修改生成的列的数据类型和表达
- ALTER TABLE示例
- 首先t1创建一个表,如下所示:CREATETABLE t1(a INTEGER, b CHAR(10));要将表从重命名t1为t2:ALTERTABLE t1 RENAME t2;若要更改列a从INTEGER给TINYINT NOT NULL(名字一样),并更改列b从CHAR(10)到CHAR(20
- ALTER TABLESPACE语句
- ALTER[UNDO]TABLESPACE tablespace_name NDBonly:{ADD|DROP}DATAFILE'file_name'[INITIAL_SIZE[=] size][WAIT] InnoDB andNDB:[RENAMETO tablespace_name] InnoD
- ALTER VIEW语句
- ALTER[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}][DEFINER= user][SQLSECURITY{DEFINER|INVOKER}]VIEW view_name[(column_list)]AS select_statement[WITH[CASCADE
- CREATE DATABASE语句
- CREATE{DATABASE|SCHEMA}[IFNOTEXISTS] db_name[create_specification]...create_specification:[DEFAULT]CHARACTERSET[=] charset_name |[DEFAULT]COLLATE[=] c
- CREATE EVENT语句
- CREATE[DEFINER= user]EVENT[IFNOTEXISTS] event_name ONSCHEDULE schedule[ONCOMPLETION[NOT]PRESERVE][ENABLE|DISABLE|DISABLEONSLAVE][COMMENT'string']DO ev
- CREATE INDEX语句
- 3.1.15 CREATE INDEX语句CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEX index_name[index_type]ON tbl_name(key_part,...)[index_option][algorithm_option | lock_option
- CREATE LOGFILE GROUP语句
- CREATELOGFILEGROUP logfile_group ADDUNDOFILE'undo_file'[INITIAL_SIZE[=] initial_size][UNDO_BUFFER_SIZE[=] undo_buffer_size][REDO_BUFFER_SIZE[=] redo_b
- CREATE PROCEDURE和CREATE FUNCTION语句
- CREATE[DEFINER= user]PROCEDURE sp_name([proc_parameter[,...]])[characteristic ...] routine_bodyCREATE[DEFINER= user]FUNCTION sp_name([func_parameter[,
- CREATE SERVER语句
- CREATESERVER server_name FOREIGNDATAWRAPPER wrapper_name OPTIONS(option[, option]...)option:{HOSTcharacter-literal |DATABASEcharacter-literal |USERcha
- 创建空间参考系统语句
- CREATEORREPLACESPATIALREFERENCESYSTEM srid srs_attribute ...CREATESPATIALREFERENCESYSTEM[IFNOTEXISTS] srid srs_attribute ...srs_attribute:{NAME'srs_na
- CREATE TABLE语句
- CREATE[TEMPORARY]TABLE[IFNOTEXISTS] tbl_name(create_definition,...)[table_options][partition_options]CREATE[TEMPORARY]TABLE[IFNOTEXISTS] tbl_name[(cre
- CREATE TABLE语句创建文件
- CREATE TABLE语句保留CREATE TABLE创建表时,原始语句(包括所有规范和表选项)由MySQL存储。该信息将保留,以便在您使用ALTER TABLE语句更改存储引擎,排序规则或其他设置时,保留指定的原始表选项。即使两个引擎支持的行格式不同,这也使您可以在InnoDB和MyISAM表类
- CREATE TABLE ... LIKE语句
- 用于CREATE TABLE ... LIKE根据另一个表的定义创建一个空表,包括在原始表中定义的任何列属性和索引:CREATETABLE new_tbl LIKE orig_tbl;使用与原始表相同的表存储格式版本创建副本。该SELECT权限需要对原始表。LIKE仅适用于基表,不适用于视图。重要您
- CREATE TABLE ... SELECT语句
- 您可以通过在SELECT语句末尾添加一条语句来从另一个表创建一个表CREATE TABLE:CREATETABLE new_tbl[AS]SELECT*FROM orig_tbl;MySQL为中的所有元素创建新列SELECT。例如:mysql>CREATETABLE test(a INT NO
- 外键约束
- MySQL支持外键(允许跨表交叉引用相关数据)和外键约束,这有助于使相关数据保持一致。外键关系涉及一个包含初始列值的父表,以及一个具有引用父列值的列值的子表。在子表上定义了外键约束。在CREATE TABLEor ALTER TABLE语句中定义外键约束的基本语法包括以下内容:[CONSTRAINT
- 检查约束
- 在MySQL 8.0.16之前,CREATE TABLE仅允许以下有限的表CHECK约束语法版本被解析和忽略:CHECK(expr)从MySQL 8.0.16开始,CREATE TABLE允许CHECK对所有存储引擎使用表和列约束的核心功能。对于表约束和列约束,都CREATE TABLE允许使用以下
- 沉默柱规格变更
- 在某些情况下,MySQL会默默地从CREATE TABLEor ALTER TABLE语句中给出的列规范中更改列规范。这些可能是对数据类型,与数据类型关联的属性或索引规范的更改。所有更改均受内部65,535字节的行大小限制,这可能会导致某些尝试更改数据类型的尝试失败。请参见“数据表的限制”。列,其一
- 创建表和生成的列
- CREATE TABLE支持生成列的规范。根据列定义中包含的表达式计算生成的列的值。NDB存储引擎还支持生成的列。以下简单示例显示了一个表,该表存储sidea和sideb列中直角三角形的边的长度,并计算下斜边的长度sidec(其他边的平方和的平方根):CREATETABLE triangle(sid
- 二级索引和生成的列
- InnoDB支持虚拟生成的列上的二级索引。不支持其他索引类型。在虚拟列上定义的二级索引有时称为“虚拟索引”。可以在一个或多个虚拟列上或在虚拟列和常规列或存储的生成列的组合上创建二级索引。包含虚拟列的二级索引可以定义为UNIQUE。在虚拟生成的列上创建二级索引时,生成的列值将在索引记录中实现。如果索引
- 设置NDB_TABLE选项
- 在MySQL NDB Cluster中,CREATE TABLEor ALTER TABLE语句中的表注释还可用于指定一个NDB_TABLE选项,该选项由一个或多个名称-值对组成,并在字符串后用逗号分隔(如果需要)NDB_TABLE=。名称和值语法的完整语法如下所示:COMMENT="NDB_TAB
- CREATE TABLESPACE语句
- CREATE[UNDO]TABLESPACE tablespace_name InnoDB andNDB:[ADDDATAFILE'file_name'] InnoDB only:[FILE_BLOCK_SIZE=value][ENCRYPTION[=]{'Y'|'N'}]NDBonly:USELO
- CREATE TRIGGER语句
- CREATE[DEFINER= user]TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOREACHROW[trigger_order] trigger_bodytrigger_time:{BEFORE|AFTER}trig
- CREATE VIEW语句
- CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}][DEFINER= user][SQLSECURITY{DEFINER|INVOKER}]VIEW view_name[(column_list)]AS select_statement[
- DROP DATABASE语句
- DROP{DATABASE|SCHEMA}[IFEXISTS] db_nameDROP DATABASE删除数据库中的所有表并删除数据库。此声明要非常小心!要使用DROP DATABASE,您需要DROP数据库特权。DROP SCHEMA是的同义词DROP DATABASE。重要删除数据库时,不会自
- DROP EVENT语句
- DROPEVENT[IFEXISTS] event_name该语句删除名为的事件event_name。该事件立即停止活动,并已从服务器中完全删除。如果事件不存在,则会发生event_name错误ERROR 1517(HY000):未知事件''。您可以覆盖它,并使该语句针对不存在的事件生成警告,而不是
- DROP FUNCTION语句
- 该DROP FUNCTION语句用于删除存储的函数和用户定义的函数(UDF):有关删除存储函数的信息,请参见“ DROP PROCEDURE和DROP FUNCTION语句”。有关删除用户定义函数的信息,请参见“ DROP FUNCTION语句”。DROPFUNCTION function_name
- DROP INDEX语句
- DROPINDEX index_name ON tbl_name[algorithm_option | lock_option]...algorithm_option:ALGORITHM[=]{DEFAULT|INPLACE|COPY}lock_option:LOCK[=]{DEFAULT|NONE
- DROP LOGFILE GROUP语句
- DROPLOGFILEGROUP logfile_group ENGINE[=] engine_name该语句删除名为的日志文件组logfile_group。日志文件组必须已经存在,否则将导致错误。(有关创建日志文件组的信息,请参见“ CREATE LOGFILE GROUP语句”。)重要在删除日志
- DROP PROCEDURE和DROP FUNCTION语句
- DROP{PROCEDURE|FUNCTION}[IFEXISTS] sp_name该语句用于删除存储过程或函数。即,将指定的例程从服务器中删除。您必须具有ALTER ROUTINE例程的特权。(如果automatic_sp_privileges启用了系统变量,则该特权EXECUTE将在创建例程时自
- DROP SERVER语句
- DROPSERVER[ IFEXISTS] server_name删除名为的服务器的服务器定义server_name。mysql.servers表中的相应行将被删除。此语句需要SUPER特权。为表删除服务器不会影响FEDERATED在创建表时使用此连接信息的任何表。请参见“ CREATE SERVE
- DROP SPATIAL语句
- DROPSPATIALREFERENCESYSTEM[IFEXISTS] sridsrid: 32-bit unsigned integer该语句从数据字典中删除空间参考系统(SRS)定义。它需要SUPER特权。例:DROPSPATIALREFERENCESYSTEM 4120;如果不存在带有SRI
- DROP TABLE语句
- DROP[TEMPORARY]TABLE[IFEXISTS] tbl_name[, tbl_name]...[RESTRICT|CASCADE]DROP TABLE删除一个或多个表。您必须具有DROP每个表的特权。请谨慎使用此声明!对于每个表,它将删除表定义和所有表数据。如果表已分区,则该语句将删除
- DROP TABLESPACE语句
- DROP[UNDO]TABLESPACE tablespace_name[ENGINE[=] engine_name]该语句删除先前使用创建的表空间CREATE TABLESPACE。NDB和InnoDB存储引擎支持它。UNDO必须指定在MySQL 8.0.14中引入的关键字以删除撤消表空间。只能C
- DROP TRIGGER语句
- DROPTRIGGER[IFEXISTS][schema_name.]trigger_name该语句删除触发器。模式(数据库)名称是可选的。如果省略该模式,则从默认模式删除该触发器。DROP TRIGGER需要TRIGGER与触发器关联的表的特权。使用IF EXISTS以防止发生错误,从一个不存在的
- DROP VIEW语句
- DROPVIEW[IFEXISTS] view_name[, view_name]...[RESTRICT|CASCADE]DROP VIEW删除一个或多个视图。您必须具有DROP每个视图的特权。如果在参数列表中命名的视图不存在,则该语句将失败,并显示一条错误消息,按名称指示无法删除哪些不存在的视图
- RENAME TABLE语句
- RENAMETABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2]...RENAME TABLE重命名一个或多个表。您必须具有ALTER与DROP原始表的权限,以及CREATE与INSERT新表的权限。例如,重命名一个指定的表old_
- TRUNCATE TABLE语句
- TRUNCATE[TABLE] tbl_nameTRUNCATE TABLE完全清空一张桌子。它需要DROP特权。从逻辑上讲,TRUNCATE TABLE它类似于DELETE删除所有行的语句或DROP TABLE and CREATE TABLE语句的序列。为了获得高性能,请TRUNCATE TAB