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、すべての張という学生の名前を調べます.
    #         ,        “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);