当前位置:   article > 正文

MySql新增、修改、删除表字段、字段数据类型、长度等(附带各种实际案例语句)_分别写出修改表数据库表中添加字段、修改字段类型、删除字段的语法格式

分别写出修改表数据库表中添加字段、修改字段类型、删除字段的语法格式

1、新增字段

注:add常用于操作已存在表新增某字段。

语法:

alter table 表名 add 字段名 字段数据类型(长度) [character set 字段编码 collate 字段排序编码] [NOT NULL] [DEFAULT 0] [COMMENT ‘备注’] [(FIRST)|(AFTER 表中已存在字段)]

其中,没有被[]括号包括的是必须有的,被[]括号包括的可以根据字段限制来自定义设置。

  1. CHARACTER SET 字段编码 COLLATE 字段排序编码:用于设置特殊字段的编码值。例如:表字段中如果要存储包含表情的字符串,但是数据库的编码是utf-8,那么表情会乱码。这时候就需要将字段的编码修改成utf8mb4。(alter table 表名 add 字段名 字段数据类型(长度) character set utf8mb4 collate utf8mb4_general_ci)
  2. NOT NULL:代表该字段不允许为空。
  3. DEFAULT 值:设置默认值。可为数字也可为字符串。
  4. COMMENT ‘备注’:该字段的备注信息。
  5. (FIRST)|(AFTER 表中字段):在第一列创建该字段或者在表中字段之后创建该字段。

2、修改字段名

注:change常用于修改字段名称,但与modify一样。同样可以修改字段类型和长度。且修改后的字段,alter table语句中没有设置默认值等限制,原字段的限制将会被重置。如下例name1字段不会继承name字段的备注、默认值等信息。

语法:

alter table [表名] change [字段名] [字段新名称] [字段的类型]

例如:将a表的name改名为name1

alter table a change name name1 varchar(20);
  • 1

3、修改字段类型、长度

注:modify常用于修改表中字段的类型和长度。

语法:

alter table [表名] modify column [字段名] [新数据类型(修改后的长度)]

例如:修改a表中name字段的类型为varchar,长度为20。然后再修改长度为30。

alter table a modify column name varchar(20);
alter table a modify column name varchar(30)
  • 1
  • 2

4、删除字段

语法:

alter table 表名 drop column 字段名;

例如: 删除a表中的name字段

alter table a drop column name;
  • 1

其他

如果修改表字段后,未生效。执行下面的语句刷新表。

analyze table 表名
  • 1

实际案例

1、设置字段为主键(不常用)

一般实际情况中,主键在建表时候就规定了且不会修改,但是如果后续需要修改,需要删除已存在主键再设置新的主键。

直接删除会报错。Multiple primary key defined
在这里插入图片描述
或者删除的主键是一个自增长列也会报错,要先移除自增长属性,再删除主键。
在这里插入图片描述

-- 移除a表id列的自增长属性
alter table a modify id int(10) unsigned;
-- 删除id主键
alter table a drop primary key;

-- 设置name为主键
alter table a add primary key(name); 
-- 或者设置id、name为复合主键,也叫双主键
alter table a add primary key(id,name);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
2、新增表非空字段
-- 表a新增name字段不许为空
alter table a add name varchar(20) NOT NULL;
  • 1
  • 2
3、新增表默认值字段
-- 表a新增createyear字段默认值为2021
alter table a add createyear varchar(20) DEFAULT '2021';

-- 额外:删除字段默认值
alter table a alter createyear drop default;
-- 额外:给已存在字段添加默认值
alter table a alter createyear set default '2021';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
4、修改表自增值
alter table a auto_increment = 1;
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/910489
推荐阅读
相关标签
  

闽ICP备14008679号