MySQL SQL语句增加字段/修改字段/修改类型/修改默认值

1.应用场景

有时[比如在Linux服务器下, 或者借助数据库管理工具执行SQL], 需要使用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);

 

//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

 

5.增加字段备注/删除备注

添加备注【字段已经存在==>MODIFY, 不存在==>ADD】
/*oracle*/ comment on column 表名.列名 is '备注';
/*mysql*/ ALTER TABLE 表名 MODIFY  字段名 类型 COMMENT '备注';

 

删除备注【字段已经存在==>MODIFY, 不存在==>ADD】

/*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; 

 

整理如下: //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;

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语句增加字段/修改字段/修改类型/修改默认值_第1张图片

 

 

7.win10下,查看保存sql脚本的地方:

C:\Users\william_ning\Documents\Navicat\MySQL\Servers\xxxxx\database_name  //可以看到之前保存的sql查询C:\Users\xinfning\Documents\Navicat\MySQL\Servers   //工作电脑

MySQL SQL语句增加字段/修改字段/修改类型/修改默认值_第2张图片与下方是对应的/ 

 

MySQL SQL语句增加字段/修改字段/修改类型/修改默认值_第3张图片

 

 

 

3.问题/补充

TBD

4.参考

TBD

后续补充

...

 

你可能感兴趣的:(MYSQL)