MySQL – SQL语句增加字段/修改字段/修改类型/修改默认值[通俗易懂]

MySQL – SQL语句增加字段/修改字段/修改类型/修改默认值[通俗易懂]1.应用场景 有时[比如在Linux服务器下,或者借助数据库管理工具执行SQL],需要使用sql语句直接对数据表进行新建/修改表结构,填充/更新数据等. 好处:可以避免繁琐操作,遗漏,快捷方便,一步到位. 2.学习/操作 20190903新补充 1.添加字段,比如我在数据表中添加一个age字段,类型为int(11…

大家好,又见面了,我是你们的朋友全栈君。

1.应用场景

有时[比如在Linux服务器下]需要使用SQL语句直接对数据表进行新建/修改表结构, 填充/更新数据等.

或借助数据库管理工具执行SQL,但是这种方法,比较适合做微小的操作~

好处:

使用SQL去操作,可以避免繁琐, 遗漏, 快捷方便, 一步到位.

2.学习/操作

前言

1. 本文中有部分SQL没有采用大写,但是推荐关键字使用大写字~~

2. 在应用到生产环境之前,一定要在本地/测试环境做测试,确认无误才可以放到生产环境执行~~

新补充  // 20190903

1. 添加字段,比如我在数据表中添加一个 age 字段,类型为int(11)

ALTER TABLE player ADD (age int(11));

2. 修改字段名,将 age 字段改成player_age

ALTER TABLE player RENAME COLUMN age to player_age

3. 修改字段的数据类型,将player_age的数据类型设置为float(3,1)

ALTER TABLE player MODIFY (player_age float(3,1));

4. 删除字段, 删除刚才添加的player_age字段

ALTER TABLE player DROP COLUMN player_age;

—————————————————————–我是分割线—————————————————————-

1. 修改字段默认值

alter table 表名 drop constraint 约束名字   ——说明:删除表的字段的原有约束

alter table 表名 add constraint 约束名字 DEFAULT 默认值 for 字段名称 ——-说明:添加一个表的字段的约束并指定默认值

2. 修改字段名

语法:// 验证通过

ALTER TABLE <表名> CHANGE <字段名> <字段新名称> <字段的类型>

例子

ALTER TABLE `ue4_map` CHANGE  `levelpath` `filepath` VARCHAR(255);
ALTER TABLE `ue4_blueprint` CHANGE `strObjectPath` `filepath` VARCHAR(255);

Note

ALTER TABLE 表名 RENAME COLUMN A TO B;   // 验证没成功

3. 修改字段类型

ALTER TABLE 表名 ALTER COLUMN UnitPrice DECIMAL(18, 4) NOT NULL

4. 增加字段

ALTER TABLE 表名 ADD 字段 类型 NOT NULL DEFAULT 0

For example 

use kumu;

ALTER TABLE `user`

ADD `sig_livestream_notification` enum(‘0′,’1’) DEFAULT ‘1’ COMMENT ‘1:接收SIG的直播通知’ AFTER `livestream_notification`,

ADD `sig_timeline_like_notification` enum(‘0′,’1’) DEFAULT ‘1’ COMMENT ‘1:接收like 通知’ AFTER `timeline_like_notification`,

ADD `sig_timeline_comment_notification` enum(‘0′,’1’) DEFAULT ‘1’ COMMENT ‘1:接收评论通知’ AFTER `timeline_comment_notification`;

5. 增加 / 删除字段备注

Note

字段已经存在 ==> MODIFY,  不存在 ==> ADD

添加备注

/*oracle*/

comment on column 表名.列名 is ‘备注’;

/*mysql*/

ALTER TABLE 表名 MODIFY 字段名 类型 COMMENT ‘备注’;

删除备注

/*mysql*/

ALTER TABLE 表名 MODIFY  字段名 类型 COMMENT ”;

下面用法:

Alter table `db_jddts_jsmj_1_tdw`.`lg2_hero_baseattr`   — db_jddts_jsmj_1_tdw:数据库名
  add column `num` int(11) NOT NULL Auto_increment first,  — 添加字段,并且处于第一列
  add column `versionTime` varchar(11) NOT NULL after `num`, — 添加字段,处于num后面
  change `heroid` `heroid` int(11) NULL,  — 改变字段类型
  drop primary key, — 删除主键
  add primary key (`num`) — 添加主键

添加主键字段:

alter table `version` ADD  id int(11) not null auto_increment primary key COMMENT ‘主键’ first;

6. 复制表 使用关键字 LIKE   // 20200119

已经有user_login表, 现在要[水平分表]创建100个相同的表, 使用如下即可, 或者通过存储过程[TBD]

CREATE TABLE user_login0 LIKE user_login;
CREATE TABLE user_login1 LIKE user_login;
CREATE TABLE user_login2 LIKE user_login;
CREATE TABLE user_login3 LIKE user_login;
CREATE TABLE user_login4 LIKE user_login;
CREATE TABLE user_login5 LIKE user_login;
CREATE TABLE user_login6 LIKE user_login;
CREATE TABLE user_login7 LIKE user_login;
CREATE TABLE user_login8 LIKE user_login;
CREATE TABLE user_login9 LIKE user_login;
CREATE TABLE user_login10 LIKE user_login;

….

CREATE TABLE user_login99 LIKE user_login;

— 备注:

— 借助上面的序号可以借助Excel实现或者脚本来实现;

执行结果如下:

MySQL - SQL语句增加字段/修改字段/修改类型/修改默认值[通俗易懂]

7. Win10下,查看保存SQL脚本的地方:

可以看到之前保存的sql查询 C:\Users\xinfning\Documents\Navicat\MySQL\Servers   // 公司电脑

C:\Users\william_ning\Documents\Navicat\MySQL\Servers\xxxxx\database_name

Navicat

MySQL - SQL语句增加字段/修改字段/修改类型/修改默认值[通俗易懂]

硬盘

MySQL - SQL语句增加字段/修改字段/修改类型/修改默认值[通俗易懂]

8. 模板参考 —  Sublime 中编辑

— 1.修改test_1表 添加 hascount与note字段

ALTER TABLE test_1 ADD hascount INTEGER NOT NULL Default 0 COMMENT '总编制';

ALTER TABLE test_1 ADD note TEXT COMMENT '备注';

— 2.新增test_2表

DROP TABLE IF EXISTS `test_2`;


CREATE TABLE `test_2`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `operate_time` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '操作时间',
  `operator_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '操作者id',
  `proname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '项目名',
  `update_field` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '变更字段',
  `update_before` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '变更前',
  `update_after` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '变更后',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 146 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

— 3.新增test_3表

DROP TABLE IF EXISTS `test_3`;


CREATE TABLE `test_3`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `group_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '组名',
  `hascount` int(11) NULL DEFAULT NULL COMMENT '总编制',
  `note` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '备注',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

后续补充

3.问题/补充

TBD

4.参考

TBD

后续补充

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131644.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 香港手机号正则表达式「建议收藏」

    香港手机号正则表达式「建议收藏」刚遇到一个问题,不了解香港手机号的规则,现在记录下来,方便以后查看香港手机号码正则:^([6|9])\d{7}$澳门手机号码正则:^[0][9]\d{8}$大陆:^[1][3-8]\d{9}$正则表达式:^[1][3-8]\d{9}$|^([6|9])\d{7}$|^[6]([8|6])\d{5}$这是规则:大陆:开头13-8号码

    2022年5月4日
    334
  • windows nslookup命令详解_nslookup unknown

    windows nslookup命令详解_nslookup unknown1问题今天是特别傻逼,既然问了一个很愚蠢的问题,登录后台需要相关的ip,但是我只有域名,这么太突然来,我既然不知道用nslookup命令,好吧,先记录起来,希望下次不要犯这样的傻逼错误2查看电脑的所有配置在windowd终端输入如下命令ifconfig/all3nslookup正向查找(通过域名找对于的i…

    2022年10月19日
    4
  • hibernate之c3p0连接池配置详解

    hibernate之c3p0连接池配置详解数据库连接池,项目中一旦配置好后一般很少改动,所以很多人并没有细细的研究过(有时甚至是运维的人负责配置),其实这个知识点还是很重要的,所以我在这里总结分享下,需要用到的时候拿出来看看就可以啦。这里我们介绍的是c3p0的配置方式。

    2022年6月13日
    37
  • javascript 数组删除元素_数组添加元素

    javascript 数组删除元素_数组添加元素js数组是js部分非常重要的知识,有时我们有这么个需求js数组删除指定元素,先定义一个函数来获取删除指定元素索引值,然后用js数组删除的方法,来删除指定元素即可,就两步不难,很简单。1、JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,也就是索引值,代码如下:Array.prototype.indexOf=function(val){for(vari=………

    2022年10月1日
    3
  • C++函数模板(模板函数)详解

    C++函数模板(模板函数)详解定义用法:函数模板的原理延申用法2.1为什么需要类模板2.2单个类模板语法2.3继承中的类模板语法案例1:案例2:2.4类模板的基础语法2.5类模板语法知识体系梳理1.所有的类模板函数写在类的内部复数类:2.所有的类模板函数写在类的外部,在一个cpp中2.5总结关于类模板的几点说明:2.6类模板中的static关键字案例2:以下来自:C++类模板遇上static关键字…

    2022年4月4日
    51
  • std::vector初始化[通俗易懂]

    std::vector初始化[通俗易懂]#include<iostream>#include<stdint.h>#include<vector>usingnamespacestd;intmain(){ std::vector<uint8_t>temp0(0,0); cout<<“vectorsize:”<<temp0.size()<<endl; std::vector<uint8_t>temp1(.

    2025年12月4日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号