西南石油大学大数据库实验项目二.docx

上传人:b****3 文档编号:538653 上传时间:2022-10-10 格式:DOCX 页数:25 大小:1.88MB
下载 相关 举报
西南石油大学大数据库实验项目二.docx_第1页
第1页 / 共25页
西南石油大学大数据库实验项目二.docx_第2页
第2页 / 共25页
西南石油大学大数据库实验项目二.docx_第3页
第3页 / 共25页
西南石油大学大数据库实验项目二.docx_第4页
第4页 / 共25页
西南石油大学大数据库实验项目二.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

西南石油大学大数据库实验项目二.docx

《西南石油大学大数据库实验项目二.docx》由会员分享,可在线阅读,更多相关《西南石油大学大数据库实验项目二.docx(25页珍藏版)》请在冰豆网上搜索。

西南石油大学大数据库实验项目二.docx

西南石油大学大数据库实验项目二

西南石油大学实验报告

课程名称:

数据库原理与应用

 

插入你的照片

实验项目名称:

实验项目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.查询参与

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1