做题总结Word文档下载推荐.docx
- 文档编号:5624071
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:10
- 大小:15.75KB
做题总结Word文档下载推荐.docx
《做题总结Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《做题总结Word文档下载推荐.docx(10页珍藏版)》请在冰点文库上搜索。
--然后课根据这些projid查到对应的名称在t_project;
selectprojnamefromt_projectwhereprojidin(1,2,3);
PROJNAME
------------------------------
oa系统
学生管理系统
图书管理系统
--综上所得(查询某个程序员jack参与的项目名称)为:
selectprojnamefromt_project
2whereprojidin(selectprojidfrom
3t_prog_projwhereprogid=(
4selectprogidfromt_programmer
5whereprogname='
));
--查询参与做网上银行系统的所有程序员
--首先的指导网上银行系统的projid是通过表t_project
selectprojidfromt_projectwhereprojname='
网上银行系统'
4
--然后通过表t_prog_proj得到projid所对应的程序员的progid:
selectprogidfromt_prog_projwhereprojid=4;
--然后通过表t_programmer得到progid所对应的程序员的姓名:
selectprognamefromt_programmerwhereprogidin(3,4);
PROGNAME
--------------------
rose
smith
--所以综上可得所求:
selectprognamefromt_programmer
2whereprogidin(selectprogidfrom
3t_prog_projwhereprojid=(
4selectprojidfromt_project
5whereprojname='
--查询参与oa系统但是没有参与图书管理系统的程序员的姓名:
--首先查询出oa系统和图书管理系统的projid
oa系统'
图书管理系统'
--然后查询出projid所对应的程序员的progid在表t_prog_proj中:
selectprogidfromt_prog_projwhereprojid=1;
6
selectprogidfromt_prog_projwhereprojid=3;
5
--通过作差集可以求出(查询参与oa系统但是没有参与图书管理系统的程序员的姓名)
--minus显示存在第一个集合中,而不存在第二个集合中的数据。
selectprogidfromt_prog_projwhereprojid=1
2minus
3selectprogidfromt_prog_projwhereprojid=3;
4;
selectprogidfromt_prog_projwhereprojid=3;
*
第3行出现错误:
ORA-00911:
无效字符
ed
已写入fileafiedt.buf
1selectprogidfromt_prog_projwhereprojid=1
3*selectprogidfromt_prog_projwhereprojid=3
4/
--所以总的代码是:
selectprognamefromt_programmerwhereprogid
2in(selectprogidfromt_prog_projwhereprojid
3=(selectprojidfromt_projectwhereprojname=
4'
)
5minus
6(selectprogidfromt_prog_projwhereprojid
7=(selectprojidfromt_projectwhereprojname=
8'
)));
--查询公司每个程序员年薪,按照年薪高低排序
selectprogid"
编号"
progname"
姓名"
sal"
月薪"
2sal*12"
年薪"
3fromt_programmer
4orderbysal*12desc;
编号姓名月薪年薪
--------------------------------------------------
4smith600072000
1jack500060000
5scott460055200
6richel450054000
2tom400048000
3rose300036000
已选择6行。
--查询每个项目的参与程序员的人数,月度工资开支总数
--思路:
这三张表本来就是一张表:
就是因为每个项目
--有多个人参加,每个人可以参加多个项目:
--如果和成一张表,则就能明显统计出,每个人参加的
--项目的总数和每个项目参加的总人数:
--首先将三张表合成一张表:
selectpg.prognamefrom
2t_programmerpg,t_projectpj,
3t_prog_projpp
4where
5pg.progid=pp.progid
6and
7pp.projid=pj.projid;
jack
tom
scott
richel
已选择14行。
--上面的名字子所以会重复出现,是因为每个人参加了多个项目:
selectpj.projnamefrom
网上银行系统
7pp.projid=pj.projid
8orderbypj.projname;
--也正是如此,因为每个项目有多个人参加,所以每个项目才会对此出现
--所以讲上面三张联合的表作为一张表,在里面可以清楚的
--显示出每个项目有多少个人参加,每个人参加了多少个项目:
--因此:
(?
查询每个项目的参与程序员的人数,月度工资开支总数)
selectt.projname"
项目"
count(t.progname)"
参与人数"
sum(t.sal)"
总工资"
2from(selectpj.projnameprojname,
3pg.prognameprogname,
4pg.salsalfrom
5t_programmerpg,t_projectpj,t_prog_projpp
6where
7pg.progid=pp.progid
8and
9pp.projid=pj.projid
10)t
11groupbyt.projname;
项目参与人数总工资
--------------------------------------------------
学生管理系统522600
网上银行系统29000
oa系统312500
图书管理系统418100
spooloff;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 总结