MySQL细节篇02_modify和change的区别

文章目录

摘要

modify和change都是数据库中修改列属性的关键字,但是俩者在细节上有着一些区别,本文主要介绍modify和change的异同点


相同点

  • 都是用来修改列属性的,执行成功之后都会将新属性替换原有属性

区别

  • modify是用来修改列属性中较微小的操作的,例如修改列的属性,重命名时无法使用modify

  • change是用来修改列属性中幅度变化较大的操作的,例如修改列名

    注意:使用change只修改列属性不修改列名时,需将列名写俩遍,因为change一使用就必须修改列名,不建议仅修改列属性时使用change

  • 为什么修改列属性是微小的操作,而修改列名是幅度变化较大的操作呢?

    注意:修改列名对于表来说牵扯的东西会更多一点,而修改列属性仅仅针对了这一列而言,因此修改列属性是较小的操作

    建议需要修改列名时再使用change,修改列属性时只使用modify

示例:

-- 假设id本来没有非空约束,增加非空约束:
ALTER TABLE name modify id int not null;

-- 使用change同样修改id属性:增加非空约束
ALTER TABLE name change id id int not null;

-- 修改id列名为Sno:
ALTER TABLE name change id Sno int not null;

可以看出修改属性时使用change比使用modify稍麻烦一些

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Master configuration Find the my.cnf file Configure under [mysqld] [mysqld] server-id=1 log-bin=master-bin   Restart the service and log in to mysql Create a user to obtain the log file. mysql> CREATE USER 'sree'@'%' IDENTIFIED BY 'sree' Grant relevant permissions (copy permissions) *.* represents all tables in all libraries mysql> grant replication slave on *.* to 'sree'@'%'   Refresh permissions mysql> flush privileges mysql> show master status; | File | Position | master-bin.000004 | 120                      Slave configuration ==================== Modify the configuration file: Configure under [mysqld] [mysqld] server-id=2 #As long as it is different from the above.   Then log in to mysql mysql>  CHANGE MASTER TO     MASTER_LOG_FILE='master-bin.000004 ', #above file        MASTER_LOG_POS = 120 ; #The above position        MASTER_HOST='192.168.249.130', #The ip address of the main library         MASTER_USER = 'sree',         MASTER_PASSWORD = 'sree',  Then start slave ============ mysql> show slave status\G; see: ===  Slave_IO_Running: Yes  Slave_SQL_Running: Yes It means that it was successful.     Errors in the whole process: Slave_IO_Running: Connecting 1. Mine is the wrong host ip. 2. There are still some firewalls on the Internet that are not turned off I use centos7 to turn off the firewall: systemctl stop firewalld 3. There is also a mistake in the above-mentioned secret.   Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs This error generally occur when we clone the master to slaver. Delete auto.cnf of mysql, and then restart the service.
### 回答1: MySQL中的modify和change都是用于修改表结构的关键字。 modify用于修改表中已有的列的数据类型、约束条件等属性。 change用于修改表中已有的列的名称、数据类型、约束条件等属性。同时,它还可以在修改列的同时修改列的位置。 例如,下面的语句将修改表中的一列名为age的数据类型为int,并添加一个非空约束条件: ``` ALTER TABLE student MODIFY age INT NOT NULL; ``` 而下面的语句将修改表中的一列名为age的名称为new_age,并将其数据类型改为varchar(10): ``` ALTER TABLE student CHANGE age new_age VARCHAR(10); ``` ### 回答2: MySQL中有两个修改表结构的命令:modify和change。它们的作用都是对表进行列(column)修改,但是它们的语法和功能有所不同。 modify比较简单,它的语法为: ALTER TABLE table_name MODIFY COLUMN column_name datatype; 其中,table_name为表名,column_name为列名,datatype为修改后的数据类型。它的主要作用是修改列的数据类型。 change与modify不同,它的语法为: ALTER TABLE table_name CHANGE old_column_name new_column_name datatype; 其中,table_name为表名,old_column_name为原来的列名,new_column_name为新的列名,datatype为修改后的数据类型。对比modify,change除了可以修改数据类型外,还可以修改列名。 除了数据类型和列名,change还可以修改列的属性,比如更改列的长度、添加或删除列的默认值等。但是需要注意的是,如果要修改列的默认值,一定要记得给出旧列名,否则旧列的默认值就会丢失。 总的来说,modify主要修改数据类型,而change既可以修改数据类型,又可以修改列名和列属性,但是对于需要修改的内容,需要对原来的表结构进行一定的了解,以免造成不必要的错误。 ### 回答3: MySQL中,modify 和 change 是两个常用的关键词,常用于修改表结构,更改字段位置,更改字段名,更改字段数据类型等。下面我将详细介绍一下它们的区别和使用方法。 1. modify modify 是 MySQL 中修改表结构的一个关键词,其主要作用是修改表中的字段属性。通过使用 modify,我们可以修改表中指定字段的数据类型、默认值、长度等属性,从而修改数据库中存储的数据格式。其基本语法如下: ``` alter table 表名 modify 字段名 新数据类型; ``` 例如,我们可以通过以下语句将表中的 user_name 字段的数据类型从 varchar(20) 修改为 varchar(50): ``` alter table user modify user_name varchar(50); ``` 2. change change 也是 MySQL 中修改表结构的一个关键词,其主要作用是更改表中指定字段的字段名、数据类型、默认值等属性。与 modify 不同之处在于,change 可以更改字段的名称。其基本语法如下: ``` alter table 表名 change 原列名 新列名 新数据类型; ``` 例如,我们可以通过以下语句将表中的 user_name 字段的名称更改为 name,并将其数据类型从 varchar(20) 修改为 varchar(50): ``` alter table user change user_name name varchar(50); ``` 需要注意的是,如果我们仅仅想更改字段的名称,而不修改其数据类型、默认值等属性,可以使用 rename。其基本语法如下: ``` alter table 表名 change 原列名 新列名; ``` 例如,我们可以通过以下语句将表中的 user_name 字段的名称更改为 name: ``` alter table user change user_name name; ``` 总结来说,MySQL 中的 modify 和 change 都是用于修改表结构的关键词,它们可以修改和更改表中字段的数据类型、长度、默认值等属性。不同的是,modify 不能更改字段名称,而 change 可以更改名称。同时,如果我们仅仅想更改字段的名称,我们可以使用 rename。需要根据实际需求选择使用不同的关键词。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值