![](https://csdnimg.cn/release/download_crawler_static/27190886/bg4.jpg)
use 成绩数据库
CREATE TRIGGER abc ON [dbo].[XSCJ] FOR UPDATE
AS
if update( 成绩 )
update xscj
set xscj. 学分 =(select 学分 from xskc where deleted. 课程号 =xskc. 课程号 )
from xscj,xskc,deleted
where xscj. 成绩 >=60 and deleted. 学号 =xscj. 学号 and deleted. 课程号 =xscj. 课
程号
3.
在学生信息表中增加 email 、学历、照片列。
use 教学成绩管理数据库
go
alter table 学生信息表
add email varchar(20) null, 学历 text,
照片 image
4.查询年龄为 20 岁、性别为 ‘女’的 学生
use 教学成绩管理数据库
select 姓名 , 性别 , 年龄 =datediff(year, 出生日期 ,getdate())
from 学生信息表
where (datediff(year, 出生日期 ,getdate())=20) and ( 性别 =' 女')
5.
查询每个学生的学号、姓名、总分和均分,结果按均分降序排列
use 教学成绩管理数据库
select 教学成绩表 . 学号 , 姓名 ,sum( 分数 ) 总分 ,avg( 分数 ) 均分
from 学生信息表 join 教学成绩表
on 学生信息表 . 学号 = 教学成绩表 . 学号
group by 教学成绩表 . 学号 , 姓名
order by avg( 分数 ) desc
三、现有关系数据库如下: 数据库名:学生成绩数据库
学生表 ( 班级编号,学号,姓名,性别,民族,身份证号,出生日期 ) 课程表 ( 课程号,课程
名,开课学期, 学时 ) 成绩表 (ID, 学号, 课程号, 分数 ) 用 SQL语言实现下列功能的 sql 语句
代码:
1. 查询学生信息表中的年龄 ( 重复年龄只显示一次 )
use 教学成绩管理数据库
select distinct 年龄 =datediff(year, 出生日期 ,getdate())
from 学生信息表
2. 从学生信息表和教学成绩表中查询查询学生的学号、姓名、课程名和分数
use 学生成绩数据库
select 成绩表 . 学号 , 姓名 , 课程名 , 分数
from 教学成绩表 , 学生信息表
where成绩表 . 学号 = 学生表 . 学号 AND 成绩表 . 课程号 =课程表 . 课程号
3. 从课程表中统计第二学期的总学时。 执行结果为:
课程号 课程名 开课学期 学时
, , , ,
, , , ,
sum
============
,
Select 课程号 , 课程名 , 开课学期 , 学时 From 课程表
Where开课学期 =2 compute avg( 学时 )
4. 编写一个存储过程,输入学号,从“教学成绩表视图” 显示该学生的姓名、课程名、分
数。