您当前的位置: 站长圈 > 技术文章 > 数据库技术 > MySQL数据库——修改数据表

MySQL数据库——修改数据表

来源:站长圈 作者:adminzzq 点击: 0
1、修改表名
MySQL是通过ALTER TABLE…RENAME [TO]语句来实现表名的修改的,具体语法格式如下:
ALTER TABLE <旧表名>RENAME [TO]<新表名>
例:将数据表tb_dept1改名为tb_dept3:
首先创建表名为tb_dept1的表,创建表的代码如下:
\
查看数据库有新增表tb_dept1。
\
使用ALTER TABLE…RENAME [TO]语句将表tb_dept1改名为tb_dept3,其SQL语句如下:
\
执行后得:
\
表名已经改为tb_deptment1了。
提示:使用DESC命令查看修改前后两个表的结构,发现修改表名并不修改表的结构。因此修改表名后的表与修改表名前的表的结构是相同的。
2、修改字段的数据类型
MySQL中修改字段数据类型的语法格式如下:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
      其中“表名”指要修改数据类型的字段所在表的名称,“字段名”指要修改的字段,“数据类型”指修改后字段的新数据类型。
      例:将数据表tb_dept3中name字段的数据类型由VARCHAR(22)的修改成VARCHAR(30)
\
执行后,查看表tb_dept3结构,
\
可以看到name字段的数据类型已经由VARCHAR(22)的修改成VARCHAR(30)了。
3、修改字段名
      MySQL中修改表字段名的语法格式如下:
      ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>
      其中“旧字段名”指修改前的字段名,“新字段名”指修改后的字段名,“新数据类型”指修改后的数据类型。如果不需要修改字段的数据类型,可以将新数据类型设置成与原数据类型相同,但数据类型不能为空。
      例:将数据表tb_dept3中的location字段名称改为loc,数据类型保持不变。输入SQL语句如下:
\
执行后,查看表tb_dept3,
\
例:将数据表tb_dept3中的loc字段名称改为location,同时将数据类型保持变为varchar(60)。输入SQL语句如下:
\
执行后,查看表查看表tb_dept3,
\
      CHANGE也可以只修改数据类型,实现和MODIFY同样的效果,方法是将SQL语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。
      提示:由于不同类型的数据在机器中存储的方法及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录。因此,当数据库表中已经有数据时,不要轻易修改数据类型。
4、添加字段
有时可能需要在已经存在的表中添加新的字段。一个完整字段包括字段名、数据类型、完整性约束。添加字段的语法格式如下:
      ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件][FIRST|AFTER 已存在字段名]
      新字段名需要添加的字段的名称:“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段,“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。
      “FIRST”或“AFTER已存在字段名”用于指定新增字段在表中的位置,如果SQL语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后列。
      1)添加无完整性约束条件的字段
      例:在数据表tb_dept3中添加一个没有完整性约束的int类型的字段managerId(部门经理编号),输入SQL语句如下:
\
执行后,查看表tb_dept3,
\
      2)添加有完整性约束条件的字段
      例:在数据表tb_dept3中添加一个不能为空的varchar(12)类型的字段column1。输入SQL语句如下:
\
执行后,查看表tb_dept3,
\
      3)在表的第一列添加一个字段
      例:在数据表tb_dept中添加一个int类型的字段column2。输入SQL语句如下:
\
执行后,查看表tb_dept3,
\
      4)在表的指定列之后添加一个字段
      例:在数据表tb_dept3中name列后添加一个int类型的字段column3。输入SQL语句如下:
\
执行后,查看表tb_dept3,
\
5、删除字段
删除字段是将数据表中的某个字段从表中删除,其语法格式如下:
ALTER TABLE <表名> DROP <字段名>
其中“字段名”指需要从表中删除的字段的名称。
例:删除数据表tb_dept3表中的column2字段
先查看tb_dept3表结构:
\
输入删除字段SQL语句如下:
\
再查看表tb_dept3,已经不存在名称为column2的字段,删除字段成功。
\
6、修改字段的排列位置
      对于已经存在的数据表,其结构还是可以通过ALTER TABLE 来改变表中字段的相对位置。其语法格式如下:
      ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;
      其中“字段1”指要修改位置的字段,“数据类型”指“字段1”的数据类型,“FIRST”参数指将“字段1”修改为表的第一个字段,“AFTER <字段2>”指将“字段1”插入到“字段2”后面。
      1)修改字段为表的第一个字段
      例:将数据表tb_dept3中的column1字段修改为表的第一个字段
\
执行后,查看表tb_dept3,
\
      2)修改字段到表的指定列之后
      例:将数据表tb_dept3中的column1字段插入到location字段后面
\
执行后,查看表tb_dept3,
\
可以看到,tb_dept3表中的字段column1已经被移至location字段后面了。
7、删除表的外键约束
对于数据表中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表间的关联关系,MySQL中删除外键的语法格式如下:
      ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
      其中“外键约束名”指在定义表外键时CONSTRAINT关键字后面的参数。
      例:删除数据表tb_emp中的外键约束
      首先创建表tb_emp,创建外deptId关联tb_dept3表的主键id,输入SQL语句如下:
\
执行后,查看数据库已经成功创建了tb_emp数据表
\
在MySQL数据库的控制台,使用SHOW CREATE TABLE可以查看表tb_emp的结构,结果如下:
\
可以看到已经成功添加了表的外键。下面删除外键约束,输入SQL语句如下:
\
执行后,再用SHOW CREATE TABLE可以查看表tb_emp的结构,结果如下:
\
可以看到tb_emp中已经不存在FOREIGN KEY,原有的名称为fk_emp_dept的外键约束删除成功。