Maison >base de données >tutoriel mysql >Questions de requête de base de données qui apparaissent très fréquemment dans les entretiens Java
Les programmeurs qui ont vécu des entretiens savent tous que pendant le processus d'entretien, l'intervieweur peut vous poser toutes sortes de questions étranges, mais elles restent les mêmes, en fin de compte, vous devez poser les points clés. , comme Les étapes de fonctionnement de base d'un certain travail et comment écrire le code, etc., cet article parle des problèmes de requête de base de données les plus classiques.
Structure de table de base :
table d'enseignant(tno,tname)
étudiant(sno,sname,sage, ssex) table des étudiants
tableau des cours du cours(cno,cname,tno)
tableau de score sc(sno,cno,score)
cours de requête NO.1 Les cartes d'étudiant de tous les étudiants dont les notes en 1 sont supérieures à celles du cours 2
select a.sno from(select sno,score from sc where cno=1) a,(select sno,score from sc where cno=2) bwhere a.score>b.score and a.sno=b.sno
NO.2 Interroger les cartes d'étudiant et les notes moyennes des étudiants dont les notes moyennes sont supérieures à 60 points
select a.sno as "学号", avg(a.score) as "平均成绩" from(select sno,score from sc) a group by sno having avg(a.score)>60
NO.2 Recherchez le numéro d'étudiant, le nom, le nombre de cours choisis et les notes totales de tous les étudiants
select a.sno as 学号, b.sname as 姓名,count(a.cno) as 选课数, sum(a.score) as 总成绩from sc a, student bwhere a.sno = b.snogroup by a.sno, b.sname
ou :
selectstudent.sno as 学号, student.sname as 姓名, count(sc.cno) as 选课数, sum(score) as 总成绩from student left Outer join sc on student.sno = sc.snogroup by student.sno, sname
NO.3 Requête le nombre d'enseignants portant le nom de famille "Zhang"
selectcount(distinct(tname)) from teacher where tname like '张%‘
Ou :
select tname as "姓名", count(distinct(tname)) as "人数" from teacher where tname like'张%'group by tname
NO.4 Rechercher le numéro d'élève et le nom des élèves qui n'ont pas pris l'enseignant "Zhang San" la classe de
select student.sno,student.sname from student where sno not in (select distinct(sc.sno) from sc,course,teacher where sc.cno=course.cno and teacher.tno=course.tno and teacher.tname='张三')
NO .5 Rechercher le numéro d'étudiant et le nom des étudiants qui ont étudié à la fois le cours 1 et le cours 2
select sno, sname from studentwhere sno in (select sno from sc where sc.cno = 1)and sno in (select sno from sc where sc.cno = 2)
ou :
selectc.sno, c.sname from(select sno from sc where sc.cno = 1) a,(select sno from sc where sc.cno = 2) b,student cwhere a.sno = b.sno and a.sno = c.sno
ou :
select student.sno,student.sname from student,sc where student.sno=sc.sno and sc.cno=1and exists( select * from sc as sc_2 where sc_2.sno=sc.sno and sc_2.cno=2)
NON .6 Rechercher les numéros d'étudiant et les noms de tous les étudiants qui ont étudié tous les cours enseignés par « Li Si »
select a.sno, a.sname from student a, sc bwhere a.sno = b.sno and b.cno in(select c.cno from course c, teacher d where c.tno = d.tno and d.tname = '李四')
ou :
select a.sno, a.sname from student a, sc b,(select c.cno from course c, teacher d where c.tno = d.tno and d.tname = '李四') ewhere a.sno = b.sno and b.cno = e.cno
NO.7 Interroger le cours numéro 1 Les numéros d'étudiants et les noms de tous les étudiants dont les scores sont supérieurs à ceux du cours numéro 2
<p style="font-family: "Microsoft Yahei", "Hiragino Sans GB", Helvetica, "Helvetica Neue", 微软雅黑, Tahoma, Arial, sans-serif; white-space: normal;">select a.sno, a.sname from student a,</p><p style="font-family: "Microsoft Yahei", "Hiragino Sans GB", Helvetica, "Helvetica Neue", 微软雅黑, Tahoma, Arial, sans-serif; white-space: normal;">(select sno, score from sc where cno = 1) b,</p><p style="font-family: "Microsoft Yahei", "Hiragino Sans GB", Helvetica, "Helvetica Neue", 微软雅黑, Tahoma, Arial, sans-serif; white-space: normal;">(select sno, score from sc where cno = 2) c</p><p style="font-family: "Microsoft Yahei", "Hiragino Sans GB", Helvetica, "Helvetica Neue", 微软雅黑, Tahoma, Arial, sans-serif; white-space: normal;">where b.score > c.score and b.sno = c.sno and a.sno = b.sno<br/></p>
NO.8 Interroger les numéros d'étudiants et les noms de tous les étudiants dont les scores sont inférieurs à 60 points dans le cours
select sno,sname from studentwhere sno not in (select distinct sno from sc where score > 60)
NO.9 Interrogez le numéro d'étudiant et le nom des étudiants qui ont au moins un cours qui est le identique à l'étudiant avec le numéro d'étudiant 1
select distinct a.sno, a.snamefrom student a, sc bwhere a.sno <> 1 and a.sno=b.sno andb.cno in (select cno from sc where sno = 1)
Ou :
select s.sno,s.sname from student s,(select sc.sno from scwhere sc.cno in (select sc1.cno from sc sc1 where sc1.sno=1)and sc.sno<>1group by sc.sno)r1where r1.sno=s.sno
Voici les questions que vous pouvez souvent rencontrer lors des entretiens pour tâches liées aux bases de données Collectez-les rapidement et regardez-les bien !
[Cours recommandé : Vidéo d'apprentissage MYSQL]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!