Mysql 多表查询

链接表

union 链接表没有重复值

union all 链接全部值 有重复值

高级插入

INSERT INTO  test1 (id,`name`,age) SELECT id ,`name` ,age FROM  test2 WHERE id=101

替换重复数值

REPLACE TABLE  (字段)  VALUES (值)

删除多条数据

 DELETE FROM    表名  WHERE `name` ='值'   ORDER BY  id  DESC LIMIT ?

问题二-删除员工信息

2.1删除身份证号第三个字符大于8的所有员工.

 DELETE  FROM `员工` WHERE    SUBSTRING(`身份证号码`,3,1)>8

2.2 删除平均工资最高的部门门]的许姓员工

DELETE  FROM   `工龄`   WHERE  `部门`=
(SELECT t.`部门` FROM(SELECT  `部门`FROM  工龄    GROUP BY `部门`   ORDER BY  AVG(`目前薪资`)     DESC LIMIT 1 )t)   AND `姓名`   REGEXP '^许'

2.3 删除日前薪资为倒数十名且年龄在35岁以上的员工记录

DELETE    FROM  `工龄`    WHERE  YEAR(NOW())-YEAR(`出生日期`) >35    ORDER BY `目前薪资` LIMIT 10 

问题3-员工信息修改

1、将所有工龄大于20年的员工工资,上调10%

UPDATE    `工龄`  SET  `目前薪资`=`目前薪资`*1.2   WHERE  YEAR(NOW())-YEAR(`雇佣日期`)>20

2、将所有工资底于部门平均工资的员工工资上调10%

update  `工龄`   set `目前薪资`=`目前薪资`*1.1  where  员工编号 in
(select  t.员工编号 from (SELECT  员工编号  FROM  `工龄`    WHERE   `目前薪资`<(select AVG(`目前薪资`)  from 工龄)) t)

你可能感兴趣的:(Mysql)