本帖最后由 BaronZ 于 2012-11-27 19:47:56 编辑

解决方案 »

  1.   

    update from 表 set salary=salary*1.105 where name='a'select department_name from 表 where department_id=30
      

  2.   


    --问题一
    update employees
     set salary=salary*10.5% where
    name='a'
    --问题二
    select depart_name,COUNT(id)as 员工数量  from 
    department d 
    where d.department_id=30 join employees e  on
    d.department_id=e.department_id
      

  3.   

    这个应该这样写吧update employees
     set salary=salary*1.105 where
    name='a'
      

  4.   

    UPDATE  employees
     SET     salary = salary * 1.105
     WHERE   NAME = 'a'
     
     SELECT  departmentname ,
             COUNT(1) 员工数量
     FROM    department
     WHERE   department_id = 30
     GROUP BY departmentname
      

  5.   

    这个不用太在意,但是有这样的理论,count(*)需要检查列数,而你希望的只是行数,所以*号往往会带来一定的开销,但是实际用处的时候其实感觉不出来,而1,其实只是true的意思,你可以count(2)、count(3),意思就是统一一行,而不需要管它有多少列。我个人比较喜欢用,绝大部分情况下不需要在乎这个,但是在外联结:left/right join的时候,由于存在null值,所以此时要注意,有可能你要count(某一列),而不是*或者1
      

  6.   

    你的语句和5楼的一样吗?
    你好像看错题了。你不和employees表连接能得出员工数量吗
      

  7.   


    UPDATE  employees
    SET     salary = salary * 1.105
    WHERE   NAME = 'a'
       
    SELECT  departmentname ,
            COUNT(b.id) 员工数量
    FROM    department a
            INNER JOIN Employees b ON a.department_id = B.department_id
    WHERE   department_id = 30
    GROUP BY departmentname
      

  8.   

    没有区别,但是记住:只有inner join 才等于join ,如果left/right join的话就不能用join
      

  9.   

    update Employees set salary=salary*1.105 where name='a'select department_name,count(*) as '员工数量' 
    from Employees a,Department b
    where a.department_id=b.department_id and b.department_id=30
      

  10.   

    update from Employees set salary=salary*1.105 where name='a'select department_name,count(id) from Department where department_id=30  GROUP BY departmentname
      

  11.   

    full join 是left join 和right join的融合。不一样的。