-----------------------------------
create database XSCJ
use XSCJ
-----------------------------------
exec sp_renamedb 'XSCJ', '学生成绩'
-----------------------------------
create table 学生表
(学号 varchar(10) primary key,
姓名 varchar(10) ,
性别 varchar(2)default '男',
出生日期 date,
家庭地址 varchar(50)
)
-----------------------------------
create table 课程表
(课程代码 varchar(10) primary key,
课程名称 varchar(50) NOT NULL,
)
-----------------------------------
create table 成绩表
(学号 varchar(10) not null,
课程代码 varchar(10) not null,
分数 int,
primary key(学号,课程代码),
foreign key(学号) references 学生表(学号),
foreign key(课程代码) references 课程表(课程代码)
)
-------------------------------------------
insert into 学生表(学号,姓名,出生日期) values('2010001','张三','1988-02-02')
------------------------------------------
update 学生表 set 出生日期='1987-3-1' where 学号='2010001'
--------------------------------------------
select 学号,姓名,性别,year(getdate())-year(出生日期) as 年龄 from 学生表
----------------------------------------
select * from 学生表 where DATEDIFF(yyyy,出生日期,getdate())>DATEDIFF(yyyy,出生日期,getdate())/(select COUNT(*) from 学生表)
-----------------------------------------
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.课程代码
------------------------------------------
select a.学号,a.姓名,c.failedNo from 学生表 a,(select 学号,COUNT(*) as failedNo from 成绩表 where 分数<60 group by 学号)c where a.学号=c.学号
------------------------------------------
select top 10 学号,姓名,DATEDIFF(yyyy,出生日期,getdate())as 年龄 from 学生表 where 家庭地址='重庆市' order by 年龄 desc
------------------------------------------
create view view_score as
select a.学号,a.姓名,c.课程代码,c.分数 as 成绩 from 学生表 a inner join 成绩表 c on a.学号=c.学号
------------------------------------------
create procedure XS_TJ
@getnumb varchar(10)
as
begin
select * from 学生表 A where A.学号=@getnumb
end