日期:2014-05-16  浏览次数:20532 次

在深圳面试的一道数据库题目

在深圳面试时的一道数据库题目,主要考select语句,回来后当作复习吧,把建库建表以及存储过程都写了出来,用的是sql server。

-----创建管理岗位业务培训信息表
use master
go
if exists(select * from sysdatabases where name='STU')
drop database STU
go
create database STU
on
(
--主数据库文件的描述
name='STU_data',
filename='d:\STU_data.mdf',
size=10mb,
filegrowth=20% ,--主数据文件的增长率
maxsize=20mb
)
log on
(
--主数据库文件的描述
name='STU_log',
filename='d:\STU_data.ldf',
size=3mb,
filegrowth=10%, --主数据文件的增长率
maxsize=20mb
)
go



---- 创建表
use STU
go
if exists(select * from sysobjects where name='S')
drop table S
go
--创建表S
create table S
(
SID int identity(1001,1) not null,
SN varchar(8) not null,
SD varchar(20) not null,
SA int not null
)
--创建表S的约束
alter table S add constraint PK_SID
primary key(SID)
insert into S(SN,SD,SA)values('林林','中国汽车',26)
insert into S(SN,SD,SA)values('小王','福田',56)
insert into S(SN,SD,SA)values('兆赫','达人',28)
insert into S(SN,SD,SA)values('何鄂','众乐',30)
--创建表C
create table C
(
CID varchar(10) not null,
CN varchar(20) not null,
)
insert into C(CID,CN)values('s001','税收基础')
insert into C(CID,CN)values('s002','初级韩语')
insert into C(CID,CN)values('s003','雅思英语')
insert into C(CID,CN)values('s004','好人')
--创建表SC
create table SC
(
CID varchar(10) not null,
G int not null,
SID int not null
)
------创建表SC的约束
alter table SC add constraint FK_SID
foreign key(SID) references S(SID)
insert into SC(CID,SID,G)values('s001',1001,85)
insert into SC(CID,SID,G)values('s002',1002,56)
insert into SC(CID,SID,G)values('s003',1002,70)
insert into SC(CID,SID,G)values('s004',1004,88)

--管理岗位业务培训信息的常规查询
--(1)查询课程名为“税收基础”的学员姓名和所属单位
select SN,SD from S
where SID in(select SID from C,SC 
where C.CID=SC.CID and CN='税收基础')
--(2查询选修了课程的学员姓名、所属单位、年龄、选修课程名称及学习课程)
select 姓名=SN,所属单位=SD,年龄=SA, 课程名称=CN,成绩=G from S,C,SC
where S.SID in(select SID from C,SC where C.CID=SC.CID)
--(3)查询选修了课程的学员人数
select 学员人数=count(distinct[SID]) from SC 



-----------利用存储过程,查询指定信息
if exists(select * from sysobjects where name='proc_U')
drop proc proc_U
go
create proc proc_U
@s_sn_out varchar(8) output,
@s_sn_in varchar(8)
as
declare @r varchar(8)
select @r=SN from S where SN=@s_sn_in
set @s_sn_out=@r
go
declare @ff varchar(8)
exec proc_U @ff output,'小王'
print convert(varchar(8),@ff)
?

?