1. 新建一个表,列使用上节我们使用的白领私密社交表

    mysql> create table m1(

        -> id int unsigned auto_increment primary key

        -> )engine mysiam charset utf8;

    一张表创建完毕,有了N列,之后 还有可能要增加或删除或修改列

  2. 新增列:

    2.1:  alter table 表名 add 列名称 列类型 列参数  【加的列在表的最后】

    mysql> alter table m1 add birth date not null default '0000-00-00';

    mysql> desc m1;

    +-------+------------------+------+-----+------------+----------------+

    | Field | Type             | Null | Key | Default    | Extra          |

    +-------+------------------+------+-----+------------+----------------+

    | id    | int(10) unsigned | NO   | PRI | NULL       | auto_increment |

    | birth | date             | NO   |     | 0000-00-00 |                |

    +-------+------------------+------+-----+------------+----------------+

    2.2: alter table 表名 add 列名称 列类型 列参数 after 某列 【加新列加在某列后】

    mysql> alter table m1 add username char(20) not null default '' after id;

    mysql> desc m1;

    +----------+------------------+------+-----+------------+----------------+

    | Field    | Type             | Null | Key | Default    | Extra          |

    +----------+------------------+------+-----+------------+----------------+

    | id       | int(10) unsigned | NO   | PRI | NULL       | auto_increment |

    | username | char(20)         | NO   |     |            |                |

    | birth    | date             | NO   |     | 0000-00-00 |                |

    +----------+------------------+------+-----+------------+----------------+

    2.3: alter table 表名 add 列名称 列类型 列参数 first 【把新列加在最前面】

    mysql> alter table m1 add pid int not null default 0 first;

    mysql> desc m1;

    +----------+------------------+------+-----+------------+----------------+

    | Field    | Type             | Null | Key | Default    | Extra          |

    +----------+------------------+------+-----+------------+----------------+

    | pid      | int(11)          | NO   |     | 0          |                |

    | id       | int(10) unsigned | NO   | PRI | NULL       | auto_increment |

    | username | char(20)         | NO   |     |            |                |

    | birth    | date             | NO   |     | 0000-00-00 |                |

    +----------+------------------+------+-----+------------+----------------+

    如果想新建一个列,且在表的最前面,用first


  3. 删除列:

    用法:alter table 表名 drop 列名

    mysql> alter table m1 drop pid;

    mysql> desc m1;

    +----------+------------------+------+-----+------------+----------------+

    | Field    | Type             | Null | Key | Default    | Extra          |

    +----------+------------------+------+-----+------------+----------------+

    | id       | int(10) unsigned | NO   | PRI | NULL       | auto_increment |

    | username | char(20)         | NO   |     |            |                |

    | birth    | date             | NO   |     | 0000-00-00 |                |

    +----------+------------------+------+-----+------------+----------------+

  4. 修改列

    修改列类型:

    用法: alter table 表名 modirfy 列名 新类型 新参数 

    mysql> alter table m1 modify username varchar(30) not null default '';

    mysql> desc m1;

    +----------+------------------+------+-----+------------+----------------+

    | Field    | Type             | Null | Key | Default    | Extra          |

    +----------+------------------+------+-----+------------+----------------+

    | id       | int(10) unsigned | NO   | PRI | NULL       | auto_increment |

    | username | varchar(30)      | NO   |     |            |                |

    | birth    | date             | NO   |     | 0000-00-00 |                |

    +----------+------------------+------+-----+------------+----------------+

    修改列名及列类型:

    用法:alter table 表名 change 旧列名 新列名 新类型 新参数

    mysql> alter table m1 change id uid int unsigned;

    mysql> desc m1;

    +----------+------------------+------+-----+------------+-------+

    | Field    | Type             | Null | Key | Default    | Extra |

    +----------+------------------+------+-----+------------+-------+

    | uid      | int(10) unsigned | NO   | PRI | 0          |       |

    | username | varchar(30)      | NO   |     |            |       |

    | birth    | date             | NO   |     | 0000-00-00 |       |

    +----------+------------------+------+-----+------------+-------+