Day 35 jobs (sql queries)

  1. Queries for all students is more than 60 points name and student number (DISTINCT: de-emphasis)
select distinct student.sid, sname from score join student on student_id = student.sid where score.number > 60;

- 2. Query the number of courses taught per teacher and teacher information

select teacher.tid, teacher.tname, count(cid) as course_num from teacher join course on teacher.tid = course.teach_id group by teacher.tid, teacher.tname;

- 3. Query class student information and student information is located

select * from student join class  on student.class_id = class.cid;

- the number of students in the number of boys and girls 4

select gender, count(*) as num from student group by gender;

--5, get all the learning 'biological' number of students learning and achievement; Name

select student.sid, student.sname, score.number from student join score on student.sid = score.student_id join course on score.course_id = course.cid where course.cname = '生物';

- 6, the query is greater than the average score of 60 points and the number of students in school grade point average;

select student.sid, avg(number) as avg_number from student join score on student.sid = score.student_id group by student.sid having avg_number > 60;

--7 query teacher surnamed "Li" of the number;

select count(tname) from teacher where tname like '李%'

- 8, 60 points less than the query course grade students of school, name;

select student.sid, sname from score join student on student_id = student.sid where score.number < 60;

- 9. Delete learning "flat leaf" class teacher SC table records

delete from student where student.sid in (select score.student_id from course, teacher, score where course.teach_id = teacher.tid and course.cid = score.course_id and teacher.tname = '叶平');

- 10. Query subjects the highest score and lowest points: Displayed in the following form: Course ID, highest score, lowest score;

select course.cid, max(score.number) as max_num, min(score.number) as min_num from course join score on course.cid = score.course_id group by course.cid;

- 11 queries per course is elective students

select course.cname,count(sname) as choose_num from course join score on course.cid = score.course_id join student on score.student_id = student.sid group by course.cname;

- 12. Query surname "Chang" in the list of students;

select * from student where sname like '张%'

- 13. The average scores for each query of course, results in ascending order according to the average score, average score of the same, according to the course number in descending order

select course.cid, course.cname, avg(score.number) as avg_score_number from course join score on course.cid = score.course_id group by course.cid, course.cname order by avg_score_number, course.cid desc;

- 14. Query all students grade point average of more than 85 school number, name and grade point average

select student.sid, student.sname, avg(score.number) as avg_score_number from student join score on student.sid = score.student_id group by student.sid, student.sname having avg_score_number > 85;

- No. 15. The details of the curriculum and course grade 3 students learn numbers and names of 80 points or more;

select student.sid, student.sname from student join score on student.sid = score.student_id where score.course_id = 3 and score.number >= 80;

- 16. For inquiries each elective courses and the corresponding number of

select course.cname, count(student_id) as student_num from course, score where course.cid = score.course_id group by course.cname

- 17. Query "4" course score less than 60, students learn numbers in descending order by score

select student_id from score where course_id = 4 and number < 60 order by number desc;

- 18. delete student number to score a "1" course students of "2"

delete from score where student_id = 2 and course_id = 1

Guess you like

Origin www.cnblogs.com/2222bai/p/11767259.html