SQL

来源:互联网 发布:淘宝实名认证在哪里看 编辑:程序博客网 时间:2024/04/30 07:16

语法:

WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。 

GROUP BY 子句用来分组 WHERE 子句的输出。 

HAVING 子句用来从分组的结果中筛选行


实例:

表结构:

Student{Sno, Sname, Ssex, Sbirthday, Class}

Course{Cno, Cname, Tno}

Score{Sno, Cno, degree}

Teacher{Tno, Tname, Tbirthday, Tprofessional, Department}


INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾华' ,'男' ,1977-09-01,95033);

INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-105' ,'计算机导论',825);

INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-245',86);

INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) 

VALUES (804,'李诚','男','1958-12-02','副教授','计算机系');


问题:

1. 查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

2. 查询“95033”班所选课程的平均分。




答案:

1. 

select avg(degree),cno
from score
where cno like '3%'
group by cno
having count(sno)>= 5;

2. select AVG(S.Degree) from Score S JOIN Student Stu ON S.Sno=Stu.Sno where Stu.Class="95033" ;

0 0
原创粉丝点击