修改表字段属性,SQL总结

MYSQl

varchar转为mediumtext

复制代码
ALTER TABLE table_name MODIFY COLUMN column_name mediumtext;

ALTER TABLE table_name MODIFY COLUMN column_name varchar(255)
1. 修改字段的数据类型

使用 MODIFY COLUMN 可以改变字段的数据类型、长度、默认值或注释,但不会更改字段名称。

ALTER TABLE table_name MODIFY COLUMN column_name new_data_type [constraint];

示例 :将 age 字段的数据类型从 INT(4) 修改为 TINYINT(3)

ALTER TABLE employees MODIFY COLUMN age TINYINT(3) NOT NULL COMMENT '年龄';

2. 修改字段的名称及属性

使用 CHANGE COLUMN 可以同时更改字段名称及其属性。

ALTER TABLE table_name CHANGE old_column_name new_column_name new_data_type [constraint];

示例 :将 name 字段重命名为 student_name,并将其数据类型改为 VARCHAR(100)

ALTER TABLE students CHANGE name student_name VARCHAR(100) NOT NULL COMMENT '学生姓名';

3. 修改字段的默认值

可以通过 MODIFY COLUMNCHANGE COLUMN 来修改字段的默认值。

ALTER TABLE table_name MODIFY COLUMN column_name data_type DEFAULT default_value;

示例 :将 salary 字段的默认值设置为 0

ALTER TABLE employees MODIFY COLUMN salary DECIMAL(10, 2) DEFAULT 0;

4. 添加或删除字段的非空约束
  • 添加非空约束

ALTER TABLE table_name MODIFY COLUMN column_name data_type NOT NULL;

示例 :将 name 字段设置为非空。

ALTER TABLE employees MODIFY COLUMN name VARCHAR(50) NOT NULL;

  • 删除非空约束

ALTER TABLE table_name MODIFY COLUMN column_name data_type NULL;

示例 :将 name 字段设置为可空。

ALTER TABLE employees MODIFY COLUMN name VARCHAR(50) NULL;

ORACLE

NVARCHAR2 转为NCLOB

  • 新增临时字段为NCLOB

    ALTER TABLE COMMON_DATA_AUTOMATIC_CONFIG ADD TEMP CLOB;

  • 将需要修改的字段的值设置给临时字段

    UPDATE COMMON_DATA_AUTOMATIC_CONFIG SET TEMP = PARAMETERS_VALUE;

  • 删除需要修改的字段

    ALTER TABLE COMMON_DATA_AUTOMATIC_CONFIG DROP COLUMN PARAMETERS_VALUE;

  • 修改临时字段的名字为需要修改字段名

    ALTER TABLE COMMON_DATA_AUTOMATIC_CONFIG RENAME COLUMN TEMP to PARAMETERS_VALUE;

1. 重命名列

ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;

示例:

ALTER TABLE employees RENAME COLUMN first_name TO given_name;

2. 修改列的数据类型

ALTER TABLE table_name MODIFY (column_name datatype);

示例:

ALTER TABLE employees MODIFY (salary NUMBER(10, 2));

3. 添加新列

ALTER TABLE table_name ADD column_name datatype;

示例:

ALTER TABLE employees ADD bonus NUMBER(10, 2);

4. 删除列

ALTER TABLE table_name DROP COLUMN column_name;

示例:

ALTER TABLE employees DROP COLUMN bonus;

5. 修改列的默认值

ALTER TABLE table_name MODIFY (column_name datatype DEFAULT default_value);

示例:

ALTER TABLE employees MODIFY (hire_date DATE DEFAULT SYSDATE);

6. 修改列的约束
a. 添加约束

ALTER TABLE table_name ADD CONSTRAINT constraint_name condition;

示例:

ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary > 0);

b. 删除约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name;

示例:

ALTER TABLE employees DROP CONSTRAINT chk_salary;

KES

varchar转为text

复制代码
ALTER TABLE common_data_automatic_config MODIFY COLUMN parameters_value  TEXT
1. 修改字段的数据类型

使用 ALTER TABLE 语句修改列的数据类型:

ALTER TABLE table_name MODIFY COLUMN column_name new_data_type;

例如,将 name 列的数据类型从 VARCHAR2(50) 改为 NCLOB

ALTER TABLE example_table MODIFY COLUMN name NCLOB;

2. 修改字段的默认值

使用 ALTER TABLE 语句修改列的默认值:

ALTER TABLE table_name MODIFY COLUMN column_name DEFAULT default_value;

例如,将 salary 列的默认值设置为 0

ALTER TABLE employees MODIFY COLUMN salary DEFAULT 0;

3. 删除字段的默认值

如果需要删除字段的默认值,可以使用以下命令:

ALTER TABLE table_name MODIFY COLUMN column_name DEFAULT NULL;

例如,将 salary 列的默认值设置为 NULL

ALTER TABLE employees MODIFY COLUMN salary DEFAULT NULL;

4. 修改字段的非空约束

添加或删除字段的非空约束:

  • 添加非空约束

ALTER TABLE table_name MODIFY COLUMN column_name NOT NULL;

例如,将 name 列设置为非空:

ALTER TABLE employees MODIFY COLUMN name NOT NULL;

  • 删除非空约束

ALTER TABLE table_name MODIFY COLUMN column_name NULL;

例如,将 name 列设置为可空:

ALTER TABLE employees MODIFY COLUMN name NULL;

5. 重命名字段

使用 RENAME COLUMN 子句重命名字段:

ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;

例如,将 name 列重命名为 full_name

ALTER TABLE employees RENAME COLUMN name TO full_name;

6. 添加新列

使用 ADD 子句添加新的列:

ALTER TABLE table_name ADD column_name data_type [constraint];

例如,添加一个名为 birthdate 的日期列:

ALTER TABLE employees ADD birthdate DATE;

7. 删除列

使用 DROP COLUMN 子句删除列:

ALTER TABLE table_name DROP COLUMN column_name;

例如,删除 address 列:

ALTER TABLE employees DROP COLUMN address;

相关推荐
韩师学子--小倪17 分钟前
fastjson与gson的toString差异
java·json
Drawing stars20 分钟前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
nbsaas-boot32 分钟前
SQL Server 存储过程开发规范(公司内部模板)
java·服务器·数据库
zgl_2005377932 分钟前
ZGLanguage 解析SQL数据血缘 之 Python + Echarts 显示SQL结构图
大数据·数据库·数据仓库·hadoop·sql·代码规范·源代码管理
行百里er1 小时前
用 ThreadLocal + Deque 打造一个“线程专属的调用栈” —— Spring Insight 的上下文管理术
java·后端·架构
acaad1 小时前
Redis下载与安装(Windows)
数据库·redis·缓存
玄〤1 小时前
黑马点评中 VoucherOrderServiceImpl 实现类中的一人一单实现解析(单机部署)
java·数据库·redis·笔记·后端·mybatis·springboot
SunflowerCoder1 小时前
EF Core + PostgreSQL 配置表设计踩坑记录:从 23505 到 ChangeTracker 冲突
数据库·postgresql·c#·efcore
J_liaty1 小时前
Spring Boot拦截器与过滤器深度解析
java·spring boot·后端·interceptor·filter
短剑重铸之日2 小时前
《7天学会Redis》Day2 - 深入Redis数据结构与底层实现
数据结构·数据库·redis·后端