相关子查询的效率最低,尽量用表连接的方式替代!
数据添加:
insert语法:
insert into 表名(字段1,字段2,....) value(值1,值2,....),(值1,值2,.....);
insert语句方言:
只能用在SQL查询语句中:
insert into 表名 set 字段1=值1,字段2=值2,.....;
insert子查询:
insert语句里面也可以写select子句
ignore关键字:
ignore关键字会让insert只插入数据库不存在的记录
insert ignore into 表名 .....;
数据修改:
update语法:
update [ignore] 表名 set 字段1=值1,字段2=值2,.... [where 条件1....] [order by....] [limit ....];#这里的limit只能有一个参数,也就是说只能修改从第一行开始的语句
update表连接:
因为相关子查询效率非常低,所以我们可以利用表连接的方式来改造update语句,可以修改多张表的记录
update 表1 join 表2 on 条件 set 字段1=值1,字段2=值2,....;
或:
update 表1,表2
set 字段1=值1,字段2=值2,...
where 连接条件;
把Allen调往research部门,职务调整为analyst:
update t_emp e JOIN t_dept d set e.deptno=d.deptno,e.job="ANALYST" where e.ename="ALLEN" and d.dname="RESEARCH";
把底薪低于公司平均底薪的员工,底薪增加150:
UPDATE t_emp e JOIN (SELECT AVG(sal) as avg from t_emp) t ON e.sal<t.avg set e.sal=e.sal+150;
update表外链接:
update 表1 [left|right] join 表2 on 条件 set 字段1=值1,字段2=值2,....;
数据删除:
delete语法:
delete [ignore] from 表名 [where 条件1,条件2,...] [order by ...] [limit ...];
truncate语句:用来清空对应的表格 例:truncate table XXX;
delete表连接:
delete 表1,... from 表1 join 表2 on 条件 [where 条件1,条件2,...] [order by ...] [limit ...];
Repetition is the mother of all learning重复是学习之母。等到长大,学知识,技巧、爱情、事业、交流....倘若懂得行动的力量,不怕重复,不怕犯错误,那就大有希望靠近幸福了。