SWPU2019数据库实验二
SWPU2019数据库实验二

SWPU2019数据库实验二

针对于2021.5.17日晚的sqlserver数据库实验二的记录,仅供参考,如有抄袭行为与我无关

把USE Company_huanghe改成自己的就可以了。也可以不要这一句,对本次实验不影响。

另外提示一下,语句一定要自己去跑一下,理解一下。千万不要拿原图!图片是唯一的,数据库名是唯一的,直接拿原图的话,会出问题的。

1.单表查询

(1)基本查询。

Q0. 使用查询分析器从Employee表中检索出所有员工的姓名。

代码/截图:

USE Company_huanghe

select LNAME+FNAME as NAME from Employee

Q0

 

Q1. 使用查询分析器从Employee表中检索出员工的FNAME、LNAME、SSN、BDATE、SALARY等字段,并分别加上“名”、“姓”、“社会保险号”、“生日”、“工资”的标题。员工的排序规则为:首先按工资的降序排列,然后按FNAME的字母升序排列。

代码/截图:

USE Company_huanghe

select FNAME AS 名,lname as 姓,SSN as 社会保险号,BDATE as 生日,SALARY as 工资 from Employee

order by SALARY DESC,FNAME ASC

Q1

 

Q2. Retrieve all distinct salary values.

查询不重复的员工工资值。

代码/截图:

USE Company_huanghe

select DISTINCT SALARY from Employee

Q2

 

Q3. Retrieve the names of all employees who do not have supervisors.

查询没有直接上司的员工姓名。

代码/截图:

USE Company_huanghe

select LNAME+FNAME as NAME from Employee

Where superssn is null

Q3

 

 

(2) 基于WHERE子句进行数据查询。

1)基于比较条件。

Q4. 从Employee表中查询出工资大于等于40000的员工资料。

代码/截图:

USE Company_huanghe

select * FROM Employee

WHERE SALARY>=40000

Q4

 

2)基于BETWEEN子句的查询。

Q5. 从Employee表中查询出1960年——1970年之间出生的员工资料。

代码/截图:

USE Company_huanghe

SELECT*FROM EMPLOYEE

WHERE Bdate BETWEEN'1960-01-01'AND'1970-01-01';

Q5

 

3)基于IN子句的查询。

Q6. 从Employee表中查询出部门号为4或者5的员工资料。

代码/截图:

USE Company_huanghe

select * FROM Employee

WHERE DNO IN('4' ,'5')

Q6

 

4)基于LIKE子句的查询。

Q7. 从Employee表中查询出LNAME中含有字母o的员工资料。

代码/截图:

USE Company_huanghe

select * FROM Employee

WHERE LNAME LIKE '%O%'

Q7

 

 

(3) 使用计算列查询。

Q8. 从Employee表中检索出员工的FNAME、LNAME、SSN、SALARY等字段(其中SALARY需换算成人民币,汇率假定为1美元=8人民币元),并分别加上“名”、“姓”、“社会保险号”、“人民币工资”的标题。

代码/截图:

USE Company_huanghe

select FNAME AS 名,lname as 姓,SSN as 社会保险号,SALARY *8 as 人民币工资 from Employee

Q8

 

2. 多表连接查询(使用JOIN)

Q9. Retrieve the name and address of all employees who work for the ‘Research’ department.

查询所有为Research部门工作的员工姓名及地址。

代码/截图:

USE Company_huanghe

SELECT ADDRESS,FNAME+LNAME AS NAME

FROM Department INNER JOIN Employee on Department.DNUMBER=Employee.DNO

where DNUMBER=5

Q9

 

Q10. For every project located in ‘Stafford’, list the project number, the controlling department number, and the department manager’s last name, address, and birthdate.

对于所有位于Stafford的项目,查询项目的编号、项目负责部门编号以及该部门经理的姓、地址、生日。

代码/截图:

USE Company_huanghe

SELECT PNUMBER,DNUM,LNAME,ADDRESS,BDATE

FROM EMPLOYEE JOIN PROJECT ON (EMPLOYEE.DNO=PROJECT.DNUM)

JOIN DEPT_LOCATIONS ON (PROJECT.DNUM=DEPT_LOCATIONS.DNUMBER)

WHERE DLOCATION='Stafford';

Q10

 

Q11. List the names of all employees with two or more dependents.

查询有两个或以上家属的员工姓名(此题较难,若不能完成者可只查询出员工的SSN而不是姓名)。

代码/截图:

USE Company_huanghe

SELECT SSN FROM EMPLOYEE

JOIN DEPENDENT ON(EMPLOYEE.SSN=DEPENDENT.ESSN)

GROUP BY SSN

HAVING COUNT(SSN)>2;

Q11

温馨提示: 此处为隐藏内容,需要评论本文后才能查看.评论后请刷新页面


演示到此结束。

5 1 投票
Article Rating
订阅
提醒
4 评论
最新评论
最久评论 最受欢迎的评论
内联反馈
查看所有评论