Q1.stu_id=20127007,find name, gender and birthday
SELECT
a.stu_name,
a.stu_gender,
a.stu_birthday
FROM t_student a
WHERE a.stu_id='20127007'
Q2.cls_id=会计1201 find student’s id&name
select
a.stu_id,
a.stu_name
from t_student a
inner join t_class b
on a.cls_id=b.cls_id
where b.cls_name='会计1201'
Q3. subject=‘会计’&grade=2012,find classes with student’s count
class="sql">SELECT
a.cls_name,
COUNT(*) students
FROM t_class a
INNER JOIN t_student b ON a.cls_id=b.cls_id
WHERE
a.subject='会计'
AND a.grade=2012
GROUP BY
a.cls_name
Q4. stu_id=20127007,find all failured course.
SELECT
b.course_name
FROM t_mark a
INNER JOIN t_course b ON a.course_id=b.course_id
WHERE
a.stu_id='20127007'
AND
a.scroll<60
GROUP BY b.course_name
two:
SELECT
DISTINCT b.course_name
FROM t_mark a
INNER JOIN t_course b ON a.course_id=b.course_id
WHERE
a.stu_id='20127007'
AND
a.scroll<60
Q5 Add a course, course_id=17317, course_name=‘DBFoundation’&course_credit=3.5
INSERT INTO t_course
(course_id, course_name, course_credit)
values
(17317,'DB Foundation',3.5)
Q6. ‘会计’,2012,‘英语[1]’; 平均分
SELECT
AVG(c.scroll)
FROM t_class a
INNER JOIN t_student b
ON a.cls_id=b.cls_id
INNER JOIN t_mark c
ON c.stu_id=b.stu_id
INNER JOIN t_course d
ON d.course_id=c.course_id
WHERE
a.subject='会计'
AND
a.grade=2012
AND
d.course_name='英语[1]'
Q7. 会计, 2012,‘英语[1]’,failure students
One:
SELECT
DISTINCT b.stu_name
FROM t_class a
INNER JOIN t_student b
ON a.cls_id=b.cls_id
INNER JOIN t_mark c
ON c.stu_id=b.stu_id
INNER JOIN t_course d
ON d.course_id=c.course_id
WHERE
a.subject='会计'
AND
a.grade=2012
AND
d.course_name='英语[1]'
AND
c.scroll<60
Two:利用存在函数
SELECT
a.stu_id,
a.stu_name
FROM t_student a
INNER JOIN t_class b
ON b.cls_id=a.cls_id
WHERE
b.subject='会计'
AND
b.grade=2012
AND
EXISTS(
SELECT 1
FROM t_mark c
INNER JOIN t_course d
ON d.course_id=c.course_id
WHERE
c.stu_id=a.stu_id
AND
c.scroll<60
AND
d.course_name='英语[1]'
)
Q8 查询挂科数大于五科的学生
SELECT
a.stu_id,
a.stu_name,
COUNT(DISTINCT c.course_id)
FROM t_student a
INNER JOIN t_class b ON b.cls_id=a.cls_id
INNER JOIN t_mark c ON c.stu_id=a.stu_id
INNER JOIN t_course d ON d.course_id=c.course_id
WHERE
b.subject='会计'
AND
b.grade=2012
AND
c.scroll<60
GROUP BY a.stu_id,a.stu_name
HAVING COUNT(DISTINCT c.course_id)>=5
SELECT
a.stu_id,
a.stu_name
FROM t_student a
INNER JOIN t_class b ON b.cls_id=a.cls_id
INNER JOIN t_mark c ON c.stu_id=a.stu_id
INNER JOIN t_course d ON d.course_id=c.course_id
WHERE
b.subject='会计'
AND
b.grade=2012
AND
c.scroll<60
GROUP BY a.stu_id,a.stu_name
HAVING COUNT(*)-COUNT(DISTINCT c.course_id)>=1