(一)某工厂的信息管理数据库的部分关系模式如下所示:
职工 Employee(职工号EmployeeID,姓名Name,年龄Age,月工资 Salary,部门号DepartmentID,电话 Phone,办公室 Office)
部门 Department(部门号 DepartmentID,部门名 DepartmentName,负责人代码ManagerID,任职时间 EnterDate)
关系模式的主要属性、含义及约束如表1-1所示,“职工”和“部门”的关系示例分别如表1-2和表1-3所示。
表1-1 主要属性、含义及约束
属性 含义和约束条件
职工号 唯一标记每个职工的编号,每个职工属于并且仅属于一个部门
部门号 唯一标记每个部门的编号,每个部门有一个负责人,且他也是一个职工
月工资 500<=月工资<=5000,默认值为1000
表1-2 “职工”关系
职工号 姓名 年龄 月工资 部门号 电话 办公室
1001 郑俊华 26 1000 1 8001234 1201#
1002 王平 27 1200 1 8001234 1201#
2001 王晓华 38 1300 2 8001235 2302#
2002 李力 24 800 2 8001236 2303#
3001 黎远军 42 1300 3 8001237 1202#
4001 李源 24 800 4 8001245 2402#
4002 李兴明 36 1200 4 8001246 2103#
5001 赵兴 25 0 Null … …
表1-3“部门”关系
部门号 部门名 负责人代码 任职时间
1 人事处 1002 2004-8-3
2 机关 2001 2003-8-3
3 销售科
4 生产科 4002 2003-6-1
5 车间
(1) 在SQL SERVER 2005中创建数据库Factory,然后在Factory上创建职工表(Employee)和部门表(Department)的SQL语句(列名用英文表示)。提示:职工表和部门表之间存在互相引用参照的情况,利用CREATE TABLE语句创建表时先不要加外键约束,建好表之后利用ALTER TABLE语句添加外键约束。
(2) 写语句将表1-2,表1-3的数据分别插入表两个表中。
(3) 请问下列各行是否可以插入职工表中,为什么?
(1) 1001 王新军 28 1000 1 8001234 1201#
(2) 2003 李力 28 1000
(3) 5802 赵晓晓 36 1500 6 8001568 3503#
(4) 按下列要求写出SQL语句。
①查询人事处所有职员的姓名、年龄、月工资、部门名称。
②查询所有姓“李”员工信息。
③删除职工表中部门编号为空的员工。
④查询工资低于平均工资的员工信息,并将其工资至平均工资。
⑤按部门统计各个部门的员工人数。
⑥按部门统计各个部门员工的平均工资。
⑦查询每个部门中月工资最高的“职工号”。
------解决方案--------------------
做作业啊。结果你的结贴率还是0
建议发到 http://prj.csdn.net/