+--------+---------------+------+-----+---------+----------------+
| ID | bigint(20) | NO | PRI | NULL | auto_increment |
| Name | varchar(255) | NO | | NULL | |
| Age | int(10) | YES | | NULL | |
| Gender | enum('F','M') | YES | | M | |
| Master | varchar(30) | YES | | NULL | |
| work | varchar(30) | NO | | NULL | |
+--------+---------------+------+-----+---------+----------------+
但是如果你表中原本work中没有字段的话,会有warning,所以在你做的时候可以先添加数据,然后在修改。
随着发展,我发现后面的work这个字段没用了,想删除study表中的这个属性
mysql> ALTER TABLE study DROP work;
mysql> DESC study;
+--------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+
| ID | bigint(20) | NO | PRI | NULL | auto_increment |
| Name | varchar(255) | NO | | NULL | |
| Age | int(10) | YES | | NULL | |
| Gender | enum('F','M') | YES | | M | |
| Master | varchar(30) | YES | | NULL | |
+--------+---------------+------+-----+---------+----------------+
当然如果我们表中有索引(目前),也可以使用DROP删除索引
mysql> SHOW INDEX FROM study;//查看表的索引
mysql> ALTER TABLE study ADD INDEX index_name(Name);//添加索引
也可以私用KEY(mysql> ALTER TABLE study ADD KEY index_name(Name);)
mysql> SHOW INDEX FROM study;
+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| study | 0 | ID | 1 | ID | A | 7 | NULL | NULL | | BTREE | |
+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
mysql> ALTER TABLE study DROP INDEX index_name;//删除索引
现在我觉得表明有点长,想换一个短的来方便下面的实验,当然在实际的过程中,我们应该见名知意
mysql> ALTER TABLE study RENAME TO st;//把表名从study改成st
mysql> SHOW TABLES;
+------------------+
| Tables_in_luowei |
+------------------+
| st |
+------------------+
想查看当前的数据库可以使用一下命令
mysql> SELECT DATABASE();
mysql> SHOW TABLES;//显示当前数据库中的表
mysql> SELECT * FROM st;
+----+--------+------+--------+--------+
| ID | Name | Age | Gender | Master |
+----+--------+------+--------+--------+
| 1 | luowei | NULL | M | NULL |
| 2 | Qi | NULL | F | NULL |
| 3 | Ro | NULL | M | NULL |
| 4 | RQ | NULL | F | NULL |
| 5 | pk | NULL | M | NULL |
| 6 | jk | NULL | M | NULL |
| 7 | OL | NULL | M | NULL |
+----+--------+------+--------+--------+
这里我只有一个表,现在我修改一下表中的数据,把Master的类型改为INT,并添加一些数据在里面
mysql> ALTER TABLE st CHANGE MODIFY Master INT;
mysql> UPDATE st SET Master=1 WHERE ID=1;
mysql> UPDATE st SET Master=2 WHERE ID=2;
mysql> UPDATE