错过的sql语句

总结:

内链接:适合和自己的条件对比,但并没有给出具体条件,要从数据库表里面找,注意有些条件两个表都需要写(嵌套查询貌似也可以

左连接:适合一个表要全部列出来的情况(使用count的时候,注意count(*)至少会有1,count(id)就不会

group by:通常出现在中间表中,很多两个表的关联数据,需要分组处理

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

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

16、查询所有学生的Sname、Cname和Degree列。(三表左链接,其中两个表是一起的

SELECT A.SNAME,B.CNAME,C.DEGREE FROM STUDENT A JOIN (COURSE B,SCORE C)
ON A.SNO=C.SNO AND B.CNO =C.CNO;

19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。(内链接的,两个对比时候,忘了他自身的条件A.CNO = '3-105',后来用了嵌套查询

SELECT
A.*
FROM
SCORE A
JOIN SCORE B
WHERE
A.CNO = '3-105'
AND A.DEGREE > B.DEGREE
AND B.SNO = '109'
AND B.CNO = '3-105';

SELECT
A.*
FROM
score A
WHERE
A.DEGREE > (
SELECT
DEGREE
FROM
score
WHERE
sno = '109'
AND cno = '3-105'
)
AND cno = '3-105'T

20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。(

SELECT
*
FROM
score s
WHERE
DEGREE < (SELECT MAX(DEGREE) FROM SCORE)
GROUP BY
SNO
HAVING
COUNT(SNO) > 1

31、查询所有教师和同学的name、sex和birthday.(union

SELECT
SNAME AS NAME,
SSEX AS SEX,
SBIRTHDAY AS BIRTHDAY
FROM
STUDENT
UNION
SELECT
TNAME AS NAME,
TSEX AS SEX,
TBIRTHDAY AS BIRTHDAY
FROM
TEACHER;

原文地址:https://www.cnblogs.com/vhyc/p/8711790.html