Mysql中用SQL增加、删除字段,修改字段名、字段类型、注释,调整字段顺序总结

2022-09-05 11:23:45 浏览数 (1)

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

1.增加一个字段

代码如下

复制代码

//增加一个字段,默认为空alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段,默认不能为空alter table user add COLUMN new2 VARCHAR(20) NOT NULL;

2.批量怎加字段

方法一 这里可以使用事务

代码如下

复制代码

bagin; //事务开始alter table em_day_data add f_day_house7 int(11); alter table em_day_data add f_day_house8 int(11); alter table em_day_data add f_day_house9 int(11); alter table em_day_data add f_day_house10 int(11); commit; //提交事务,事务结束

事务(transaction)是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。

方法二 mysql 批量为表添加多个字段 alter table 表名 add (字段1 类型(长度),字段2 类型(长度),字段3 类型(长度));

代码如下

复制代码

alter table em_day_data add (f_day_house11 int(11),f_day_house12 int(11),f_day_house13 int(11));

3.删除一个字段

代码如下

复制代码

//删除一个字段alter table user DROP COLUMN new2;

4.修改一个字段

代码如下

复制代码

//修改一个字段的类型alter table user MODIFY new1 VARCHAR(10); //修改一个字段的名称,此时一定要重新指定该字段的类型alter table user CHANGE new1 new4 int;

5.批量修改字段名称

代码如下

复制代码

alter table 表 change 修改前字段名 修改后字段名称 int(11) not null, change 修改前字段名 修改后字段名称 int(11) not null, change 修改前字段名 修改后字段名称 int(11) not null, change 修改前字段名 修改后字段名称 int(11) not null, change 修改前字段名 修改后字段名称 int(11) not null

例子:

代码如下

复制代码

alter table em_day_data change f_day_house11 f_day_hour11 int(11) not null, change f_day_house12 f_day_hour12 int(11) not null, change f_day_house13 f_day_hour13 int(11) not null, change f_day_house14 f_day_hour14 int(11) not null, change f_day_house15 f_day_hour15 int(11) not null, change f_day_house16 f_day_hour16 int(11) not null, change f_day_house17 f_day_hour17 int(11) not null

6,添加注释

代码如下

复制代码

// 可以为表添加注释ALTER TABLE `table_name` COMMENT’注释‘; // 为字段添加注释,同样适用于修改ALTER TABLE `table_name` CHANGE `column_name` `column_name` type(longth) UNSIGNED NULL DEFAULT NULL COMMENT ‘注释‘

7,调整字段顺序:

alter table 表名 change 字段名 新字段名 字段类型 默认值 after 字段名(跳到哪个字段之后) 例子:

代码如下

复制代码

alter table appstore_souapp_app_androidmarket; change getPriceCurrency getPriceCurrency varchar(50) default null AFTER getPrice;

一.比如说要判断表A中的字段C是否存在两个方法:

(1) 直接查表——有点笨,有点常规

IF EXISTS (

SELECT 1 FROM SYSOBJECTS T1

INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID

WHERE T1.NAME=’A’ AND T2.NAME=’C’

)

PRINT ‘存在‘

ELSE

PRINT ‘不存在‘

(2) 直接判断列长度的函数——短小精悍,可谓精典

IF COL_LENGTH(‘A’, ‘C’) IS NOT NULL

PRINT N’存在‘

ELSE

PRINT N’不存在‘

例如:

方法一:

select * from syscolumns where id=object_id(‘表名‘) and name=’列名‘

说明:存在则返回此列的一条说明记录,不存在返回空;

方法二:

select count(*) from sysobjects a,syscolumns b where a.id=b.id and b.name=’flag1′ and a.type=’u’ and a.name=’T_Pro_ProductClass’

说明:存在返回1,不存在则返回0

二.判断表是否存在、创建表、并加索引:

三、判断存储过程是否存在,并创建存储过程:

四.判断函数是否存在并创建函数:

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

0 人点赞