![MySQL数据库应用与管理](https://wfqqreader-1252317822.image.myqcloud.com/cover/953/33892953/b_33892953.jpg)
3.5 修改表结构
修改数据表是指修改表的结构,包括添加新的字段、修改原有字段的数据类型、删除原有的字段等。
3.5.1 使用Navicat对话方式修改表结构
以修改学生管理系统数据库(stuInfo)中的学生表(student)为例,使用Navicat对话方式修改表结构的步骤如下:
1)在“Navicat for MySQL”窗口中,依次展开“LDL”→“stuinfo”→“表”,在“student”上右击,选择“设计表”菜单命令(或者单击工具栏上的“设计表”按钮),则打开student的表结构设计窗口,如图3-10所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/46_01.jpg?sign=1738880687-sGlaSsedd4JbSwiR5mVIvCyOnytKLCQ5-0-055972e7f676c1ddab6d3e5673720d4d)
图3-10 student的表结构设计窗口
2)在该窗口中,可以添加字段、删除字段;或者修改某字段的名称、数据类型、数据长度、是否允许为空值等。
3)修改完成后,单击工具栏上的“保存”按钮即可。
3.5.2 使用SQL语句修改表结构
修改数据表使用ALTER TABLE语句,其语法格式如下:
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/47_01.jpg?sign=1738880687-uHMPECDl3fYIlaVAgPyUEs6ev9cP81KN-0-c23b87f50b090c1b0b3b7d2ffe7c4605)
说明:
● ADD用来添加一个新的字段,如果没有指定FIRST或AFTER,则在表的列尾添加一个字段,否则在表的列头或者指定字段的后面添加新的字段。
● MODIFY用来更改指定字段的数据类型等。
● CHANGE也用来更改指定字段的数据类型等,但可以同时把指定字段更改为一个新的名字。
● DROP用来删除指定字段。
● AUTO_INCREMENT=n用来设置AUTO_INCREMENT的初始值。
● RENAME AS用来给数据表重新命名。
【示例3-7】在学生表(student)的出生日期birthday字段的后面添加一个新的入学日期entryDate字段。运行结果如图3-11所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/47_02.jpg?sign=1738880687-zOTkbMDImMYGoW8eCVYpnzDNYvP7Q0o3-0-f1034498f3b42f682a191aa09ebfd97c)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/47_03.jpg?sign=1738880687-8g9hlCWfqH5OiFz75DVIwHY8bXUjAG1b-0-a1b87851690631ded3a1feb1da4feab1)
图3-11 修改学生表(student)的表结构——添加字段
【示例3-8】将学生表(student)的入学日期entryDate字段的数据类型更改为TIMESTAMP。运行结果如图3-12所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/48_01.jpg?sign=1738880687-F0OKXeqCrZmdoaakI1JSu6cNWW7DaUFe-0-f6787b00abbc2690efe0e19c2e491480)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/48_02.jpg?sign=1738880687-CXVOs1CbhHe1WuZGLRRLBELQap8JDDkf-0-7d4eb57ff393b69411d65d3ebdab0d1a)
图3-12 修改学生表(student)的表结构——更改字段类型
【示例3-9】将学生表(student)的入学日期entryDate字段的名字更改为rxDate,数据类型更改为DATETIME。运行结果如图3-13所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/48_03.jpg?sign=1738880687-Laq3fPnvfTdyDjJDOUFlouLYutWpXRSb-0-2053460676ce78bec3b77860ab3aedb1)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/48_04.jpg?sign=1738880687-GQAEFK9suzuscakwZ7iAxQ9CxDJ5mWpN-0-cab6a3c1414b99128394519c4b1a0809)
图3-13 修改学生表(student)的表结构——更改字段名
【示例3-10】删除学生表(student)的入学日期rxDate字段。运行结果如图3-14所示。
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/49_01.jpg?sign=1738880687-fgobmW2DQ1Ds5PANeQgtRh5XRiE0cOpW-0-2574c186c63fe1e4b15c8e9379304faf)
![](https://epubservercos.yuewen.com/063656/18123625308034706/epubprivate/OEBPS/Images/49_02.jpg?sign=1738880687-UjfAAIYTrgyz5dWM71HCrzpu3r7Gr1yb-0-ff122e4f4ec453f5a7cf8256696d8dde)
图3-14 修改学生表(student)的表结构——删除字段