各位帮个忙,万分感谢

来源:百度知道 编辑:UC知道 时间:2024/05/12 14:54:43
假设在factory数据库中创建如下3个表,
 职工表worker,其结构为:职工号:int,姓名:char(8),性别:char(2),出生日期:datetime,党员否:bit,参加工作:datetime,部门号:int。
 部门表depart,其结构为:部门号:int,部门名:char(10)。
 职工工资表salary,其结构为:职工号:int,日期:datetime,工资:decimal(6,1)。

使用Transact-SQL语句完成如下各题:
1. 用CREATE TABLE语句创建职工工资表salary。(还需定义主键(职工号,日期)、外键(职工号),并且工资不得低于600元)。
2.查询所有职工的职工号、年龄。
3.创建一个包含各部门非党员人数的视图。
4.查询所有职工的职工号、姓名、部门名和2007年2月份工资,并按部门名降序排列。
5.将低于所有职工平均工资的职工工资提高5%。
6. 在woker表上创建一个组合索引,索引字段为部门号(升序)和出生日期(降序),索引名为i_woker。
7.从mydevice1备份设备中对数据库factory进行还原完整数据库备份。
8.使用游标打印“人事处”所有职工的姓名、参加工作时间。
9.创建一个带参数的存储过程,输入参数为部门名,查询该部门职工平均年龄。存储过程返回0,表示程序执行成功,返回其他整数,表示程序在执行时出现错误。调用该存储过程,若程序执行成功,输出该部门职工平均年龄,否则,输出“无该部门!”信息。
10.在表worker上创建一个触发器worker_delete,当删除职工记录时同步删除salary表中对应职工的工资记录。

create table worker(
wokerid int,
workername char(8),
sex char(2),
borndata datetime,
partymember bit,
job datetime,
departid int);

create table depart(
departid int,
departname char(10));

create table salary(
workerid int,
data datetime,
pay decimal(6,1));

1.
create table salary(
workerid int,
data datetime,
pay decimal(6,1),
PRIMARY KEY (workerid,data),
FOREIGN KEY (workerid) REFERENCES worker(workerid));

2.
select workerid,localtime-borntime
from worker

3.
create view aaa as
select departid,count(workerid)
from worker
where partymember=0
group by departid

4.
select workerid,workername,departname,pay
from worker,depart,salary
where worker.workerid=salary.workerid
and worker.departid=depart.departid
and data='2007-02'
order by departname desc