日期:2014-05-16 浏览次数:20504 次
在深圳面试时的一道数据库题目,主要考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)?
?