MySQLの実際の面接問題!
実際の面接問題の解析と共有一 1
次のように知られています.
学生表(学名、氏名):student(stu_no、stu_name)、
科目表(カリキュラムID,カリキュラム名):course(c_id,c_name),
成績(成績ID,学号,課程,点数:grade(g_id,stu_no,c_id,fraction)
student表は以下の通りです
stu_no
stu_name
1
張三
2
李四
3
王五
4
趙六
course表は以下の通りです
c_id
c_name
1
国語
2
数学
3
英語
grade表は以下の通りです
g_id
stu_no
c_id
fraction
1
1
1
70
2
2
2
60
3
3
2
99
4
4
3
50
5
2
2
40
6
1
3
66
1、すべての張という学生の名前を調べます.
2、国語の課程の学生の学号と名前を調べます;
3、各学生の学号、氏名、総成績、平均点を展示し、総得点の高さから低さまで並べ替える.
4、すべての科目の成績が80点以上の学生の名前を調べる.
次のように知られています.
学生表(学名、氏名):student(stu_no、stu_name)、
科目表(カリキュラムID,カリキュラム名):course(c_id,c_name),
成績(成績ID,学号,課程,点数:grade(g_id,stu_no,c_id,fraction)
student表は以下の通りです
stu_no
stu_name
1
張三
2
李四
3
王五
4
趙六
course表は以下の通りです
c_id
c_name
1
国語
2
数学
3
英語
grade表は以下の通りです
g_id
stu_no
c_id
fraction
1
1
1
70
2
2
2
60
3
3
2
99
4
4
3
50
5
2
2
40
6
1
3
66
1、すべての張という学生の名前を調べます.
# , “student”
#
# like:%
select stu_name from student where stu_name like ' %';
2、国語の課程の学生の学号と名前を調べます;
# ,
#
select s.stu_no,s.stu_name from student s left join grade g on s.stu_no = g.stu_no left join course c on
g.c_id = c.c_id and c.c_name = " ";
3、各学生の学号、氏名、総成績、平均点を展示し、総得点の高さから低さまで並べ替える.
#
# avg sum
select s.stu_no,s.stu_name,sum(g.fraction),avg(g.fraction) from student s inner join
grade g on s.stu_no = g.stu_no inner join course on c g.c_id = c.c_id order by sum(g.fraction) desc;
4、すべての科目の成績が80点以上の学生の名前を調べる.
#
# 80 id id
select stu_name from student where stu_no in (select stu_no from grade where fraction > 80);