MySQL修改表一次添加多个列(字段)和索引的方法
在MySQL中,我们可以使用ALTER TABLE
命令通过一次查询语句来一次性添加多个列(字段)和索引。这种方式非常便捷,能够提高我们的工作效率。
添加列(字段)
使用ALTER TABLE
来添加列(字段)可以使用ADD COLUMN
关键字,具体语法如下:
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [列的属性] [FIRST|AFTER 现有列名];
其中,表名
表示要添加字段的表名,列名
表示要添加的字段名,数据类型
表示该字段的数据类型,列的属性
表示该字段的属性,FIRST|AFTER 现有列名
表示该字段位于现有列之前或之后。
例如,我们可以向名为user
的表中同时添加两个字段sex
和age
,具体语句如下:
ALTER TABLE user ADD COLUMN sex CHAR(1) NOT NULL DEFAULT 'M' AFTER name,
ADD COLUMN age TINYINT(2) UNSIGNED DEFAULT 0 AFTER sex;
以上语句中,我们同时添加了sex
和age
两个字段。其中,sex
的类型为CHAR(1)
,必须填写,且不允许为空,并且默认值为'M'
;age
的类型为TINYINT(2)
,允许为空,并且默认值为0
。
添加索引
使用ALTER TABLE
来添加索引可以使用ADD INDEX
或ADD UNIQUE INDEX
关键字,根据需要选择性添加。具体语法如下:
ALTER TABLE 表名 ADD [UNIQUE] INDEX 索引名 (列1 [ASC|DESC], 列2 [ASC|DESC], ...);
其中,表名
表示要添加索引的表名,[UNIQUE]
表示是否添加唯一索引,索引名
表示要添加的索引名,列1 [ASC|DESC], 列2 [ASC|DESC], ...
表示要添加索引的列名和排序方式。
例如,我们可以向名为user
的表中同时添加多个索引,其中idx_name
为简单索引,idx_sex_age
为联合索引,具体语句如下:
ALTER TABLE user ADD INDEX idx_name(name),
ADD UNIQUE INDEX idx_sex_age(sex, age);
以上语句中,我们同时添加了idx_name
和idx_sex_age
两个索引。其中,idx_name
为简单索引,只添加了name
列;idx_sex_age
为联合索引,添加了sex
和age
两个列。
示例说明
假设我们有以下名为user
的表:
CREATE TABLE user (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
通过以下语句,我们同时向表中添加了sex
和age
两个字段,并添加了idx_name
和idx_sex_age
两个索引:
ALTER TABLE user ADD COLUMN sex CHAR(1) NOT NULL DEFAULT 'M' AFTER name,
ADD COLUMN age TINYINT(2) UNSIGNED DEFAULT 0 AFTER sex,
ADD INDEX idx_name(name),
ADD UNIQUE INDEX idx_sex_age(sex, age);
此时,表结构已被修改,通过DESCRIBE
命令可以查看到表结构变化:
DESCRIBE user;
输出结果为:
+-------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------+------+-----+---------+----------------+
| id | int(10) unsigned| NO | PRI | NULL | auto_increment |
| name | varchar(32) | NO | MUL | NULL | |
| sex | char(1) | NO | | M | |
| age | tinyint(2) | YES | | 0 | |
+-------+-----------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
可以看到,表中已经有了新增的两个字段sex
和age
,同时还添加了idx_name
和idx_sex_age
两个索引。
总之,在修改MySQL表结构的时候,我们可以使用ALTER TABLE
命令进行添加多个列(字段)和索引的操作,只要我们熟悉相关语法,就能快速、准确地修改表结构,提高工作效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL修改表一次添加多个列(字段)和索引的方法 - Python技术站