3.3.1 增加一列

在表中增加一列的语句格式为:

ALTER TABLE 表名字 ADD COLUMN列名字 数据类型 约束;

或:ALTER TABLE 表名字 ADD 列名字 数据类型 约束;

现在 employee 表中有 id、name、age、salary、phone、in_dpt 这6个列,我们尝试加入 height (身高)一个列并指定DEFAULT 约束:

ALTER TABLE employee ADD height INT(4)DEFAULT 170;

可以发现:新增加的列,被默认放置在这张表的最右边。如果要把增加的列插入在指定位置,则需要在语句的最后使用AFTER关键词(“AFTER 列1” 表示新增的列被放置在 “列1” 的后面)。

提醒:语句中的 INT(4) 不是表示整数的字节数,而是表示该值的显示宽度,如果设置填充字符为 0,则 170 显示为 0170

比如我们新增一列 weight(体重) 放置在 age(年龄) 的后面:

ALTER TABLE employee ADD weight INT(4)DEFAULT 120 AFTER age;

上面的效果是把新增的列加在某位置的后面,如果想放在第一列的位置,则使用 FIRST 关键词,如语句:

ALTER TABLE employee ADD test INT(10)DEFAULT 11 FIRST;

效果如下:

3.3.2 删除一列

删除表中的一列和刚才使用的新增一列的语句格式十分相似,只是把关键词 ADD 改为 DROP ,语句后面不需要有数据类型、约束或位置信息。具体语句格式:

ALTER TABLE 表名字 DROP COLUMN列名字;

或:ALTER TABLE 表名字 DROP 列名字;

我们把刚才新增的 test 删除:

ALTER TABLE employee DROP test;

3.3.3 重命名一列

这条语句其实不只可用于重命名一列,准确地说,它是对一个列做修改(CHANGE) :

ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;

注意:这条重命名语句后面的 “数据类型” 不能省略,否则重命名失败。

当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束。需要注意的是,修改数据类型可能会导致数据丢失,所以要慎重使用。

我们用这条语句将 “height” 一列重命名为汉语拼音 “shengao” ,效果如下:

ALTER TABLE employee CHANGE height shengao INT(4) DEFAULT 170;

3.3.4 改变数据类型

要修改一列的数据类型,除了使用刚才的 CHANGE 语句外,还可以用这样的 MODIFY 语句:

ALTER TABLE employee CHANGE height shengao INT(4) DEFAULT 170;

再次提醒,修改数据类型必须小心,因为这可能会导致数据丢失。在尝试修改数据类型之前,请慎重考虑。

mysql study_mysql_study_3相关推荐

  1. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  2. mysql并发更新数据,多用户并发修改数据解决方案。

    mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...

  3. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  4. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  5. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  6. docker一步安装mysql,docker的魅力就在于此

    正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...

  7. 设置腾讯云linux服务器中 MySQL 允许远程访问

    申请了一台linux腾讯云服务器,想要把数据库搭建在上面,本地的Windows直接可以访问 以下就是具体的操作流程,首先你需要安装好一个mysql,安装方法–>mysql安装(Linux) 接着 ...

  8. Linux安装mysql,一步到位!

    今天在腾讯云上面买了一个服务器,想要把自己的项目部署一下,就要安装mysql,以下是我的安装步骤,在网上有很多人把install敲错了,还有的少-get,种种错误试完之后,我决定发一篇 sudo ap ...

  9. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  10. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

最新文章

  1. CTF---Web入门第十三题 拐弯抹角
  2. java程序语句的理解,[每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)
  3. MySQL SELECT..INTO OUTFILE语句只能导出1000行的故障
  4. Jquery加载默认值
  5. escape mysql_mysql_escape_string()函数用法分析
  6. python中通过pip安装套件
  7. 【计算机网络安全基础(第五版)袁津生 课后习题答案】
  8. 物流前沿理论与方法1
  9. win10怎样修改密码及忘记密码了怎么办
  10. 1. -vinc- = -vict- 胜利,征服
  11. UVA-10246 - Asterix and Obelix(dijkstra)
  12. 微信支付——功能测试用例
  13. 【数据科学】肯德尔等级相关系数( Kendall's tau coefficient )
  14. java中的math_Java中math类的常用方法
  15. HTML ASP VBSCRIPT JAVASCRIPT SKILLS 常见问题
  16. 问卷量表调研结果 - data 2022.2.27周五
  17. intel(R)wireless-ac 9462感叹号,WLAN消失,电脑连不上网解决办法
  18. python for 无限循环
  19. CVPR 2021 论文大盘点-去阴影、去反光、去高光、去伪影篇
  20. Matlab笔记——License Manager Error -9解决办法——matlab反激活

热门文章

  1. 博文视点 疯狂ios讲义之选择器(UIPickerView)
  2. Android Studio:Support Library依赖包的版本号
  3. 微信小程序MQTT客户端的坑
  4. 为什么要在主线程更新UI?
  5. docker-2 深入了解docker
  6. 主机网络切换后,docker toolbox里的容器网络不通了,解决方法
  7. 浅析计算机软件可靠性设计
  8. GPU图形绘制管线简介
  9. Dalvik源码阅读笔记(二)
  10. 洛谷 3951 小凯的疑惑