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
每天进步一点点~~