mysql中利用sql语句修改字段名称,字段长度等操作

在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿。这些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我们有时为了更方便的管理,会选择写sql语句来实现。

1.修改字段的长度

语法:

ALTER TABLE 表名 MODIFY COLUMN 字段名  数据类型(修改后的长度)

例子:

将字段的长度由10改为20

ALTER TABLE attence MODIFY COLUMN id INT(20)

2.修改字段的名称

语法:

alter table <表名> change <字段名> <字段新名称> <字段的类型>。

例子:

将字段attence_name改为name

ALTER TABLE attence CHANGE attence_name NAME  VARCHAR(20)

3.新增字段

语法:

新增默认为空的字段
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 DEFAULT NULL;
新增不为空的字段
ALTER TABLE 表名ADD COLUMN 字段名 字段类型  NOT NULL;

例子:
ALTER TABLE attence ADD COLUMN attence_name VARCHAR(20) DEFAULT NULL;

ALTER TABLE attence ADD COLUMN age VARCHAR(20) NOT NULL;

4.删除字段

语法:

ALTER TABLE 表名 DROP COLUMN 字段名;

例子:

ALTER TABLE attence DROP COLUMN age;

5.批量增加字段

方法一
可以使用事务

语法:

begin;                                           //事务开始
alter table 表名  add 字段名  字段类型(长度);
alter table 表名 add 字段名  字段类型(长度);
alter table 表名 add 字段名  字段类型(长度);
alter table 表名 add 字段名  字段类型(长度);
commit;

例子:

begin;                                           //事务开始
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;

方法二

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));

6.批量修改字段名称

语法:

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

原文地址:https://www.cnblogs.com/sujulin/p/9021355.html

时间: 2024-10-10 06:43:05

mysql中利用sql语句修改字段名称,字段长度等操作的相关文章

mysql如何用sql语句修改表字段?

1.今日任务根据下表用sql语句创建表结构 2.在创建上图表结构的时候,不小心把最后一个字段写成了全大写的STATUS,看着实在不协调,于是准备修改这个字段 3.修改的方法有很多种 1.我用的是mysql数据库,可以直接选择表,右键设计表,直接修改保存就ok 2.或者直接DROP TABLE 表把表删除,重新CREATE TABLE表来新建表 2.但是我需要的是用sql语句来修改,输入下图sql语句运行一下就修改成功了 注意:有的人看到这受影响的行数为0,就要问一句到底有没有修改成功,答案是有的

浅谈MySQL中优化sql语句查询常用的30种方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from

MySQL中优化sql语句查询常用的30种方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from

MySQL中优化sql语句查询常用的种方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from

浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from

Entity Framework 在MySQL中执行SQL语句,关于参数问题

在Entity Framework中添加MySQL模型,在写代码的过程中需要直接执行SQL语句. 在SQL语句中用到了@curRank := 0 这样在SQL语句中定义参数,同时还会有传入参数:ai.action_time >= '@startTime', 在执行的过程中会报错. 解决办法,在连接数据库字符串中添加:';Allow User Variables=True' 添加完成后如下: <add name="" connectionString="metada

MySQL中一个sql语句包含in优化问题

第一版sql: SELECT module.id, module.module_name, module.module_code `module` where 92 IN (module.did_access) WHERE module.type =2 AND module.status =0 ORDER BY module.create_time ASC LIMIT 0 , 30 这样的sql语句会有缺陷,in的用法虽然看上去没问题,但是是不对的,这样查出的数据不全,所以优化了一下: 第二版s

在MySQL中拼SQL语句

例子如下: CREATE TEMPORARY TABLE NEW_TIME_CLIENT(UUID VARCHAR(36), CLIENT_MAC VARCHAR(17), ONLINE_SECONDS INT) ENGINE=MEMORY; SET @SQL_NEW_TIME_CLIENT=CONCAT(" INSERT INTO NEW_TIME_CLIENT SELECT UUID, SUBSTRING(RVALUE,1,17) CLIENT_MAC, SUBSTRING(RVALUE,1

MySQL基本的Sql语句

一 . 常用mysql命令行命令 1 .启动MYSQL服务  net start mysql 停止MYSQL服务  net stop mysql 2 . netstat –na | findstr 3306 查看被监听的端口 , findstr用于查找后面的在端口是否存在 3 . 在命令行中登陆MYSQL控制台 , 即使用 MYSQL COMMEND LINE TOOL 语法格式 mysql –user=root –password=123456 db_name 或 mysql –uroot –