RENAME,CHANGE,ALTER,MODIFY 四个字段的作用和区别

目录

[1. ALTER 搭配 ADD 向表中添加字段](#1. ALTER 搭配 ADD 向表中添加字段)

[2. ALTER 搭配 MODIFY 修改表中的字段长度,默认值,数据类型](#2. ALTER 搭配 MODIFY 修改表中的字段长度,默认值,数据类型)

[3. ALTER 搭配 CHANGER 修改表中字段的名称](#3. ALTER 搭配 CHANGER 修改表中字段的名称)

[4. ALTER,RENAME 都可以修改表的名称](#4. ALTER,RENAME 都可以修改表的名称)

[5. DROP 和 TRUNCATE 的区别](#5. DROP 和 TRUNCATE 的区别)


1. ALTER 搭配 ADD 向表中添加字段

ALTER 是数据库提供的一个可以用来修改表结构的字段,我们可以利用该字段再配合其他关键字对表中的字段及其字段属性做增删改操作;

sql 复制代码
# 向某个表中添加字段并确定字段类型与长度
ALTER TABLE 表名 ADD 字段名 字段类型(长度) 指定位置(不写则默认加之最后);

USE patent;
# 举例1:将字段 price 添加至 t_patent 表的最后
ALTER TABLE t_patent ADD parice DOUBLE(10,2);

# 举例2:将字段 price 添加至 t_patent 表的第一个字段处
ALTER TABLE t_patent ADD parice DOUBLE(10,2) FIRST;

# 举例3:将字段price添加至t_patent表patent_name字段的后面
ALTER TABLE t_patent ADD parice DOUBLE(10,2) AFTER patent_name;

2. ALTER 搭配 MODIFY 修改表中的字段长度,默认值,数据类型

首先我们要知道一点,**一旦数据库创建,我们基本不会再去修改字段的数据类型,**特别是数据库中已经存放有数据的时候,更不会去修改,因为代价太大,业务代码很可能收到侵入。

所以我们通常会使用 ALTER 和 MODIFY 字段搭配一起修改表中字段的长度和默认值。例如我们插入一条数据,它的某个字段长度超过了表中定义的长度,那么我们就需要将表中字段的长度变大,不能说数据舍弃不要了,这是不合理的。

sql 复制代码
# 修改语法格式
ALTER TABLE 表名 
MODIFY 字段名 字段类型(要修改为的长度) DEFAULT '要修改为的默认值';

# 举例语句
# 将 t_patent 表中 patent_name 字段长度改为30,默认值改为 aaa,不想添加默认值不写即可
ALTER TABLE t_patent
MODIFY patent_name VARCHAR(30) DEFAULT 'aaa';

3. ALTER 搭配 CHANGER 修改表中字段的名称

从作用上来讲,你可以简单的理解为 CHANGER 是 MODIY 的增强版,MODIFY 可以修改字段的长度和默认值,CHANGER 在 MODIFY 的基础上还可以修改字段的名称,即重命名字段。

sql 复制代码
# 语法格式如下
ALTER TABLE 表名
CHANGE 原字段名称,要修改后的字段名称 字段类型(要修改的长度) DEFAULT '要修改的默认值'

# 举例:将 t_patent 表中的 modified_user 字段
# 	    改名为 modified_username 长度也改为40,默认值也改为张三
ALTER TABLE t_patent
CHANGE modified_user modified_username VARCHAR(40) DEFAULT '张三';

4. ALTER,RENAME 都可以修改表的名称

通过 RENAME 字段我们可以修改表的名称,语法也较为简单;

但如果使用 ALTER 则需要搭配 RENAME 一起使用

代码如下,个人建议采用第一种 RENAME 的方式,好记简单,第二种则是ALTER RENAME 一起使用,语法还变麻烦了。

sql 复制代码
# RENAME修改表的名称语法格式
RENAME TABLE 原表名 TO 新表名;
# 举例演示,将表 t_patent 改名为 patent6
RENAME TABLE t_patent TO patent6;

# ALTER修改表的名称语法格式
ALTER TABLE 原表名 RENAME TO 新表名;
# 举例演示,将表 patent6 改名为 patent
ALTER TABLE patent6 RENAME TO patent5;

5. DROP 和 TRUNCATE 的区别

DROP 表示删除表,它会将整个表的结构和数据一并删除,也就说表不复存在了,并且不能回滚。但实际开发过程中,公司中的DBA一般不会给予开发人员删除权限,就算有删除也是逻辑删除。

TRUNCATE 也表示删除表,但它只会删除表中的数据,表还在,只是数据全部删掉了。

相关推荐
小白勇闯网安圈41 分钟前
Django 响应对象、文件上传与类视图
数据库·django·sqlite
努力的小雨1 小时前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全
数据库
ltl2 小时前
数据库作为 LLM 记忆体:语义缓存、RAG 与一致性
数据库
ltl2 小时前
WAL 与崩溃恢复:ARIES 协议怎么跑通
数据库
ltl2 小时前
TEE 数据库:EnclaveDB、Oblivious 原语与机密 SQL
数据库
麻瓜code4 小时前
【Mysql】重新学一遍 SQL 执行顺序
数据库·sql
这个DBA有点耶4 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
安_5 小时前
RAG的向量数据库:为LLM提供语义搜索能力
数据库
喜欢的名字被抢了6 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
这个DBA有点耶6 小时前
3000万个应用共享一套数据库:多租户“逻辑表”架构是如何做到的?
数据库·架构·dba