【MYSQL笔记】编辑数据

示例表:

瞬间更新列中的所有记录

update 表名 set 列名=设置的值

例:添加一列数据类型remark,将remark列所有值更新为“无特殊记录”

alter table tb add remark varchar(100);
update tb set remark='无特殊记录';

注 :在启动MYSQL监视器时可以加上--safe--updates选项,如果列上没有where条件就无法执行update或delete

只修改符合条件的记录:

update 表名 set 列名=设置的值 where 条件;

例:将列sales大于等于100的remark改为“优秀”

update tb set remark='优秀' where sales>=100;

例:将销售额最低的3条记录的备注修改为“加油”

思路:使用order by将列sales按升序排列,并用limit3对前3条记录进行select,然后向列remark中输入“加油”

update tb set remark='加油'
order by sales 
limit 3;

复制符合条件的记录:

仅复制指定记录:把符合条件的记录复制到其他表中

create table 新表名 select * from where

例:复制表tb的列结构和id为A101的记录,然后创建新表tb_A101

create table tb_A101
select * from tb
where id like 'A101';

例:将上述记录插入到已存在的表

insert into 已存在的表 select * from tb where id like 'A101';

 例:复制tb中按照销售额从高到第排在第2名到第5名的记录到新表

思路:当执行create table ... select ...时,使用order by 排序,然后使用Limit和offset指定要复制的记录数和开始复制的位置

create table tb_2to5
select *
from tb
order by sales desc
limit 4 offset1;

 删除符合条件的记录:

删除所有记录:

delete from 表名;

delete命令会删除记录,但是不会删除表的列结构。删除表本身时需要使用drop table命令

删除指定的记录:

delete from 表名 where 条件;

例:删除年龄小于30岁的员工记录

delete from tb where age<30;

排序后删除:

例:删除销售额排在最前面的4条记录

delete from tb 
order by sales desc
limit 4;

猜你喜欢

转载自blog.csdn.net/m0_52043808/article/details/124149724