首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

问两条话语

2012-12-25 
问两条语句本帖最后由 BaronZ 于 2012-11-27 19:47:56 编辑问两条语句,题目如下:1.Employees表字段:1.id 2

问两条语句
本帖最后由 BaronZ 于 2012-11-27 19:47:56 编辑 问两条语句,题目如下:
1.Employees表
字段:1.id 2.name 3.salary 4.department_id
2.Department表
字段:1.department_id 2.department_name

问题
1.把名字为"a"的工资(salary)提升10.5%
2.求出department_id为30的department_name和员工的数量
[最优解释]


--问题一
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

[其他解释]
引用:
引用:SQL code?123456789UPDATE  employees SET     salary = salary * 1.105 WHERE   NAME = 'a'   SELECT  departmentname ,         COUNT(1) 员工数量 FROM    department WHERE   d……
这个不用太在意,但是有这样的理论,count(*)需要检查列数,而你希望的只是行数,所以*号往往会带来一定的开销,但是实际用处的时候其实感觉不出来,而1,其实只是true的意思,你可以count(2)、count(3),意思就是统一一行,而不需要管它有多少列。我个人比较喜欢用,绝大部分情况下不需要在乎这个,但是在外联结:left/right join的时候,由于存在null值,所以此时要注意,有可能你要count(某一列),而不是*或者1
[其他解释]
引用:
引用:
引用:
引用:SQL code?123456789UPDATE  employees SET     salary = salary * 1.105 WHERE   NAME = 'a'   SELECT  departmentname ,         COUNT(1) 员……


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

[其他解释]
引用:
引用:
引用:
引用:
引用:
引用:
引用:
引用:SQL code?123456789UPDATE  employees SE……
full join 是left join 和right join的融合。不一样的。
[其他解释]
update from 表 set salary=salary*1.105 where name='a'

select department_name from 表 where department_id=30
[其他解释]
引用:
SQL code?12345678910--问题一update employees set salary=salary*10.5% wherename='a'--问题二select depart_name,COUNT(id)as 员工数量  from department d where d.department_id=30 join employees e  ond.d……



这个应该这样写吧

update employees
 set salary=salary*1.105 where
name='a'

------其他解决方案--------------------


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

[其他解释]
引用:
引用:
引用:
引用:
引用:
引用:SQL code?123456789UPDATE  employees SET     salary = salary * 1.105 WHERE   NAME = 'a……
没有区别,但是记住:只有inner join 才等于join ,如果left/right join的话就不能用join
[其他解释]
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
[其他解释]
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
[其他解释]
引用:
引用:引用:
引用:
引用:
引用:
引用:SQL code?123456789UPDATE  employees SET     salary = ……

正解。。。
[其他解释]
在做作业,,,?
[其他解释]
引用:
在做作业,,,?



[其他解释]
引用:
update from 表 set salary=salary*1.105 where name='a'

select department_name from 表 where department_id=30

呃,第二个有问题。。。没看到我有写员工数量吗?
[其他解释]
引用:
SQL code?123456789UPDATE  employees SET     salary = salary * 1.105 WHERE   NAME = 'a'   SELECT  departmentname ,         COUNT(1) 员工数量 FROM    department WHERE   department_id = 30 GROUP……
为什么是count(1)?
[其他解释]
感冒不舒服,睡觉了,有问题继续问,我明天再回复,没问题的话请结贴
[其他解释]
引用:
引用:
引用:SQL code?123456789UPDATE  employees SET     salary = salary * 1.105 WHERE   NAME = 'a'   SELECT  departmentname ,         COUNT(1) 员工数量 FROM    department WH……


你的语句和5楼的一样吗?
你好像看错题了。你不和employees表连接能得出员工数量吗
[其他解释]
引用:
引用:
引用:
引用:
引用:SQL code?123456789UPDATE  employees SET     salary = salary * 1.105 WHERE   NAME = 'a'   SELECT  departmentname……

inner join和join有区别吗?
[其他解释]
好好学习,天天向上。
[其他解释]
引用:
引用:
引用:
引用:
引用:
引用:
引用:SQL code?123456789UPDATE  employees SET     salary = salary * 1.……

那和full join一样吗?
[其他解释]
引用:
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

就这个

热点排行
Bad Request.