mysql中alter与update,MySQL中update和alter使用区别

最近在参与IDO老徐的MySQL21天打卡系列,今天在回顾的时候看到一个作业题目是更新表里某个字段值,突然不知道该用update还是alter了,脑子里一下分不清两者的区别了,于是找资料学习了下,现在算是搞清楚了。分享如下:

SQL语句中涉及到修改的命令有alter、update,但是两者之间具体有什么区别,分别使用在什么场景呢?

alter:用来修改表的数据结构(包括表名和字段名以及字段的增、删、改)

例如:

修改表名:> alter table istester rename to idoxu;

----把表名由istester改成idoxu,其中to可带可不带

修改字段名:> alter table istester change c_name u_name varchar(50);

----把字段名由c_name改成u_name,如果字段属性不变,change  源字段名  目标字段名  即可。

增加字段:> alter table idoxu6addsex int not null default 1;

----往表idoxu6中新增一个性别字段sex,需要至少指定一个字段属性,不指定属性添加不成功

删除字段:> alter table istesterdropcolumn hobby;

----删除表istester中的hobby字段,其中column可带可不带

修改字段类型:> alter table idoxu6modifyc_name varchar(20) not null default 'my';

或者> alter table idoxu6changec_name c_name varchar(20) not null default 'my';

----修改表idoxu6中字段c_name的属性为字符型,长度20,非空,默认值是my

----使用change的话需要写两次字段名,即:change  源字段名  源字段名

update:用来修改表中字段的值

例如:

字段name原来的值是张三,现在要改成李四:

> update idoxu set name='李四' where name='张三';

----如果没有where条件,会把表中所有name都改成“李四”

删除字段name的值:

> update idoxu set name=null where name='张三';

另外还可能涉及到性能、查询效率等问题,这里就不深入了,先掌握基础的应用。

你可能感兴趣的:(mysql中alter与update,MySQL中update和alter使用区别)