19-修改字段排序
5.3.6 修改字段排序
对于一个数据表来说,在创建的时候,字段在表中的排列顺序就已经确定了。但表的结构并不是完全不可以改变的,可以通过ALTER TABLE来改变表中字段的相对位置。其语法格式如下。
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST AFTER <字段2>;
其中“,字段1”指要修改位置的字段;“数据类型”指“字段1”的数据类型;“FIRST”为可选参数,指将“字段1”修改为表的第一个字段;“AFTER<字段2>”指将“字段1”插入到“字段2”后面。
1.修改字段为表的第一个字段
【范例5-22】
将数据表tb_dept1中的column1字段修改为表的第一个字段,SQL语句如下。
ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;
使用DESC查看表tb_dept1,发现字段column1已经被移至表的第一列,结果如下。
mysql> DESC tb_dept1; +-----------+-------------+------+-----+---------+-------+ |Field |Type |Null|Key|Default|Extra| +-----------+-------------+------+-----+---------+-------+ |column1 |varchar(12)|YES | |NULL | | |id |int(11) |NO |PRI|NULL | | |name |varchar(30)|YES | |NULL | | |column3 |int(11) |YES | |NULL | | |location |varchar(60)|YES | |NULL | | |managerId|int(10) |YES | |NULL | | +-----------+-------------+------+-----+---------+-------+ 6 rows in set (0.02 sec)
2.修改字段到列表的指定列之后
【范例5-23】
将数据表tb_dept1中的column1字段插入到location字段后面,SQL语句如下。
ALTER TABLE tb_dept1 MODIFY COLUMN VARCHAR(12) AFTER location;
使用DESC查看表tb_dept1,结果如下。
mysql> DESC tb_dept1; +-----------+-------------+------+-----+---------+-------+ |Field |Type |Null|Key|Default|Extra| +-----------+-------------+------+-----+---------+-------+ |id |int(11) |NO |PRI|NULL | | |name |varchar(30)|YES | |NULL | | |column3 |int(11) |YES | |NULL | | |location |varchar(60)|YES | |NULL | | |column1 |varchar(12)|YES | |NULL | | |managerId|int(10) |YES | |NULL | | +-----------+-------------+------+-----+---------+-------+ 6 rows in set (0.02 sec)
可以看到,tb_dept1表中的字段column1已经被移至location字段之后。