目录
更新记录
格式:修改列的所有记录
update 表名 set 列名 = 设置的值;
ex:
alter table tb add remark varchar(100);
update tb set remark = '无特殊记录';
select * from tb;
格式:只修改符合条件的记录
update 表名 set 列名 = 设置的值where条件;
ex:
查看销售信息表tb就会发现有几个销售额超过100万元的优秀成绩
update tb set remark = '优秀' where sales >= 100;
select * from tb;
ex:
给销售额较低的记录输入鼓励的信息。给所有销售额排序,并将“加油!”输入到销售额最低的3条记录的备注中
update tb set remark = '加油!' order by sales limit 3;
select * from tb;
复制符合条件的记录
仅复制指定记录
create table tb_A101 select * from tb
where empid like 'A101';
select * from tb_A101;
如果要将记录插入到已存在的表中:
insert into 已存在的表select * from tb where empid like 'A101';
排序后复制
ex:
创建新表tb_2to5,提取销售信息表tb中,按照销售额从高到低的顺序排在第2名到第5名的记录;
create table tb_2to5
select* from tb
order by sales desc limit 4 offset 1;
select* from tb_2to5;
删除复合条件的记录
格式:删除符合条件的记录
delete from 表名 where 条件
ex:
删除表tb1I中列age的值小于30的记录。删除记录后,试着显示表tb1I的所有记录。
delete from tb1l where age < 30;
select * from tb1l;
排序后删除
ex:
删除列sales中值最大的4条记录,然后显示表tb_copy的所有记录。
delete from tb_copy
order by sales desc limit 4;
select * from tb_copy;
练习题
问题一:
提取表t_stock的列c中除距今5年前以外的值的记录并创建表t_stock_new。这个“5年前”的时间用下面的命令表示。假设这个处理是在2018年进行的
create table t_stock_new
select * from t_stock where c > now() - interval 5 year;
select * from t_stock_new;