修改表字段属性,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 COLUMN 或 CHANGE 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;
- 删除非空约束:
- 添加非空约束:
- 修改临时字段的名字为需要修改字段名
- 删除需要修改的字段
- 将需要修改的字段的值设置给临时字段
- 新增临时字段为NCLOB
- 删除非空约束: