展会信息港展会大全

mysql修改表结构 表属性改变 重命名表名 删除列 列属性改变 添加列 初始列属性
来源:互联网   发布日期:2016-01-27 15:47:08   浏览:3311次  

导读:修改表结构:alter [ignore] table table specification table structure change 包括表属性改变,列属性改变,完整性约束改变。 1 表属性改变 1 1重命名表名mysql alter table stude ...

修改表结构:

alter [ignore] table <table specification> <table structure change>

包括表属性改变,列属性改变,完整性约束改变。

1.表属性改变

1.1重命名表名

mysql> alter table student rename to s;

Query OK, 0 rows affected (0.03 sec)

也可以直接使用rename命令改名:

mysql> rename table s to student;

Query OK, 0 rows affected (0.13 sec)

1.2表排序改变

mysql> alter table student order by stu_id desc;

mysql> select * from student;

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

| stu_id | stu_name | stu_tel | stu_score |

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

|4 | d|154 |63 |

|3 | c|153 |62 |

|2 | b|152 |61 |

|1 | a|151 |60 |

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

2列属性改变

2.1 添加列

mysql> alter table student

-> add sex char(1) after stu_name;

Query OK, 4 rows affected (0.34 sec)

Records: 4Duplicates: 0Warnings: 0

mysql> select * from student;

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

| stu_id | stu_name | sex| stu_tel | stu_score |

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

|1 | a| NULL |151 |60 |

|2 | b| NULL |152 |61 |

|3 | c| NULL |153 |62 |

|4 | d| NULL |154 |63 |

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

4 rows in set (0.02 sec)

新添加的列默认放在最后一列,且默认填充空值。这里使用after指定了新增列sex放在stu_name后面.如果新增列设置不能为空,那么 mysql将根据列的数据类型填入实际的值:对于数值填入0,对于字符串填入空字符串,对于日期填入0000-00-00,对于时间填入 00:00:00.

2.2删除列

mysql> alter table student

-> drop sex;

Query OK, 4 rows affected (0.33 sec)

Records: 4Duplicates: 0Warnings: 0

2.3修改列属性

初始列属性:

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

| column_name | data_type |

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

| stu_id| int|

| stu_name| varchar|

| stu_tel| int|

| stu_score| int|

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

将stu_tel列修改为tel char型,并放在stu_score后面。

mysql> alter table student

-> change stu_tel tel char(3) after stu_score;;

Query OK, 4 rows affected (0.23 sec)

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

| column_name | data_type |

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

| stu_id| int|

| stu_name| varchar|

| stu_score| int|

| tel| char|

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

如果仅仅是更改列其他属性而不改列名时,可以使用modify参数。

将tel列改回int型

mysql> alter table student

-> modify tel int(3);

Query OK, 4 rows affected (0.25 sec)

Records: 4Duplicates: 0Warnings: 0

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

| column_name | data_type |

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

| stu_id| int|

| stu_name| varchar|

| stu_score| int|

| tel| int|

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

3.完整性约束改变

<integrity constraint change>:=

add primary key<index name>

add unique <index name>

add foreign key <index name>(column list) referencing <specification>

add check <condition>

drop primary key

drop foreign key <index name>

drop constraint <constraint name>

在add后面可以添加[constraint ] 为完整性约束定义名字。

删除主键:

mysql> alter table student drop primary key;

添加主键:

mysql> alter table student add primary key(stu_id);

赞助本站

人工智能实验室

相关热词: 修改表 mysql

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港