数据库与存储过程

FancyBoy247 2007-11-24 02:29:19
创建一个数据库,使之可以存储以下信息:
1. 学生信息
a) 学号
b) 姓名
c) 年龄
d) 性别
2. 课程信息
a) 课程编号
b) 课程名
3. 学生成绩(一个学生可能在多个课程中有成绩)
在此数据库中创建一个存储过程,从数据库中按获得的参数搜索出一个学生信息的列表。对于任意一个学生,如果该学生在某门课程上有成绩,则同时取出这门课程的信息及该学生的成绩。该存储过程接受的参数为(参数为NULL表示该搜索条件不起作用):
1. 姓名:按学生姓名的关键字搜索。可能为NULL
2. 年龄:按学生的年龄搜索。可能为NULL
3. 性别:按学生的性别搜索。可能为NULL
...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzy_love_sly 2007-11-24
  • 打赏
  • 举报
回复

--学生
create table stu(stuid int identity(1,1),stuno varchar(8000),
stuname varchar(8000),age int,gm varchar(8000))
insert into stu select 'a001','张三',18,'男'
insert into stu select 'a002','李四',18,'女'
insert into stu select 'a003','王五',18,'男'
--课程
create table sub(subno varchar(8000),subname varchar(8000))
insert into sub select '001','数学'
insert into sub select '002','语文'
insert into sub select '003','英语'
--信息
create table Infor(inforid int identity(1,1),stuno varchar(8000),subno varchar(8000))
insert into Infor select 'a001','002'
insert into Infor select 'a001','001'
insert into Infor select 'a002','001'
insert into Infor select 'a003','003'
--sql
declare @stuname varchar(8000),@age int,@gm varchar(8000),@sql varchar(8000),@sql2 varchar(8000)
select @stuname='张三',@age=18,@gm='男'
set @sql='select * from Infor a left join stu b on a.stuno=b.stuno left join sub c on a.subno=c.subno where b.stuname='''+@stuname+''' and b.gm='''+@gm+''' and b.age='''+cast(@age as varchar(8000))+''''
print @sql
exec (@sql)
wzy_love_sly 2007-11-24
  • 打赏
  • 举报
回复
把成绩表结构也贴出来
jsnet2006 2007-11-24
  • 打赏
  • 举报
回复
有高手来回答吗?
wzy_love_sly 2007-11-24
  • 打赏
  • 举报
回复
好象是哪的面试题啊

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧