示例表:
瞬间更新列中的所有记录
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;