美文网首页
MySQL中列的增删改

MySQL中列的增删改

作者: djz0306 | 来源:发表于2019-06-25 19:55 被阅读0次

上一篇分析了如何更好地建立一张表,一张表中放哪些列更合适。但是建表过程中难免会建错,或者在开发过程中需求变化,业务变化,难免需要对表的结构进行修改。本篇就整理一下如何对表的结构进行修改。

增加列

先建一张表只有 id 列一列,如下所示:

m1 表结构.jpg

列的增加和新建差不多,关键都在于列名称、列类型、列参数,格式为:

alter table 表名 add 列名称 列类型 列参数;

例如:

alter table m1 add username char(20) not null default '';

结果如下:

增加 username 列.jpg

这样加的话会默认加在表的最后。如果要指定位置,可以增加 after 列名 ,这样能把新列指定加在某列后面。例如:

alter table m1 add birth date not null default "0000-00-00";
alter table m1 add gender char(1) not null default '' after username;

结果如下:

将新列增加到指定的列后面.jpg

如果想把新列放在第一位,那就需要使用 first 例如:

alter table m1 add pid int not null default 0 first;

结果如下:

![删除 pid 列.jpg](https://img.haomeiwen.com/i18246544/26e48e25230be5d9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

删除列

删除列相对简单,格式为:

alter table 表名 drop 列名;

例如删除 pid 列:

alter table m1 drop pid;

结果如下:

删除 pid 列.jpg

修改列

修改列类型

如果要修改列的类型,例如顺应时代潮流,除了男女还有了双性,则需要将 gender 列改为 char(2),格式为:

alter table 表名 modify 列名 新的类型 新参数;

例如:

修改列类型.jpg

修改列名及列类型

如果要改列名则需要用到 change ,格式为:

alter table 表名 change 旧列名 新列名 新类型 新参数

例如:

alter table m1 change id uid int unsigned;

改后列名变为 uid 且自增长就丢失了,不过主键索引还是在的,结果如下:

修改列名和列类型.jpg

主键的修改可以使用 drop primary key 和 add primary key,这个在后面和主键相关的内容中一起整理。

如果在修改列类型的时候,导致数据存不下,例如 int 改为 smallint 数据将会丢失,在 strict_mode 下会修改失败

相关文章

  • mysql的插入语句

    MySQL增删改查之增insert、replace

  • MySQL中列的增删改

    上一篇分析了如何更好地建立一张表,一张表中放哪些列更合适。但是建表过程中难免会建错,或者在开发过程中需求变化,业务...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • 2018-06-23 (数据库)

    /*表的增删改查增创建删除删除整张表改改变表名改变列名改变列类型查查询表结构查询表信息表数据的增删改查增插入指定列...

  • MYSQL基本命令(3)

    增删改查(crud) (一)增 <1>插入完整行 <2>根据列插入数据 <3>多行插入数据 <4>讲一个表里的子列...

  • Oracle实现自增方式:序列+触发器

    Oracle不能像MySQL那样设置主键自增,Oracle用 <序列+触发器>的方式使数据表的一列或多列实现自增 ...

  • node.js操作mysql学习笔记

    普通连接的增删改查 查 改 增 连接池 Pool options //mysql的github直接拷贝的,创建po...

  • 表中列的 增删改查

    课程总结 表中列的 增删改查 表是由 列和行 组成的;对列的增删改查就相当于是对表属性的修改 所以用alte...

  • 查询mysql自身的一些信息

    mysql通过select语句可以查询表中的列,也可以检索不是表中的列,此时mysql使用自身表达式标记列。 如下...

  • JavaScript防篡改对象

    preventExtensions:不能增,能删改seal:不能增删,能改freeze:不能增删改 对象属性增删改...

网友评论

      本文标题:MySQL中列的增删改

      本文链接:https://www.haomeiwen.com/subject/ldaxcctx.html