mysql --change 以及modify的区别

mysql中change和modify的区别

在MySQL中,`CHANGE`和`MODIFY`都用于修改表的列属性,但它们之间存在一些差异:

  • 重命名列。`CHANGE`允许修改列名,而`MODIFY`不支持重命名列。12345678
  • 数据类型和约束修改。`CHANGE`和`MODIFY`都可以修改列的数据类型,但`CHANGE`还可以修改列的其他属性,如长度、默认值、是否为空等。
  • 使用频率。`MODIFY`通常用于进行较小的修改,例如修改列的数据类型,而`CHANGE`用于进行幅度较大的修改,如修改列名。2

综上所述,如果只需要修改列的数据类型,建议使用`MODIFY`;如果需要修改列名或进行其他更复杂的修改,建议使用`CHANGE`

跟着学习视频做的小练习

#1. 创建数据库test01_office,指明字符集为utf8。并在此数据库下执行下述操作

CREATE DATABASE test01_office CHARACTER SET "utf8" ;
USE test01_office
#2. 创建表dept01
/*
字段 类型
id INT(7)
NAME VARCHAR(25)
*/

CREATE TABLE dept01 (
id INT(7),
`NAME` VARCHAR(25)
)

show TABLES

#3. 将表departments中的数据插入新表dept02中
CREATE table dept02
AS 
SELECT * FROM atguigudb.departments

show TABLES

SELECT * FROM dept02;

#4. 创建表emp01
/*
字段 类型
id INT(7)
first_name VARCHAR (25)
last_name VARCHAR(25)
dept_id INT(7)
*/

create TABLE emp01(
id INT(7),
first_name VARCHAR (25),
last_name VARCHAR(25),
dept_id INT(7)
);
#5. 将列last_name的长度增加到50
ALTER TABLE emp01
MODIFY last_name VARCHAR(50)
SHOW TABLES
DESC emp01

#6. 根据表employees创建emp02
CREATE table emp02
AS
SELECT * FROM atguigudb.employees;
show TABLES 
#7. 删除表emp01
DROP TABLE emp01
show TABLES 
#8. 将表emp02重命名为emp01
RENAME TABLE emp02 TO emp01
SHOW TABLES 
#9.在表dept02和emp01中添加新列test_column,并检查所作的操作
ALTER TABLE dept02
ADD COLUMN test_column VARCHAR(20)

DESC dept02

ALTER TABLE emp01
ADD COLUMN test_column VARCHAR(20)
DESC emp01
#10.直接删除表emp01中的列 department_id
ALTER TABLE emp01
DROP COLUMN department_id
DESC emp01



# 1、创建数据库 test02_market
CREATE DATABASE test01_market CHARACTER SET "utf8";
USE test01_market
# 2、创建数据表 customers
CREATE TABLE customers(
c_num int,
c_name varchar(50),
c_contact VARCHAR(50),
c_city VARCHAR(50),
c_birth DATE
);

SHOW TABLES 
# 3、将 c_contact 字段移动到 c_birth 字段后面
ALTER TABLE customers 
MODIFY c_contact VARCHAR(50) AFTER c_birth ;
DESC customers 
# 4、将 c_name 字段数据类型改为 varchar(70) 
ALTER TABLE customers 
MODIFY c_name VARCHAR(70);
DESC customers 
# 5、将c_contact字段改名为c_phone
ALTER TABLE customers 
CHANGE c_contact c_phone VARCHAR(50)
DESC customers 
# 6、增加c_gender字段到c_name后面,数据类型为char(1)
ALTER TABLE customers 
ADD c_gender char(1) AFTER c_name 
DESC customers 
# 7、将表名改为customers_info
RENAME TABLE customers to customers_info 
show TABLES
# 8、删除字段c_city
ALTER TABLE customers_info
DROP COLUMN c_city
DESC customers_info

 

 

posted @ 2024-03-18 16:59  正霜霜儿  阅读(846)  评论(0编辑  收藏  举报