不知如何画SQL语言和关系代数,请教各位高手,大哥大姐们!
如下两道实例题,SQL语言写出了,但是就是不知道其对应的关系代数表达式怎么写?恳请各位高手和大哥大姐们指点一下,帮忙写一下以下两道大题的关系代数表达式!
谢谢了。。。。
EMPT(ENO,ENAME,SALARY,DNO),
其中属性的含义依次为职工号、姓名、工资和所在部门号,
关系 DEPT(DNO,DNEMA,MANAGER), 代表部门号、部门名称、部门经理职工号
要求用SQL语言和关系代数写出:
1. 各部门中工资不低于600元的职工的平均工资
2. 查询001号职工所在的部门名称
3. 将销售部的那些工资低于600的职工的工资上调10%
解:
1. SQL语句:
SELECT DNO, AVG(SALARY)
FROM EMP
WHERE SALARY>=600
GROUP BY DNO
关系代数表达式:
2.SQL语句:
SELECT DNAME
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO
AND EMP.DNO=’001’
关系代数表达式:
3.SQL语句:
UPDATE EMP
SET SALARY=SALARY*1.1
WHERE ENO IN
(SELECT ENO
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO
AND DNAME=’销售部’
AND SALARY<600)
关系代数表达式:
四 学生数据库 STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT)
课程数据库 COURSE(CNO,CNAME,CPNO,CCREDIT)
选课数据库 SC(SNO,CNO,GRADE)
用SQL和关系表达式写出:
1. 建立一个学生表STUDENT,它由学号SNO,姓名SNAME,性别SSEX,年龄SAGE,所在系SDEPT五个属性组成,其学号不能为空,其值唯一
2. 查考试成绩不及格的学生学号
3. 将学生95001的年龄改为22岁
4. 计算1号课程的学生平均成绩
解:
1.SQL语句:
CREATETABLE STUDENT
(SNO CHAR(5) NOT NULL UNIQUE
SNAME CHAR(20)
SSEX CHAR(1)
SAGE INT
SDEPT CHAR(15));
关系代数表达式:
2.SQL语句:
SELECT DISTINCT SNO
FROM COURSE,SC
WHERE COURSE.CNO=SC.CNO
AND SC.GRADE<60
关系代数表达式:
3.SQL语句:
UPDATE STUDENT
SET SAGE=22
WHERE SNO=’95001’
关系代数表达式:
4.SQL语句:
SELECT AVG(GRADE)
FROM SC
WHERE CNO=’1’