3. 关系数据模型如下 p84 例4.26
学生s(sno,sn,sex,age)
课程c(cno,cn,pcno) pcno为直接先行课号。
选课sc(sno,cno,gr) gr为课程考试成绩。
用sql写出查询程序:
所有学生都选修的课程名cn。
方法1.select cn
from c
where not exists
( select *
from s
where not exists
select *
from sc
where sno=
and cno=
变换后语义:不存在这样的学生x,该学生没有选修p。
方法2.select cn
from c
where cno in ( select cno
from sc
group by cno
h**ing count(*)select count(*)
from s ))
例46] 查询选修了全部课程的学生姓名。
select sname
from student
where not exists
select *
from course
where not exists
select *
from sc
where sno=
and cno=
变换后语义:不存在这样的课程x,该学生没有选修p。
4. 假设学生一课程数据库关系模式如下:
student(sno,sname,sage,ssex);
course(cno,cname,teacher);
sc(sno,cno,grade)。
用sql语句表达下列查询:
1) 找出刘老师所授课程的课程号和课程名;
2) 找出年龄小于22岁的女学生的学号和姓名。
1. select cno,cname
from course
where teacher like “刘。
2. select sno, sname
from student
where sage<22 and ssex =’女’
5. 假设学生一课程数据库关系模式如下:
student(sno,sname,sage,ssex);
course(cno,cname,teacher);
sc(sno,cno,grade)。
用sql语句表达下列查询:
1) 找出至少选修刘老师讲的一门课的学生姓名;
2) 找出“程序设计”课成绩在90分以上的学生的姓名;
3) 检索至少选修了课程号为‘c1和‘c3’的学生号。
答案。1. select sname
from student, sc, course
where and
and teacher like “刘%”
2. select sname
from student, sc, course
where
and and cname =”程序设计” and grade > 90
3. select sno教科书:p80***例4.18
from sc sc1, sc sc2
where
and and
[例51] 查询既选修了课程1又选修了课程2的学生。
select sno
from sc
where cno=' 1 ' and sno in (select sno
from sc
where cno=' 2 ')
select sno
from sc
where cno=’c1’ or cno=’c3and */
6. 假设学生一课程数据库关系模式如下:
student(sno,sname,sage,ssex);
course(cno,cname,teacher);
sc(sno,cno,grade)。
用sql语句表达下列查询:
1)求孙老师讲的每门课的学生平均成绩;
2)统计选修各门课的学生人数。输出课程号和人数。查询结果按人数降序排列,若人数相同,则按课程升序排列。
答案。1. select cno, **g(grade
from sc, course
where and teacher like “孙老师”
group by cno
2. select cno, count(*)
from sc
group by cno
oredr by count(*)desc, cno
7. 假设学生一课程数据库关系模式如下:
student(sno,sname,sage,ssex);
course(cno,cname,teacher);
sc(sno,cno,grade)。
用sql的更新语句表达对数据库的下列更新操作:
1)向学生关系student中插入一个学生元组(990012,梅立松,20,女)。
2)从学生选课关系sc中删除夏春秋同学的所有元组。
3)在学生选课关系sc中,把英语课的成绩提高10%。
答案。1. insert into student
values (990012,梅立松,20,女)
插入:子查询。
2. delete from sc
where sno in
select sno
from student
where sname = 夏春秋”);
3. update sc
set grade =1.1*grade
where cno in
select cno
from course
where cname = 英语”);
例7] 将计算机科学系全体学生的成绩置零。
update sc
set grade=0
where 'cs'= selete sdept
from student
where =
update sc
set grade = 0
where sno in ( select sno
from student
where sdept = cs' )
例41 找出每个学生超过他选修课程平均成绩的课程号。
select sno,cno
from sc x
where grade >=select **g(grade)
from sc y
where
SQL数据库作业
1 分别用ssms方式和t sql方式,在 教学成绩管理数据库 中创建 教师信息表 其表结构如下 use 教育成绩管理数据库。go create table 教师信息表。编号 char 6 not null,登录名 char 10 not null,姓名 nchar 4 not null,密码 ch...
SQL数据库作业
svse程序员上机考试。注意 考试结束试卷必须交回,否则按零分处理。一 语言和环境。a 实现语言 c b 环境要求 vs2005或更高版本 sql server2005二 数据库设计。数据库名称 empdb 数据库表信息 三 要求。利用c 和数据库编程,编写员工信息管理系统。要求实现员工信息的添加 ...
数据库SQL语句查询作业
所有这些题目针对的是样本数据库,需要先把样本数据库附加到自己机器的dbms中。题目分为5个等级,1级是最简单的,5级是最难的。在microsoft sql server management studio中,展开到刚才附加好的northwindcs数据库,右击鼠标,点击 新建查询 如图。在 新建查询...