在线练习: SQL Fiddle
员工表(Employee)
ENUMBER | ENAME | ESEX | EEMAIL | EPHONE | EWAGE | JNUMBER | D_NUMBER |
---|---|---|---|---|---|---|---|
0001 | 陈火旺 | 男 | huo@163.com | 0411-54684521 | 1200 | 2001 | 3001 |
0002 | 陈火旺 | 男 | huo@163.com | 0411-54644521 | 1500 | 2008 | 3002 |
0003 | 赵克佳 | 女 | zkj@163.com | 0411-54684891 | 2400 | 2007 | 3003 |
部门表(Department)
D_NUMBER | DNAME | DLOCATION |
---|---|---|
3001 | 计算机系 | 二教学楼 |
3002 | 机电系 | 机电楼 |
3003 | 图书馆 | 图书馆 |
职位表(Job)
JNUMBER | JNAME | JDESCRIPTION |
---|---|---|
2001 | 教师 | 负责教学科研工作 |
2004 | 保安 | 负责安全工作 |
2007 | 实验教师 | 负责实验室管理维护工作 |
2008 | 图书管理员 | 负责图书馆的管理 |
题目及代码参考:
1*查询出所有部门的情况信息。
SELECT *
FROM Department;
2*检索部门号码是3002的员工的姓名、工资。
SELECT Ename,Ewage
FROM Employee,Department
WHERE Employee.D_number=Department.D_number AND Employee.D_number='3002';
3*检索出姓赵的员工的信息。
SELECT *
FROM Employee
WHERE Ename LIKE '赵%';
4*检索出所有工资大于1000,小于2000的员工的所有信息,包括他们的部门名称
SELECT Employee.*,Department.Dname
FROM Employee,Department
WHERE Employee.D_number=Department.D_number AND Ewage BETWEEN 1000 AND 2000;
5*检索出员工的名字中有“火”并且工资小于2000的员工的信息。
SELECT *
FROM Employee
WHERE Ewage < 2000 AND Ename LIKE '%火%';
6*必填检索出所有员工的信息,根据工资升序排列。
SELECT *
FROM Employee
ORDER BY Ewage ASC;
07*对员工信息,检索出各个部门的平均工资和总人数。
SELECT D_number,avg(Ewage),count(*)
FROM Employee
GROUP BY D_number;
8*对员工信息,检索出如下列:员工编号、员工姓名、职位名称、部门名称。
SELECT Enumber,Ename,Jname,Dname
FROM Employee,Department,Job
WHERE Employee.Jnumber=Job.Jnumber AND Employee.D_number=Department.D_number;
9*检索出比员工编号是0002的员工工资高的员工的姓名。
SELECT Ename
FROM Employee
WHERE Ewage >
(SELECT Ewage FROM Employee WHERE Enumber='0002');
结果参考: