修改表(ALTER TABLE) [MySQL][数据库]

修改表(ALTER TABLE)

修改表,用到的关键字为ALTER

  • 修改表也就是ALTER TABLE

那么修改表都可以修改什么?(我们下面通过举例说明)

一. 添加一个字段(ADD)

  • 我们添加一个字段的时候可以使用FIRST或者AFTER等关键字控制字段添加的位置

我们通过举例说明如何添加一个字段:

ALTER TABLE myemp1
ADD salary DOUBLE(10,2);
  • 这里添加这个字段时没有指定添加到表中的位置,所以默认添加的位置是表中的最后
ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST;
  • 这里指明要将phone_number字段添加到表中第一个位置
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name;
  • 这里指明了要将email字段添加到emp_name字段的后面

二. 修改一个字段(MODIFY)

  • 可以修改字段的数据类型,长度,以及默认值
  • 注意: 在实际编程中几乎不会修改字段的数据类型,我们创建表的时候一般不可能粗心到将字段的数据类型都搞错

这里我们通过举例来说明如何修改一个字段

ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);
  • 这里我们说明一下: 原本在myemp1表中emp_name字段的数据类型也是VARCHAR,长度为20,这个时候我们就是将长度修改为了25,但是数据类型没有变
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT 'aaa';
  • 这里就是将我们的emp_name字段的长度又修改为35,并且添加了默认值,我们原本的emp_name字段是没有默认值的

三. 重命名一个字段(CHANGE)

  • 这里的重命名字段并不是严格意义上的重命名操作,我们其实通过翻译就可以发现, change的含义是改变的意思,其实这里是改变一个字段,那么上面的MODIFY不是也是修改?这两个难道是重复了?
    • 其实没有重复,这两个操作的区别其实也就是重命名, 我们使用CHANGE可以实现重命名的操作,而使用MODIFY则实现不了, 我们研究之后更是可以发现: 我们的CHANGE操作的内部其实包含了MODIFY的操作

我们通过举例说明如何重命名一个字段

ALTER TABLE myemp1
#这里的salary就是旧字段名 monthly_salary是新字段名
CHANGE salary monthly_salary DOUBLE(10,2);
  • 这里就是将我们的myemp1表中的salary字段名改成monthly_salary,并且还将salary字段的长度也修改了,原本的salary声明为: DOUBLE(8,2),这个时候我们将其通过重命名的操作修改为:DOUBLE(10,2);
    • 这里重命名的同时修改了字段的数据类型和长度,也就是说明CHANGE操作的内部有MODIFY操作

四. 删除一个字段(DROP COLUMN)

  • 注意: 我们在前面对字段操作的时候都没有使用到COLUMN关键字,但是在删除字段的时候用到了COLUMN关键字

这里通过一个例子来理解如何删除一个字段

ALTER TABLE myemp1
#COLUMN就是列的意思,列也就是字段
DROP COLUMN my_email;
  • 这里就是将myemp1表中的my_email字段删除掉
  • 注意: COLUMN关键字可以省略

猜你喜欢

转载自blog.csdn.net/m0_57001006/article/details/123539769