西南石油大学数据库实验项目二
西南石油大学实验报告课程名称:数据库原理与应用插入你的照片实验项目名称:实验项目2专业年级班级、姓名、学号:电子邮件地址:实验所用机器名: 实验时间地点:实验指导教师: 成绩批改人批改日期一、实验课时:4二、实验目的(1) 理解查询的概念和方法。(2) 掌握SELECT语句在单表查询中的应用。(3) 掌握SELECT语句在多表连接查询中的应用。(4) 掌握SELECT语句在嵌套查询中的应用。(5) 掌握SELECT语句在集合查询中的应用。(6) 主要掌握使用“查询分析器”进行查询。三、实验环境(1) PC机。(2) SQL Server 2008。四、实验内容?#23433;?#39588; 以下查询均使用实验项目1中创建的COMPANY数据库。1.单表查询(1)基本查询。Q0. 使用查询分析器从Employee表中检索出所?#24615;?#24037;的姓名。SELECT FNAME,LNAME FROM EMPLOYEE;Q1. 查询所?#24615;?#24037;的FNAME、LNAME、SSN、SEX和SALARY,并分别将SEX和SALARY的列名重命名为“性别”、“工资”。SELECT FNAME,LNAME,SSN,SEX 性别,SALARY 工资FROM EMPLOYEE;Q2.从Employee表中检索出员工的FNAME、LNAME、SSN、BDATE、SALARY等字段,并分别加上“名”、“姓”、“社会保险号”、“生日”、“工资”的标题。员工的排序规则为:首先按工?#23454;?#38477;序排?#26657;?#28982;后按FNAME的字母升序排?#23567;ELECT FNAME 姓,LNAME 名,SSN 社会保险号,BDATE 生日,SALARY 工资FROM EMPLOYEEORDER BY SALARY DESC,FNAME;Q3. 查询不重复的员工工资值。SELECT DISTINCT SALARY FROM EMPLOYEE;Q4. 查询没有直接上司的员工姓名。SELECT FNAME,LNAME,SUPERSSN FROM EMPLOYEEWHERE SUPERSSN IS NULL;(2) 基于WHERE子句进行数据查询。1)基于比较条件。Q5. 从Employee表中查询出工资大于等于40000的员工资料。SELECT * FROM EMPLOYEEWHERE SALARY>=40000;Q6. 查询所有的女性家属的全部信息,并按生日的降序排?#23567;ELECT * FROM DEPENDENT WHERE SEX='F'ORDER BY BDATE DESC ;Q7. 查询所有不属于5号部门的员工信息。SELECT * FROM EMPLOYEEWHERE (NOT DNO='5');Q8. 利用OR关键字查询属于1号或4号部门的员工信息。SELECT * FROM EMPLOYEEWHERE DNO='1' OR DNO='4'Q9.检索姓名为John B.Smith的员工的SSN、性别、出生日期和地址。SELECT SSN,SEX,BDATE,ADDRESS FROM EMPLOYEEWHERE FNAME='JOHN' AND LNAME ='SMITH' AND MINIT='B';Q10. 查询1960年以后出生的员工信息(注意日期写完整)。SELECT * FROM EMPLOYEEWHERE BDATE >='1960-01-01';2)基于BETWEEN子句的查询。Q11. 从Employee表中查询出1960年——1970年之间出生的员工资料(注意日期写完整)。SELECT * FROM EMPLOYEEWHERE BDATE BETWEEN '1960-01-01' AND '1970-12-31' ;3)基于IN子句的查询。Q12. 从Employee表中查询出部门号为4或者5的员工资料。SELECT * FROM EMPLOYEEWHERE DNO IN (4,5);4)基于LIKE子句的查询。Q13. 从Employee表中查询出LNAME中含有字母o的员工资料。SELECT * FROM EMPLOYEEWHERE LNAME LIKE '%o%';Q14. 查询项目名称以P开头?#21335;?#30446;信息。SELECT * FROM PROJECTWHERE PNAME LIKE 'P%';Q15.检索居住在Houston的员工所?#34892;?#24687;。SELECT * FROM EMPLOYEEWHERE ADDRESS LIKE '%Houston%';(3) 使用计算列和汇总函数查询。Q16. 从Employee表中检索出员工的FNAME、LNAME、SSN、SALARY等字段(其中SALARY需换算成人民币,汇率假定为1美元=6人民?#20197;?,并分别加上“名”、“姓”、“社会保险号”、“人民币工资”的标题。SELECT FNAME 名,LNAME 姓,SSN 社会保险号,SALARY*8 人民币工资 FROM EMPLOYEE;Q17. 统计所?#24615;?#24037;的平均工资。SELECT AVG(SALARY) AS 员工平均工资FROM EMPLOYEE;Q18. 查询所?#24615;?#24037;在所有项目上每周工作的总小时数。SELECT SUM(HOURS) AS 总小时数FROM WOEKS_ON;Q19. 查询各个部门员工的平均工资,显示部门号和对应的平均工资值。SELECT DNO,AVG(SALARY) AS 平均工资FROM EMPLOYEEGROUP BY DNO;Q20. 查询每个员工所有参与项目的每周工作总小时数,显示员工SSN和总小时数。SELECT ESSN, SUM(HOURS) AS 总小时数 FROM WOEKS_ONGROUP BY ESSN;Q21. 列出所有参与了项目的员工编号及其参与项目数。SELECT DISTINCT ESSN,COUNT(*)FROM WOEKS_ON GROUP BY ESSN Q22. 统计参与了2个以上项目的员工编号和其参与项目的每周工作平均时间。SELECT ESSN ,COUNT(*) AS 项目数,AVG(HOURS) AS 每周工作平均时间FROM WOEKS_ONGROUP BY ESSNHAVING COUNT(*)>2; Q23. 查询有2个以上?#34892;?#21592;工的部门编号和该部门的总人数(包括男女员工)(选做)。SELECT DNO, COUNT(*) AS 总人数FROM EMPLOYEEGROUP BY SEX,DNOHAVING
|
- 关 键 ?#21097;?/dt>
- 西南 石油大学 数据库 实验 项目
