当前位置:
首页 >
MySQL学习笔记(十二)—— MySQL的命令集(2)
发布时间:2025/1/21
66
豆豆
生活随笔
收集整理的这篇文章主要介绍了
MySQL学习笔记(十二)—— MySQL的命令集(2)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
5) 更改表 ALTER [IGNORE] TABLE table action_list 更改表结构。可对表进行许多更改操作,如添加/删除列、删除索引等。其执行原理如下:MySQL创建一个表的副本并对其进行修改,同时将所有更改操作入队,当修改完成时,原表即删除并用新表替换,此时这些更改操作执行完毕。如果这些入队的操作引入了重复的关键字,ALTER语句会滚回并取消。如果设置了IGNORE关键字,ALTER语句会继续执行。 action_list可能的选项有: ⑴ADD [COLUMN] create_clause [FIRST | AFTER column] ADD [COLUMN] (create_clause, create_clause, …) 描述:在表中添加新的一列。这里的create_clause定义了列在表中创建的SQL(参看CREATE TABLE)。如果使用了FIRST关键字,该列创建为表的第一列;如果使用了AFTER关键字,则表示新创建的列在某列之后;如果这两个关键字都没有,新创建的列默认为表的最后一列。也可以同时添加多个列。 ⑵ADD [CONSTRAINT symbol] FOREIGN KEY name (column, …) [reference] 描述:仅对InnoDB表(可支持外关键字)适用,它会在表中添加一个外关键字引用。 ⑶ADD FULLTEXT [name] (column, …) 描述:添加一个使用指定列的完全文本索引。 ⑷ADD INDEX [name] (column, …) 描述:添加一个使用指定列的索引,如果没有指定名称,MySQL会自动选择一个。 ⑸ADD PRIMARY KEY (column, …) 描述:添加一个由指定列组成的主关键字,如果表中已有主关键字,执行该命令会报错。 ⑹ADD UNIQUE [name] (column, …) 描述:添加一个使用指定列的唯一性索引。 ⑺ALTER [COLUMN] column SET DEFAULT value 描述:为指定列赋一个新的默认值,这里的COLUMN关键字是可选的,对命令也没有影响。 ⑻ALTER [COLUMN] column DROP DEFAULT 描述:对指定列删除当前默认值,这里的COLUMN关键字是可选的,对命令也没有影响。 ⑼CONVERT TO CHARACTER SET charset [COLLATE collation] [DEFAULT] CHARACTER SET charset [COLLATE collation] 描述:根据指定的校准(collation)将列转换为指定字符集。 ⑽CHANGE [COLUMN] column create_clause MODIFY [COLUMN] create_clause [FIRST | AFTER column] 描述:更改列的定义。将指定列由一种数据类型转换为其它数据类型(尽可能不影响数据)。关于create_clause参看CREATE TABLE命令。CHANGE可表示将某列修改为新的一列,而MODIFY只能在同一列上修改(列的名字不能改变)。这里的COLUMN关键字是可选的,对命令也没有影响。MySQL会尝试最合理的转换方案,如果确实无法转换,则会给出错误提示,最好在转换前对数据进行备份,这样可以最大程度地保障数据的安全。 ⑾DISABLE KEYS 描述:停止对MyISAM表更新索引。该命令仅对非唯一性索引适用。当需要向数据执行大量插入操作时,可能希望屏蔽关键字,这样可以使得MySQL的处理效率更高。 ⑿DISCARD TABLESPACE 描述:对于InnoDB表,如果使用了表空间,那么该命令可用来删除底层的.idb文件。在运行此命令之前最好先备份原.idb文件。 ⒀DROP [COLUMN] column 描述:在表中删除一列。该命令可使一列及该列中的数据一并永久删除,如果没有备份,这些数据是无法再恢复的。此外,索引中所有对该列的引用也会被删除掉。这里的COLUMN关键字是可选的,对命令也没有影响。 ⒁DROP PRIMARY KEY 描述:在表中删除主关键字。 ⒂DROP INDEX KEY 描述:在表中删除一个索引。索引的删除不会影响到表中的数据,因此,删除的索引可以通过ALTER TABLE … ADD INDEX命令再重新创建。 ⒃ENABLE KEYS 描述:DISABLE KEYS的反操作。 ⒄IMPORT TABLESPACE 描述:由备份或其他数据源导入存储为.idb文件的数据。 ⒅ORDER BY column [ASC | DESC] 描述:按指定列对表进行排序。如果新行加入,排序可能就会发生变化。该命令可以针对常见排序请求实现表的优化。可以指定多个列。 ⒆RENAME [AS] new_table RENAME [TO] new_table 描述:修改表的名称。该命令不会影响表的数据及索引。如果单独执行该命令,MySQL不会创建临时表,而是直接更改表文件在操作系统中的名称。 ⒇table_options 描述:对表选项(如表类型等)的重定义。 (注意:多个ALTER命令可以使用逗号组合在一起。对于ALTER TABLE操作,必须有相应的表操作权限。)
转载于:https://blog.51cto.com/riser/61909
总结
以上是生活随笔为你收集整理的MySQL学习笔记(十二)—— MySQL的命令集(2)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 配置FTP服务-要点总结
- 下一篇: 将SQL Server中所有表的列信息显