西南石油大学大数据库实验项目二.docx
- 文档编号:538653
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:25
- 大小:1.88MB
西南石油大学大数据库实验项目二.docx
《西南石油大学大数据库实验项目二.docx》由会员分享,可在线阅读,更多相关《西南石油大学大数据库实验项目二.docx(25页珍藏版)》请在冰豆网上搜索。
西南石油大学大数据库实验项目二
西南石油大学实验报告
课程名称:
数据库原理与应用
插入你的照片
实验项目名称:
实验项目2
专业年级班级、、学号:
电子地址:
实验所用机器名:
实验时间地点:
实验指导教师:
成绩
批改人
批改日期
一、实验课时:
4
二、实验目的
(1)理解查询的概念和方法。
(2)掌握SELECT语句在单表查询中的应用。
(3)掌握SELECT语句在多表连接查询中的应用。
(4)掌握SELECT语句在嵌套查询中的应用。
(5)掌握SELECT语句在集合查询中的应用。
(6)主要掌握使用“查询分析器”进行查询。
三、实验环境
(1)PC机。
(2)SQLServer2008。
四、实验容及步骤
以下查询均使用实验项目1中创建的COMPANY数据库。
1.单表查询
(1)基本查询。
Q0.使用查询分析器从Employee表中检索出所有员工的。
SELECTFNAME,LNAMEFROMEMPLOYEE;
Q1.查询所有员工的FNAME、LNAME、SSN、SEX和SALARY,并分别将SEX和SALARY的列名重命名为“性别”、“工资”。
SELECTFNAME,LNAME,SSN,SEX性别,SALARY工资
FROMEMPLOYEE;
Q2.从Employee表中检索出员工的FNAME、LNAME、SSN、BDATE、SALARY等字段,并分别加上“名”、“姓”、“社会保险号”、“生日”、“工资”的标题。
员工的排序规则为:
首先按工资的降序排列,然后按FNAME的字母升序排列。
SELECTFNAME姓,LNAME名,SSN社会保险号,BDATE生日,SALARY工资
FROMEMPLOYEE
ORDERBYSALARYDESC,FNAME;
Q3.查询不重复的员工工资值。
SELECTDISTINCTSALARYFROMEMPLOYEE;
Q4.查询没有直接上司的员工。
SELECTFNAME,LNAME,SUPERSSNFROMEMPLOYEE
WHERESUPERSSNISNULL;
(2)基于WHERE子句进行数据查询。
1)基于比较条件。
Q5.从Employee表中查询出工资大于等于40000的员工资料。
SELECT*FROMEMPLOYEE
WHERESALARY>=40000;
Q6.查询所有的女性家属的全部信息,并按生日的降序排列。
SELECT*FROMDEPENDENT
WHERESEX='F'
ORDERBYBDATEDESC;
Q7.查询所有不属于5号部门的员工信息。
SELECT*FROMEMPLOYEE
WHERE(NOTDNO='5');
Q8.利用OR关键字查询属于1号或4号部门的员工信息。
SELECT*FROMEMPLOYEE
WHEREDNO='1'ORDNO='4'
Q9.检索为JohnB.Smith的员工的SSN、性别、出生日期和地址。
SELECTSSN,SEX,BDATE,ADDRESSFROMEMPLOYEE
WHEREFNAME='JOHN'ANDLNAME='SMITH'ANDMINIT='B';
Q10.查询1960年以后出生的员工信息(注意日期写完整)。
SELECT*FROMEMPLOYEE
WHEREBDATE>='1960-01-01';
2)基于BETWEEN子句的查询。
Q11.从Employee表中查询出1960年——1970年之间出生的员工资料(注意日期写完整)。
SELECT*FROMEMPLOYEE
WHEREBDATEBETWEEN'1960-01-01'AND'1970-12-31';
3)基于IN子句的查询。
Q12.从Employee表中查询出部门号为4或者5的员工资料。
SELECT*FROMEMPLOYEE
WHEREDNOIN(4,5);
4)基于LIKE子句的查询。
Q13.从Employee表中查询出LNAME中含有字母o的员工资料。
SELECT*FROMEMPLOYEE
WHERELNAMELIKE'%o%';
Q14.查询项目名称以P开头的项目信息。
SELECT*FROMPROJECT
WHEREPNAMELIKE'P%';
Q15.检索居住在Houston的员工所有信息。
SELECT*FROMEMPLOYEE
WHEREADDRESSLIKE'%Houston%';
(3)使用计算列和汇总函数查询。
Q16.从Employee表中检索出员工的FNAME、LNAME、SSN、SALARY等字段(其中SALARY需换算成人民币,汇率假定为1美元=6人民币元),并分别加上“名”、“姓”、“社会保险号”、“人民币工资”的标题。
SELECTFNAME名,LNAME姓,SSN社会保险号,SALARY*8人民币工资
FROMEMPLOYEE;
Q17.统计所有员工的平均工资。
SELECTAVG(SALARY)AS员工平均工资
FROMEMPLOYEE;
Q18.查询所有员工在所有项目上每周工作的总小时数。
SELECTSUM(HOURS)AS总小时数
FROMWOEKS_ON;
Q19.查询各个部门员工的平均工资,显示部门号和对应的平均工资值。
SELECTDNO,AVG(SALARY)AS平均工资
FROMEMPLOYEE
GROUPBYDNO;
Q20.查询每个员工所有参与项目的每周工作总小时数,显示员工SSN和总小时数。
SELECTESSN,SUM(HOURS)AS总小时数
FROMWOEKS_ON
GROUPBYESSN;
Q21.列出所有参与了项目的员工编号及其参与项目数。
SELECTDISTINCTESSN,COUNT(*)
FROMWOEKS_ONGROUPBYESSN
Q22.统计参与了2个以上项目的员工编号和其参与项目的每周工作平均时间。
SELECTESSN,COUNT(*)AS项目数,AVG(HOURS)AS每周工作平均时间
FROMWOEKS_ON
GROUPBYESSN
HAVINGCOUNT(*)>2;
Q23.查询有2个以上男性员工的部门编号和该部门的总人数(包括男女员工)(选做)。
SELECTDNO,COUNT(*)AS总人数
FROMEMPLOYEE
GROUPBYSEX,DNO
HAVINGCOUNT(*)>2ANDSEX='M';
2.多表连接查询(使用JOIN)
Q24.查询部门编号、名称及该部门经理的。
SELECTDEPARTMENT.DNUMBER,DEPARTMENT.DNAME,
EMPLOYEE.FNAME+','+EMPLOYEE.MINIT+','+EMPLOYEE.LNAMEAS
FROMDEPARTMENT
JOINEMPLOYEE
ONDEPARTMENT.MGRSSN=EMPLOYEE.SSN
Q25.查询所有员工(包括没有家属的员工)、编号及其家属。
SELECTEMPLOYEE.*,DEPENDENT.DEPENDENT_NAME
FROMEMPLOYEE
LEFTOUTERJOINDEPENDENT
ONEMPLOYEE.SSN=DEPENDENT.ESSN
Q26.查询所有为Research部门工作的员工及地址。
SELECTFNAME,MINIT,LNAME,ADDRESS
FROMEMPLOYEEJOINDEPARTMENT
ONEMPLOYEE.DNO=DEPARTMENT.DNUMBER
WHEREDEPARTMENT.DNAME='RESEARCH';
Q27.对于所有位于Stafford的项目,查询项目的编号、项目负责部门编号以及该部门经理的姓、地址、生日。
SELECTPNUMBER,DNUM,LNAME,ADDRESS,BDATE
FROMEMPLOYEE
JOINPROJECT
ON(EMPLOYEE.DNO=PROJECT.DNUM)
JOINDEPT_LOCATIONS
ON(PROJECT.DNUM=DEPT_LOCATIONS.DNUMBER)
WHEREDLOCATION='Stafford';
Q28.查询有两个或以上家属的员工(此题较难,若不能完成者可只查询出员工的SSN而不是)。
SELECTSSN
FROMEMPLOYEE
JOINDEPENDENTON(EMPLOYEE.SSN=DEPENDENT.ESSN)
GROUPBYSSN
HAVINGCOUNT(SSN)>2;
Q29.查询在ProductX项目上每周工作时间超过10小时的部门5的员工。
SELECTFNAME,LNAME
FROMEMPLOYEE
JOINWOEKS_ONON(EMPLOYEE.SSN=WOEKS_ON.ESSN)
JOINPROJECTON(WOEKS_ON.PNO=PROJECT.PNUMBER)
WHEREPROJECT.PNAME='PRODUCTX'
Q30.对于每个项目,列出项目名称以及所有员工在此项目上工作的总时间。
SELECTPNAME,SUM(HOURS)
FROMWOEKS_ON
JOINPROJECTON(WOEKS_ON.PNO=PROJECT.PNUMBER)
GROUPBYPNAME;
Q31.对于每个部门,列出部门名称以及此部门员工的平均工资。
SELECTDNAME,AVG(SALARY)
FROMEMPLOYEE
JOINDEPARTMENTON(EMPLOYEE.DNO=DEPARTMENT.DNUMBER)
GROUPBYDNAME;
Q32.对于每个员工(包括无上司员工),查询其以及他/她的直接上司的。
SELECTE1.LNAME+','+E1.FNAME员工,E2.LNAME+','+E2.FNAME上司
FROM[Company_Henianchen].[dbo].EMPLOYEEE1
leftJOINCompany_Henianchen.dbo.EMPLOYEEE2ON(E1.SUPERSSN=E2.SSN)
Q33.查询Company数据库中所有员工SSN与DNAME(部门名称)的组合。
SELECTSSN,DNAME
FROMEMPLOYEE
JOINDEPARTMENTON(EMPLOYEE.DNO=DEPARTMENT.DNUMBER)
Q34.查询有两个或以上“工资大于等于30000员工”的部门名称。
3.嵌套查询(子查询)
Q35.查询Research部门的员工。
SELECTLNAME+','+FNAME
FROMEMPLOYEE
whereDNO=(SELECTDNUMBER
FROMDEPARTMENTWHEREDNUMBER=5)
Q36.查询参与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 石油大学 数据库 实验 项目