用SQL语句完成以下操作。

以下各题基于四个表:
学生.DBF(学号 C(8),姓名 C(12),性别 C(2),出生日期 D,院系 C(8))
课程.DBF(课程编号 C(4),课程名称 C(10),开课院系C(8))
学生成绩.DBF(学号 C(8),课程编号 C(4),成绩 I)
1. 插入一个新的学生记录,学号为10359999,姓名为张三,性别为男,其它信息暂不输入。
Insert into
2. 删除计算机成绩不及格的学生的成绩。
3. 将学生成绩表中的课程编号为”01”的成绩加20分。
4. 查询所有目前年龄是22岁的学生信息:学号,姓名和年龄。

1
insert into 学生.DBF(学号,姓名,性别) values('10359999','张三','男')
2
update 学生成绩.DBF set 成绩=null where 课程.DBF.课程编号=学生成绩.DBF.课程编号 and 课程.DBF.课程名称='计算机' and 学生成绩.DBF.成绩<60
3
update 学生成绩.DBF set 成绩=成绩 + 20 where 课程编号='01'
4
select 学号,姓名,年龄 from 学生.DBF where DateDiff('yyyy',出生日期,getDate())=22
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-03
纠正一下楼上的 datediff(year,date1,date2)
第2个回答  2019-06-12
1
计算每门课程的选课人数(用到分组、计数)
select
课程表.课程名,count(学生表.学生ID)
from
课程表,学生表
where
课程表.课程id=学生表.课程id
group
by
课程表.课程名;
2
查询选修了张河老师所教课程的学生姓名(用到了课程表、成绩表、学生表)
select
学生表.学生姓名,课程表.课程名
from
课程表,学生表,成绩表
where
课程表.课程id=学生表.课程id
and
学生表.学生id=成绩表.学生ID
and
课程表.课程id=成绩表.课程id
and
课程表.教师='张河';
3
把教师名称为李华的课程名称改为数据库原理
update
课程表
set
课程名='数据库原理'
where
教师='李华';
创建一个视图
1
查询李华老师所教课程的学生姓名、课程名称和成绩
create
view
v_test1
as
select
学生表.学生姓名,课程表.课程名,成绩表.成绩
from
课程表,学生表,成绩表
where
课程表.课程id=学生表.课程id
and
学生表.学生id=成绩表.学生ID
and
课程表.课程id=成绩表.课程id
and
课程表.教师='李华';
2
查询选修了课程号为C02的选课人娄和平均成绩(使用别名)
create
view
v_test2
as
select
count(1)
as
选课人数,avg(成绩)
as
平均成绩
from
课程表,学生表,成绩表
where
课程表.课程id=学生表.课程id
and
学生表.学生id=成绩表.学生id
and
课程表.课程id=成绩表.课程id
and
课程表.课程id='C02'
3
查询每个学生平均成绩大于85分的学生的学号、姓名平均成绩,按照学号的升序排序
create
view
v_test3
as
select
学生表.学生id,
学生表.姓名,
成绩表.平均成绩
from
学生表,(select
成绩表.学生id
,avg(成绩)
as
平均成绩
from
成绩表
group
by
成绩表.学生id
having
avg(成绩)>85)
as
成绩表
where
学生表.学生id=成绩表.学生id;
4
在成绩表中对每一个学生的成绩增加百分之十
update
成绩表
set
成绩=成绩+成绩*0.1;