求SQL大神帮忙解答此题!

2020-08-29 教育 48阅读
  1. -----------------------------------

  2. create database XSCJ

  3. use XSCJ

  4. -----------------------------------

  5. exec sp_renamedb 'XSCJ', '学生成绩'

  6. -----------------------------------

  7. create table 学生表

  8. (学号 varchar(10) primary key,

  9. 姓名 varchar(10) ,

  10. 性别 varchar(2)default '男',

  11. 出生日期 date,

  12. 家庭地址 varchar(50)

  13. )

  14. -----------------------------------

  15. create table 课程表

  16. (课程代码 varchar(10) primary key,

  17. 课程名称 varchar(50) NOT NULL,

  18. )

  19. -----------------------------------

  20. create table 成绩表

  21. (学号 varchar(10) not null,

  22. 课程代码 varchar(10) not null,

  23. 分数 int,

  24. primary key(学号,课程代码),

  25. foreign key(学号) references 学生表(学号),

  26. foreign key(课程代码) references 课程表(课程代码)

  27. )

  28. -------------------------------------------

  29. insert into 学生表(学号,姓名,出生日期) values('2010001','张三','1988-02-02')

  30. ------------------------------------------

  31. update 学生表 set 出生日期='1987-3-1' where 学号='2010001'

  32. --------------------------------------------

  33. select 学号,姓名,性别,year(getdate())-year(出生日期) as 年龄 from 学生表

  34. ----------------------------------------

  35. select * from 学生表 where DATEDIFF(yyyy,出生日期,getdate())>DATEDIFF(yyyy,出生日期,getdate())/(select COUNT(*) from 学生表)

  36. -----------------------------------------

  37. select a.课程代码,a.课程名称,b.maxscore,b.minscore,b.avgscore from 课程表 a,(select 课程代码,MAX(分数) as maxscore,min(分数) as minscore,avg(分数)as avgscore from 成绩表 group by 课程代码)b where a.课程代码=b.课程代码

  38. ------------------------------------------

  39. select a.学号,a.姓名,c.failedNo from 学生表 a,(select 学号,COUNT(*) as failedNo from 成绩表 where 分数<60 group by 学号)c where a.学号=c.学号

  40. ------------------------------------------

  41. select top 10 学号,姓名,DATEDIFF(yyyy,出生日期,getdate())as 年龄 from 学生表 where 家庭地址='重庆市' order by 年龄 desc

  42. ------------------------------------------

  43. create view view_score as

  44. select a.学号,a.姓名,c.课程代码,c.分数 as 成绩 from 学生表 a inner join 成绩表 c on a.学号=c.学号

  45. ------------------------------------------

  46. create procedure XS_TJ

  47. @getnumb varchar(10)

  48. as

  49. begin

  50. select * from 学生表 A where A.学号=@getnumb

  51. end

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com