数据库总结2


----1
USE master
GO
create database mydb1
on primary
(
	name=mydb1_data,
 	filename='c:\data\mydb1_data.mdf',
	size=5MB,
 	filegrowth=1MB
 )
 log on
 (
 	name=mydb1_log,
  	filename='c:\data\mydb1_log.ldf',
  	size=3MB,
  	filegrowth=1MB
  )
GO



-----2
create table 职工表(
 职工编号 nchar(8) primary key not null,
 职工姓名 nvarchar(5) not null,
 出生日期 smalldatetime,
 家庭住址 nvarchar(100),
 联系电话 nchar(12),
 所属科室 int,
 职称 nvarchar(5),
 工资 int,
 性别 nchar(1) not null check (性别='男'or 性别='女')
 Foreign key(所属科室)references 科室(科室ID),
)
go
drop table 职工表 
create table 科室
(
  科室ID int primary key,
  科室名称 char(20)
)
go
insert into 科室 values(1,'科室')
insert into 职工表 values('001','张三','1993-10-21','北京','18855',1,'教授','5000','男')
insert into 职工表 values('002','李四','1999-1-21','北京','18855',1,'副教授','8000','男')
insert into 职工表 values('003','王三','1995-10-21','北京','18855',1,'普通职工','2000','女')




--------3

Create index 姓名
On 职工表(职工姓名 desc)
go




----4
create view 统计科室人数(科室号,人数)
as
select 科室ID ,count(职工编号) from 科室,职工表 where 职工表.所属科室=科室.科室ID group by 科室ID
go




-----5
create procedure p1 @科室 int,@工资 int output
 as
   select @工资=AVG(工资) from 职工表 where 所属科室=@科室
 go
 ----执行存储过程
 declare @x int
 exec p1 1,@x output
 select @x




-----6

create procedure p3 @科室号 int
 as
 select 职工编号,职工姓名,性别,出生日期,工资 from 职工表 where 所属科室=@科室号
 go
 ----执行存储过程
 exec p3 '1'
 go




------7

create function f7(@n int)
returns int
as 
begin
declare @i int
declare @sum int
set @i=1
set @sum=1
while @i<=@n
begin
set @sum=@sum*@i
set @i=@i+1
end
return @sum
end

select dbo.f7(5)





某数据库项目是对职工进行管理的。任何一名职工都属于一个科室的,有必要记录科室的信息,可以按照科室进行汇总。主要通过职工号,姓名,性别,出生日期,家庭住址,联系电话,所属科室,职称,工资等属性来描述职工信息,其中性别字段只能取“男”或“女”两个值。

1  建立数据库,要求将数据库部署到C:\data文件夹下,该数据库有一个主文件和一个日志文件,主文件的初始大小为5MB,采用自动增长方式,每次增长1MB;日志文件的初始大小为3MB,采用自动增长方式,每次增长1MB。(10分)

2  根据上面的需求建立表,注意相应完整性的实施,要求定义表级的命名约束。通过insert命令向各表中插入至少3条记录。(30分)

3  对职工表建立以姓名为索引关键字的降序索引。(10分)

4  建立视图,该视图能统计各科室的人数(以科室号和人数作为结果列)。(10分)

5  建立存储过程,通过科室号来获得该科室的平均工资。(10分)

6  建立存储过程,通过指定科室号来查询相应科室的职工信息,包括职工号,姓名,性别,出生日期,工资信息。(10分)

7  编写函数计算n!。(10分)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值