Comprendre 50 instructions SQL couramment utilisées et réussir l'entretien

50 instructions sql couramment utilisées

Étudiant(S#,Snom,Sage,Sexe) Table des étudiants

Cours(C#,Cname,T#) Calendrier des cours

SC(S#,C#,score) Feuille de score

Enseignant(T#,Tname) Table Enseignant

question:

1. Interroger le nombre d'étudiants de tous les étudiants ayant des notes supérieures dans le cours " 001 " par rapport au cours " 002 " ;

 select aS# from (select s#,score from SC where C#='001') a,(select s#,score

 de SC où C#='002') b

 où a.score>b.score et as#=bs# ;

2. Interroger le nombre d'étudiants et la note moyenne des étudiants dont la note moyenne est supérieure à 60 ;

    sélectionnez S #, moy (score)

    de sc

    grouper par S# ayant avg(score) > 60 ;

3. Renseignez-vous sur le numéro d'étudiant, le nom, le nombre de cours et les notes totales de tous les étudiants;

 sélectionnez Student.S#,Student.Sname,count(SC.C#),sum(score)

 de l'étudiant à gauche Outer join SC on Student.S#=SC.S#

 grouper par Student.S#,Sname

4. Interrogez le nombre d'enseignants avec le nom de famille "Li" ;

 select count(distinct(Tname))

 du professeur

 où Tname comme 'Li%' ;

5. Renseignez-vous sur le numéro d'étudiant et le nom des étudiants qui n'ont pas étudié la classe du professeur "Ye Ping" ;

    sélectionnez Student.S#,Student.Sname

    de l'étudiant 

    où S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');

6. Interroger le numéro d'étudiant et le nom des étudiants qui ont étudié « 001 » et qui ont également suivi le cours numéroté « 002 » ;

 sélectionnez Student.S#,Student.Sname from Student,SC où Student.S#=SC.S# et SC.C#='001'et existe (Sélectionnez * de SC comme SC_2 où SC_2.S#=SC.S# et SC_2.C#='002');

7. Interrogez les numéros d'étudiants et les noms des étudiants qui ont étudié tous les cours enseignés par l'enseignant "Ye Ping" ;

 sélectionnez S #, Sname

 de l'étudiant

 où S# dans (sélectionnez S# dans SC ,Course ,Teacher où SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' groupe par S# ayant count(SC. C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平'));

8. Interroger les numéros d'étudiants et les noms de tous les étudiants dont les notes du cours numéro « 002 » sont inférieures à celles du cours numéro « 001 » ;

 Sélectionnez S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2

 de Student,SC où Student.S#=SC.S# et C#='001') S_2 où score2 <score ;

9. Interrogez les numéros d'étudiants et les noms de tous les étudiants dont les notes de cours sont inférieures à 60 ;

 sélectionnez S #, Sname

 de l'étudiant

 où S# pas dans (sélectionnez Student.S# à partir de Student,SC où SS#=SC.S# et score> 60 );

10. Interroger le numéro d'étudiant et le nom des étudiants qui n'ont pas suivi tous les cours ;

    sélectionnez Student.S#,Student.Sname

    de l'étudiant, SC

    où Student.S#=SC.S# group by Student.S#,Student.Sname ayant count(C#) <(select count(C#) from Course);

11. Interroger le numéro d'étudiant et le nom de l'étudiant qui a au moins un cours et l'étudiant dont le numéro d'étudiant est « 1001 » ;

    sélectionnez S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001' ;

12. S'informer des numéros d'étudiants et des noms des autres étudiants ayant suivi au moins un cours de l'étudiant dont le numéro d'étudiant est « 001 » ;

    sélectionnez SC.S#,Sname distinct

    de l'étudiant, SC

    où Student.S#=SC.S# et C# in (sélectionnez C# à partir de SC où S#='001');

13. Remplacez les notes des cours enseignés par l'enseignant "Ye Ping" dans le tableau "SC" par la note moyenne de ce cours ;

    mise à jour SC set score=(select avg(SC_2.score)

    de SC SC_2

    où SC_2.C#=SC.C# ) de Course,Teacher où Course.C#=SC.C# et Course.T#=Teacher.T# et Teacher.Tname='叶平');

14. Renseignez -vous sur le numéro d'étudiant et le nom des autres étudiants qui ont exactement le même cours que le camarade de " 1002 ";

    sélectionnez S# à partir de SC où C# dans (sélectionnez C# à partir de SC où S#='1002')

    grouper par S# ayant count(*)=(select count(*) from SC where S#='1002');

15. Supprimez l'enregistrement de la table SC de l'apprentissage de la classe de l'enseignant "Ye Ping" ;

    Supprimer SC

    du cours, Enseignant 

    où Course.C#=SC.C# et Course.T#= Teacher.T# et Tname='叶平' ;

16. Insérez des enregistrements dans la table SC Ces enregistrements doivent remplir les conditions suivantes : le nombre d'étudiants n'ayant pas suivi le cours numéroté " 003 ", 2 ,

    La note moyenne de la classe ;

    Insérez SC sélectionnez S #, '002', (Sélectionnez la moyenne (score)

    from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');

17. Affichez les notes de tous les élèves des cours " Base de données ", " Gestion d'entreprise " et " Anglais " de haut en bas selon la note moyenne, et affichez-les sous la forme suivante : ID étudiant, Base de données, Gestion d'entreprise, Anglais, Nombre de cours valides , le score moyen effectif

    SÉLECTIONNER S# comme StudentID

        ,(SELECT score FROM SC WHERE SC.S#=tS# AND C#='004') Base de données AS

        ,(SELECT score FROM SC WHERE SC.S#=tS# AND C#='001') AS Enterprise Management

        ,(SELECT score FROM SC WHERE SC.S#=tS# AND C#='006') AS 法语

        ,COUNT(*) AS nombre de cours valides, AVG(t.score) AS note moyenne

    DE SC COMME t

    GROUPER PAR S#

    ORDER BY moy(t.score) 

18. Interroger les scores les plus élevés et les plus bas de chaque matière : affichage sous la forme suivante : ID du cours, score le plus élevé, score le plus bas

    SELECT LC# Comme ID de cours, L.score AS score le plus élevé, R.score AS score le plus bas

    DE SC L ,SC COMME R

    OÙ LC# = RC# et

        L.score = (SELECT MAX(IL.score)

                      DE SC AS IL, étudiant AS IM

                      OÙ LC# = IL.C# et IM.S#=IL.S#

                      GROUPER PAR IL.C#)

        ET

        R.Score = (SELECT MIN(IR.score)

                      DE SC COMME IR

                      OÙ RC# = IR.C#

                  GROUPER PAR IR.C#

                    );

19. Selon le score moyen de chaque matière de bas en haut et le pourcentage de taux de réussite de haut en bas

    SELECT tC# AS numéro de cours,max(course.Cname)AS nom du cours,isnull(AVG(score), 0 ) AS note moyenne

        , 100  * SUM(CASE WHEN isnull(score, 0 )>= 60  THEN  1  ELSE  0  END)/COUNT(*) AS pourcentage de réussite

    DE SC T,Cours

    où tC#=course.C#

    GROUPER PAR tC#

    ORDER BY  100  * SUM(CASE WHEN isnull(score, 0 )>= 60  THEN  1  ELSE  0  END)/COUNT(*) DESC

20. Renseignez-vous sur les notes moyennes et les pourcentages de réussite dans les cours suivants (affichés avec "1 ligne") : Gestion d'entreprise ( 001 ), Marx ( 002 ), OO&UML ( 003 ), Base de données ( 004 )

    SELECT SUM(CASE WHEN C# ='001' THEN score ELSE  0  END)/SUM(CASE C# WHEN '001' THEN  1  ELSE  0  END) AS score moyen en gestion d'entreprise

        , 100  * SUM(CASE WHEN C# = '001' AND score >=  60  THEN  1  ELSE  0  END)/SUM(CASE WHEN C# = '001' THEN  1  ELSE  0  END) AS Pourcentage de réussite en gestion d'entreprise

        ,SUM(CASE WHEN C# = '002' THEN score ELSE  0  END)/SUM(CASE C# WHEN '002' THEN  1  ELSE  0  END) AS Score moyen maximum

        , 100  * SUM(CASE WHEN C# = '002' AND score >=  60  THEN  1  ELSE  0  END)/SUM(CASE WHEN C# = '002' THEN  1  ELSE  0  END) AS Max pourcentage de réussite

        ,SUM(CASE WHEN C# = '003' THEN score ELSE  0  END)/SUM(CASE C# WHEN '003' THEN  1  ELSE  0  END) AS UML平均分

        , 100  * SUM(CASE WHEN C# = '003' AND score >=  60  THEN  1  ELSE  0  END)/SUM(CASE WHEN C# = '003' THEN  1  ELSE  0  END) AS UML及格百分数

        ,SUM(CASE WHEN C# = '004' THEN score ELSE  0  END)/SUM(CASE C# WHEN '004' THEN  1  ELSE  0  END) Score moyen de la base de données AS

        , 100  * SUM(CASE WHEN C# = '004' AND score >=  60  THEN  1  ELSE  0  END)/SUM(CASE WHEN C# = '004' THEN  1  ELSE  0  END) AS pourcentage de réussite de la base de données

 DE SC

21. Interrogez les notes moyennes des différents cours enseignés par différents enseignants et affichez-les de haut en bas

 SELECT max(ZT#) ID de l'enseignant AS, MAX(Z.Tname) nom de l'enseignant AS, CC# ID du cours AS, MAX(C.Cname) nom du cours AS, AVG(Score) note moyenne AS

    DE SC AS T,Cours AS C ,Enseignant AS Z

    où TC#=CC# et CT#=ZT#

 GROUPER PAR CC#

 ORDER BY AVG(Score) DESC

22. Interroger  les relevés de notes des étudiants qui se sont classés de la 3ème  à  la 6ème dans les cours suivants  : gestion d'entreprise ( 001 ), Marx ( 002 ), UML ( 003 ), base de données ( 004 )

    [numéro d'étudiant], [nom de l'étudiant], gestion d'entreprise, Marx, UML, base de données, moyenne pondérée cumulative

    SELECT DISTINCT top  3

      SC.S# Comme numéro d'étudiant,

        Student.Sname AS nom de l'étudiant ,

      T1.score AS Gestion d'entreprise,

      T2.score AS Marx,

      T3.score AS UML,

      Base de données T4.score AS,

      ISNULL(T1.score, 0 ) + ISNULL(T2.score, 0 ) + ISNULL(T3.score, 0 ) + ISNULL(T4.score, 0 ) as 总分

      DE L'étudiant, SC GAUCHE REJOINDRE SC COMME T1

                      SUR SC.S# = T1.S# ET T1.C# = '001'

            GAUCHE JOINDRE SC COMME T2

                      SUR SC.S# = T2.S# ET T2.C# = '002'

            GAUCHE JOINDRE SC COMME T3

                      SUR SC.S# = T3.S# ET T3.C# = '003'

            GAUCHE JOINDRE SC COMME T4

                      SUR SC.S# = T4.S# ET T4.C# = '004'

      WHERE étudiant.S#=SC.S# et

      ISNULL(T1.score, 0 ) + ISNULL(T2.score, 0 ) + ISNULL(T3.score, 0 ) + ISNULL(T4.score, 0 )

      PAS DEDANS

      (SÉLECTIONNER

            DISTINCT

            TOP  15  AVEC CRAVATES

            ISNULL(T1.score, 0 ) + ISNULL(T2.score, 0 ) + ISNULL(T3.score, 0 ) + ISNULL(T4.score, 0 )

      DE sc

            JOINDRE GAUCHE sc COMME T1

                      ON sc.S# = T1.S# AND T1.C# = 'k1'

           JOINDRE GAUCHE sc COMME T2

                      ON sc.S# = T2.S# AND T2.C# = 'k2'

            JOINDRE GAUCHE sc COMME T3

                      ON sc.S# = T3.S# AND T3.C# = 'k3'

            JOINDRE GAUCHE sc COMME T4

                      ON sc.S# = T4.S# AND T4.C# = 'k4'

      ORDER BY ISNULL(T1.score, 0 ) + ISNULL(T2.score, 0 ) + ISNULL(T3.score, 0 ) + ISNULL(T4.score, 0 ) DESC);

23. Imprimez statistiquement les résultats de chaque sujet, le nombre de personnes dans chaque segment de score : identifiant du cours, nom du cours, [100-85], [85-70], [70-60], [<60]

    SELECT SC.C# comme identifiant de cours, Cname comme nom de cours

        ,SOMME(CAS QUAND score ENTRE  85  ET  100  PUIS  1  SINON  0  FIN) COMME [100 - 85]

        ,SOMME(CAS QUAND score ENTRE  70  ET  85  PUIS  1  AUTREMENT  0  FIN) COMME [85 - 70]

        ,SOMME(CAS QUAND score ENTRE  60  ET  70  PUIS  1  AUTREMENT  0  FIN) COMME [70 - 60]

        ,SOMME(CAS QUAND score <  60  PUIS  1  SINON  0  FIN) COMME [60 -]

    DE SC, Cours

    où SC.C#=Cours.C#

    GROUP BY SC.C#,Cname ;

24. Interrogez les notes moyennes et les classements des étudiants

      SELECT  1 +(SELECT COUNT( note moyenne distincte)

              FROM (SELECT S#,AVG(score) AS moyenne pondérée cumulative

                      DE SC

                  GROUPER PAR S#

                  ) COMME T1

            OÙ moyenne > T2. moyenne) comme rang,

      S # comme numéro d'étudiant, moyenne pondérée cumulative

    FROM (SELECT S#,AVG(score) Note moyenne

            DE SC

        GROUPER PAR S#

        ) COMME T2

    COMMANDER PAR GPA desc ;

25. Interrogez les enregistrements des trois meilleurs scores dans chaque matière : (sans tenir compte de l'égalité des scores)

      SÉLECTIONNEZ t1.S# comme ID d'étudiant, t1.C# comme ID de cours, Score comme score

      DE SC t1

      WHERE score IN (SÉLECTIONNER LE TOP  3  score

              DE SC

              OÙ t1.C#= C#

            ORDRE PAR note DESC

              )

      ORDRE PAR t1.C# ;

26. Interroger le nombre d'étudiants inscrits à chaque cours

 sélectionnez c#, count(S#) du groupe sc par C# ;

27. Interrogez les numéros d'étudiants et les noms de tous les étudiants qui n'ont suivi qu'un seul cours

 select SC.S#,Student.Sname,count(C#) AS nombre de cours

 de SC, étudiant

 où SC.S#=Student.S# groupe par SC.S# ,Student.Sname ayant count(C#)= 1 ;

28. Interroger le nombre de garçons et de filles

    Sélectionnez count(Ssex) comme nombre de garçons du groupe Student par Ssex ayant Ssex='male' ;

    Sélectionnez count(Ssex) comme nombre de filles du groupe Student par Ssex ayant Ssex='female' ;

29. Interrogez la liste des étudiants avec le nom de famille "Zhang"

    SELECT Sname FROM Student WHERE Sname like '张%' ;

30. Interrogez la liste des élèves du même nom et du même sexe, et comptez le nombre d'élèves du même nom

 sélectionnez Sname,count(*) du groupe Student par Sname ayant count(*)> 1 ;;

31. Liste des étudiants nés en 1981 (Note : Le type de la colonne Sage dans la table Student est datetime)

    sélectionnez Sname, CONVERT(char ( 11 ),DATEPART(year,Sage)) comme âge

    de l'étudiant

    où CONVERT(char( 11 ),DATEPART(year,Sage))='1981';

32. Interrogez les notes moyennes de chaque cours, les résultats sont triés par ordre croissant des notes moyennes, et si les notes moyennes sont les mêmes, ils sont triés par ordre décroissant par numéro de cours

    Sélectionnez C #, Avg (score) du groupe SC par ordre C # par Avg (score), C # DESC ;

33. Interrogez le numéro d'étudiant, le nom et la note moyenne de tous les étudiants dont la note moyenne est supérieure à 85

    sélectionnez Sname, SC.S #, moy (score)

    de l'étudiant, SC

    où Student.S#=SC.S# groupe par SC.S#,Sname ayant avg(score)> 85 ;

34. Interroger les noms et les scores des étudiants dont le nom du cours est "base de données" et dont les scores sont inférieurs à 60

    Sélectionnez Sname,isnull(score, 0 )

    de Étudiant, SC, Cours

    où SC.S#=Student.S# et SC.C#=Course.C# et Course.Cname='数据库'et score < 60 ;

35. Renseignez-vous sur le choix de cours de tous les étudiants;

    SELECT SC.S#,SC.C#,Sname,Cname

    DE SC,Étudiant,Cours

    où SC.S#=Student.S# et SC.C#=Cours.C# ;

36. Interrogez le nom, le nom du cours et le score de tout cours avec un score de 70 ou plus ;

    SELECT distinct étudiant.S#,étudiant.Snom,SC.C#,SC.score

    DE étudiant,Sc

    WHERE SC.score>= 70  AND SC.S#=student.S# ;

37. Interrogez les cours échoués et organisez-les en fonction du numéro de cours du plus grand au plus petit

    select c# from sc où scor e < 60 trier  par C# ;

38. Interrogez le numéro d'étudiant et le nom de l'étudiant dont le numéro de cours est 003 et dont le score de cours est supérieur à 80 ;

    sélectionnez SC.S#,Student.Sname de SC,Student où SC.S#=Student.S# et Score> 80  et C#='003' ;

39. Trouver le nombre d'étudiants qui ont choisi le cours

    sélectionnez count(*) à partir de sc ;

40. Interrogez les noms des étudiants avec les notes les plus élevées et leurs notes parmi les étudiants qui ont suivi les cours enseignés par l'enseignant "Ye Ping"

    sélectionnez Student.Sname,score

    de Étudiant, SC, Cours C, Enseignant

    où Student.S#=SC.S# et SC.C#=CC# et CT#=Teacher.T# et Teacher.Tname='叶平' et SC.score=(select max(score) from SC where C#= CC# );

41. Interrogez chaque cours et le nombre correspondant de cours au choix

    sélectionnez count(*) du groupe sc par C# ;

42. Interrogez le numéro d'étudiant, le numéro de cours et la note d'étudiant des étudiants ayant les mêmes notes dans différents cours

 sélectionnez AS#,B.score distinct de SC A ,SC B où A.Score=B.Score et AC# <>BC# ;

43. Interrogez les deux premiers avec les meilleures performances dans chaque matière

    SÉLECTIONNEZ t1.S# comme ID d'étudiant, t1.C# comme ID de cours, Score comme score

      DE SC t1

      WHERE score IN (SÉLECTIONNER LE TOP  2  score

              DE SC

              OÙ t1.C#= C#

            ORDRE PAR note DESC

              )

      ORDRE PAR t1.C# ;

44. Compter le nombre d'étudiants prenant des cours au choix pour chaque cours (uniquement pour les cours avec plus de 10 étudiants). Il est nécessaire d'indiquer le numéro du cours et le nombre de cours au choix. Les résultats de la requête sont classés par ordre décroissant du nombre de personnes. Les résultats de la requête sont classés par ordre décroissant du nombre de personnes. Si le nombre de personnes est le même , ils sont classés par ordre croissant du numéro de cours. 

    sélectionner C# comme numéro de cours, compter (*) comme nombre de personnes

    de sc 

    grouper par C#

    trier par nombre(*) desc,c# 

45. Récupérer le nombre d'étudiants ayant suivi au moins deux cours

    sélectionnez S# 

    de sc 

    grouper par s#

    ayant count(*) > =  2

46. ​​Interrogez le numéro de cours et le nom du cours des cours que tous les étudiants suivent au choix

    sélectionnez C#, Cname 

    du cours 

    où C# in (sélectionnez c# dans le groupe sc par c#) 

47. Interrogez les noms des étudiants qui n'ont étudié aucun des cours enseignés par l'enseignant "Ye Ping"

    sélectionnez Sname à partir de Student où S# n'est pas dans (sélectionnez S# à partir de Course,Teacher,SC où Course.T#=Teacher.T# et SC.C#=course.C# and Tname='叶平');

48. Interroger le nombre d'étudiants et la note moyenne des étudiants qui ont échoué à plus de deux cours

    select S#,avg(isnull(score, 0 )) from SC where S# in (select S# from SC where score < 60  group by S# having count(*)> 2 )group by S#;

49. Récupérer le nombre d'étudiants dont les notes sont inférieures à 60 dans le cours " 004 " et sont triés par ordre décroissant des notes

    sélectionner S# à partir de SC où C#='004'et score < 60 trier  par score desc ;

50. Supprimer les notes du cours " 001 " du camarade " 002 "

supprimer de Sc où S#='001'et C#='001' ;

Guess you like

Origin blog.csdn.net/csd11311/article/details/125750653