An Introduction to Database System中国人民大学数据库系统概论v关系代数表达式的运用技巧1、首先看查询的条件和结果中涉及到的属性列来自哪些表,将其归置到最少的表中查询若涉及多个表则需将表进行连接操作2、对于只涉及到选择、投影、连接的查询可用下列表达式表示:π...(σ... (R×S)) 或者π... (σ... (R ∞ S)) 3、对于否定的操作,一般用差操作表示 如:“查询不学C2课程的学生姓名”一般用 所有学生的姓名-选修C2课程的学生姓名An Introduction to Database System中国人民大学数据库系统概论4、对于查询具有“全部”特征的操作,一般要用除法操作表示 例如:查询学习全部课程的学生学号,可用如下形式: ππ sno,cno sno,cno(SC) (SC) ÷ ππ cno cno(Course)(Course)例:设有三个关系:例:设有三个关系:S(sno,sname,sex,age)SC(sno,cno,grade)C(cno,cname,teacher) An Introduction to Database System中国人民大学数据库系统概论试用关系代数表达式表示下列查询语句试用关系代数表达式表示下列查询语句v1、查询、查询LIU老师所授课程的课程号和课程名老师所授课程的课程号和课程名v2、查询年龄大于、查询年龄大于23岁的男学生的学号和姓名岁的男学生的学号和姓名v3、查询学号为、查询学号为S3学生所学课程的课程名与任课教师名学生所学课程的课程名与任课教师名v4、查询至少选修、查询至少选修LIU老师所授课程中一门课程的女学生姓名老师所授课程中一门课程的女学生姓名v5、查询、查询WANG同学不学的课程的课程号同学不学的课程的课程号v6、查询至少选修两门课的学生学号、查询至少选修两门课的学生学号v7、查询全部学生都选修的课程的课程号与课程名、查询全部学生都选修的课程的课程号与课程名v8、查询选修课程包含、查询选修课程包含LIU老师所授全部课程的学生学号老师所授全部课程的学生学号S(sno,sname,sex,age)SC(sno,cno,grade)C(cno,cname,teacher)An Introduction to Database System中国人民大学数据库系统概论v1、查询、查询LIU老师所授课程的课程号和课程名老师所授课程的课程号和课程名πcno,cname(σteacher=‘LIU'(C))v2、查询年龄大于、查询年龄大于23岁的男学生的学号和姓名岁的男学生的学号和姓名πsno,sname(σage>23 ∧ sex=‘M’(S))v3、查询学号为、查询学号为S3学生所学课程的课程名与任课教师名学生所学课程的课程名与任课教师名πcname,teacher(σsno=‘S3’(SC ∞ C))v4、查询至少选修、查询至少选修LIU老师所授课程中一门课程的女学生姓名老师所授课程中一门课程的女学生姓名πsname(σteacher=‘LIU’ ∧ sex=‘F’ (S ∞ SC ∞ C))S(sno,sname,sex,age)SC(sno,cno,grade)C(cno,cname,teacher)An Introduction to Database System中国人民大学数据库系统概论v5、查询、查询WANG同学不学的课程的课程名同学不学的课程的课程名πcname ( C ) - πcname(σsname=‘WANG’ (S ∞ SC))v6、查询至少选修两门课的学生学号、查询至少选修两门课的学生学号π1(σ1=4 ∧2 !=5 (SC x SC))v7、查询全部学生都选修的课程的课程号与课程名、查询全部学生都选修的课程的课程号与课程名πcno,cname(C ∞ (πsno,cno (SC) ÷ πsno (S) ))v8、查询选修课程包含、查询选修课程包含LIU老师所授全部课程的学生学号老师所授全部课程的学生学号πsno,cno(SC) ÷πcno (σteacher=‘LIU’(C ))S(sno,sname,sex,age)SC(sno,cno,grade)C(cno,cname,teacher)An Introduction to Database System中国人民大学数据库系统概论v(1)检索学习课程号为检索学习课程号为C2的学生学号与成绩的学生学号与成绩v(2)检索学习课程号为检索学习课程号为C2的学生学号与姓名的学生学号与姓名v(3)检索选修课程名为检索选修课程名为MATHS的学生学号与姓名的学生学号与姓名v(4)检索选修课程号为检索选修课程号为C2或或C4的学生学号的学生学号v(5)检索至少选修课程号为检索至少选修课程号为C2和和C4的学生学号的学生学号v(6)检索不学检索不学C2课的学生姓名与年龄。
课的学生姓名与年龄v(7)检索学习全部课程的学生姓名检索学习全部课程的学生姓名v(8)检索所学课程包含检索所学课程包含S3所学课程的学生学号所学课程的学生学号S(sno,sname,sex,age) 学生学生SC(sno,cno,grade) 选课选课C(cno,cname,teacher) 课程课程An Introduction to Database System中国人民大学数据库系统概论v(1) 检索学习课程号为检索学习课程号为C2的学生学号与成绩的学生学号与成绩v(2) 检索学习课程号为检索学习课程号为C2的学生学号与姓名的学生学号与姓名π SNO,SNAME (σ CNO='C2‘ (S ∞ SC))π SNO,,SNAME(S) ∞ (π SNO (σ CNO=‘C2‘ (SC)))v(3)检索选修课程名为检索选修课程名为MATHS的学生学号与姓名的学生学号与姓名π SNO,,SANME (σ CNAME='MATHS‘ (S ∞ SC ∞ C)) v(4)检索选修课程号为检索选修课程号为C2或或C4的学生学号的学生学号π SNO (σ CNO=‘C2’∨ ∨CNO=‘C4’ (SC)) An Introduction to Database System中国人民大学数据库系统概论v(5) 检索至少选修课程号为检索至少选修课程号为C2和和C4的学生学号的学生学号 π1(σ 1=4∧ ∧2='C2'∧ ∧5='C4'((SC×SC))) π Sno, Cno (SC) ÷π Cno (σ Cno=‘c2’∨ ∨ Cno=‘c4’ (C))v(6)检索不学检索不学C2课的学生姓名与年龄。
课的学生姓名与年龄π SNAME,,AGE(S)-π SNAME,,AGE (σ CNO='C2‘(S ∞ SC))v(7)检索学习全部课程的学生姓名检索学习全部课程的学生姓名π SNO,CNO (SC) ÷ π CNO (C)π SNAME (S ∞(π SNO,CNO (SC) ÷π CNO (C)))An Introduction to Database System中国人民大学数据库系统概论v(8) 检索所学课程包含检索所学课程包含S3所学课程的学生学号所学课程的学生学号π SNO,CNO (SC)÷ π CNO (σ SNO='S3‘ (SC)) 。