Assume we have a user table, and the user structure is as follows:
mysql> desc user; +----------+---------------+------+-----+--------- +-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+--------- +-------+ | username | varchar(10) | YES | | NULL | | password | varchar(32) | YES | | NULL | | createtime | int(10) | YES | | NULL | | createip | int(10) | YES | | NULL | +----------+---------------+------+-----+--------- +-------+ 4 rows in set (0.01 sec)
Modify table field type modify
Category
Detailed explanation
Basic syntax
alter table table name modify field name varchar(20);
##Example
alter table user modify username varchar(20);
Example description
Change the type of username in the user table to varchar(20)
Let’s execute it and see the result:
mysql> alter table user modify username varchar(20);
Query OK, 0 rows affected (0.48 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> desc user;
+----------+---------------+------+-----+--------- +-------+
| Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+--------- +-------+ | username | varchar(20) | YES | | NULL | | password | varchar(32) | YES | | NULL | | createtime | int(10) | YES | | NULL | | createip | int(10) | YES | | NULL | +----------+---------------+------+-----+--------- +-------+ 4 rows in set (0.01 sec) Add table fields
Category
Detailed explanation
##Basic syntax
alter table table name add column field name type;
Example
alter table user add column age int(3);
Example description
Add a field as age, type is integer, length is 3
mysql> alter table emp add column age int(3); Query OK, 0 rows affected (0.40 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user; +----------+---------------+------+-----+--------- +-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+--------- +-------+ | username | varchar(20) | YES | | NULL | | password | varchar(32) | YES | | NULL | | createtime | int(10) | YES | | NULL | | createip | int(10) | YES | | NULL | | age | int(3) | YES | | NULL | +----------+---------------+------+-----+--------- +-------+ 5 rows in set (0.00 sec)
Control the order of fields when adding fields We just learned to add fields. If you carefully experiment and find that every time it is added at the end, how to add it at the first one or after the pointing field?
Category
Detailed explanation
Basic syntax
ALTER TABLE table name ADD field name field type AFTER field name;
Example
ALTER TABLE user ADD email VARCHAR(60) AFTER createip;
Example description
In the user table, add a field as email after createip, the type is varchar, the length is 60
ALTER TABLE user ADD email VARCHAR(60) AFTER createip; Query OK, 0 rows affected (0.40 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user; +----------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+---------+-------+ | username | varchar(20) | YES | | NULL | | | password | varchar(32) | YES | | NULL | | | createtime | int(10) | YES | | NULL | | | createip | int(10) | YES | | NULL | | | email | varchar(60) | YES | | NULL | | | age | int(3) | YES | | NULL | | +----------+---------------+------+-----+---------+-------+ 6 rows in set (0.00 sec)
删除表字段
Category
Detailed explanation
##Basic syntax
ALTER TABLE table name ADD Field name Field type;
Example
ALTER TABLE user ADD id INT(10) FIRST;
Example description
In the user table, add a field as id at the beginning, type is int, length is 10
类别
详细解示
基本语法
alter table 表名 drop column 字段名;
示例
alter table user drop column age;
示例说明
在user表中删除字段age
mysql> alter table user drop column age; Query OK, 0 rows affected (0.27 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user; +----------+---------------+------+-----+--------- +-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+--------- +-------+ | username | varchar(20) | YES | | NULL | | password | varchar(32) | YES | | NULL | | createtime | int(10) | YES | | NULL | | createip | int(10) | YES | | NULL | | email | varchar(60) | YES | | NULL | +----------+---------------+------+-----+--------- +-------+ 5 rows in set (0.00 sec)
Table field renameDetailed example:
mysql> alter table user change email em varchar(60); Query OK, 0 rows affected (0.38 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user; +----------+---------------+------+-----+--------- +-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+--------- +-------+ | username | varchar(20) | YES | | NULL | | password | varchar(32) | YES | | NULL | | createtime | int(10) | YES | | NULL | | createip | int(10) | YES | | NULL | | em | varchar(60) | YES | | NULL | +----------+---------------+------+-----+--------- +-------+ 5 rows in set (0.00 sec)
mysql> alter table user modify em varchar(60) first;
Query OK, 0 rows affected (0.41 sec) Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
+----------+---------------+------+-----+--------- +-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+--------- +-------+ | em | varchar(60) | YES | | NULL | | username | varchar(20) | YES | | NULL | | password | varchar(32) | YES | | NULL | | createtime | int(10) | YES | | NULL | | createip | int(10) | YES | | NULL | +----------+---------------+------+-----+--------- +-------+ 5 rows in set (0.00 sec)
Modify table name
Category
Detailed explanation
Basic syntax
alter table table name change field original name field new name field type;
Example
alter table user change email em varchar(60);
Example description
In the user table, name the email field in the field em
Modify the order of table fieldsIn the previous field addition and modification statements (add/change/modify), you can add one at the end Optional first|after.We have already learned how to adjust the order when adding table fields. Let's now take a look at how another change or modify can adjust the order.Let’s do a small experiment with first.Use modify to adjust the order
Category
Detailed explanation
Basic syntax
alter table old table name rename new table name;
Example
alter table user rename new_user;
Example description
Change the user table name to new_user
##mysql> alter table user rename new_user;
Query OK, 0 rows affected (0.35 sec)
mysql> desc new_user;
+----------+---------------+------+-----+--------- +-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+--------- +-------+ | em | varchar(60) | YES | | NULL | | username | varchar(20) | YES | | NULL | | password | varchar(32) | YES | | NULL | | createtime | int(10) | YES | | NULL | | createip | int(10) | YES | | NULL | +----------+---------------+------+-----+--------- +-------+ 5 rows in set (0.00 sec)
Course Recommendations
Courseware download
The courseware is not available for download at the moment. The staff is currently organizing it. Please pay more attention to this course in the future~
Students who have watched this course are also learning