Heim > Datenbank > MySQL-Tutorial > Fragen zur Datenbankabfrage, die häufig in Java-Interviews auftauchen

Fragen zur Datenbankabfrage, die häufig in Java-Interviews auftauchen

little bottle
Freigeben: 2019-04-04 18:02:47
Original
3025 Leute haben es durchsucht

Programmierer, die Erfahrung mit Interviews haben, wissen alle, dass der Interviewer Ihnen während des Interviewprozesses alle möglichen seltsamen Fragen stellen kann, aber am Ende müssen Sie die wichtigsten Punkte stellen B. Die grundlegenden Betriebsschritte eines bestimmten Jobs und das Schreiben des Codes usw. In diesem Artikel werden die klassischsten Datenbankabfrageprobleme behandelt.

Fragen zur Datenbankabfrage, die häufig in Java-Interviews auftauchen

Grundlegende Tabellenstruktur:

Teacher(tno,tname) Lehrertabelle

student(sno,sname,sage, ssex) student table

course(cno,cname,tno) course table

sc(sno,cno,score) score table

NR.1-Abfragekurs Die Studentenausweise aller Studenten, deren Noten in 1 höher sind als die in Kurs 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
Nach dem Login kopieren

NR.2 Fragen Sie die Studentenausweise und Durchschnittsnoten von Studenten ab, deren Durchschnittsnoten mehr als 60 Punkte betragen

select a.sno as "学号", avg(a.score) as "平均成绩" from(select sno,score from sc) a group by sno having avg(a.score)>60
Nach dem Login kopieren

NO.2 Abfrage aller Studentennummern, Namen, Anzahl der belegten Kurse und Gesamtnoten

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
Nach dem Login kopieren

oder:

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
Nach dem Login kopieren

NO.3 Abfrage der Anzahl der Lehrer mit dem Nachnamen „Zhang ”

selectcount(distinct(tname)) from teacher where tname like '张%‘
Nach dem Login kopieren

oder:

select tname as "姓名", count(distinct(tname)) as "人数" from teacher where tname like'张%'group by tname
Nach dem Login kopieren

NR.4 Fragen Sie die Schülernummer und den Namen von Schülern ab, die die Klasse von „Zhang San“ nicht studiert haben

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='张三')
Nach dem Login kopieren

NR.5 Abfrage die Studenten, die sowohl Kurs 1 als auch Kurs 2 studiert haben. Studenten-ID, Name

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)
Nach dem Login kopieren

oder:

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
Nach dem Login kopieren

oder:

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)
Nach dem Login kopieren

NO.6 Fragen Sie die Studenten-IDs aller Studenten ab die alle von „Li Si“ unterrichteten Kurse studiert haben, nennen Sie

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 = '李四')
Nach dem Login kopieren

oder:

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
Nach dem Login kopieren

NR.7 Fragen Sie die Studentennummern und Namen aller Studenten ab, deren Noten in Kurs Nummer 1 besser sind als diejenigen in Kurs Nummer 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>
Nach dem Login kopieren

NEIN.8 Fragen Sie die Studentennummern und Namen aller Studenten ab, deren Kursergebnisse weniger als 60 Punkte betragen

select sno,sname from studentwhere sno not in (select distinct sno from sc where score > 60)
Nach dem Login kopieren

NEIN. 9 Fragen Sie die Kurse ab, die von Studenten mit mindestens einem Kurs und der Studentennummer 1 belegt wurden. Die Studentennummer und der Name der gleichen Klassenkameraden

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)
Nach dem Login kopieren

oder:

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
Nach dem Login kopieren

Dies sind die Fragen, die Ihnen in Vorstellungsgesprächen für Datenbankjobs häufig begegnen. Beeilen Sie sich und sammeln Sie sie. Stehen Sie auf und schauen Sie genau hin!

[Empfohlener Kurs: MYSQL-Lernvideo]

Das obige ist der detaillierte Inhalt vonFragen zur Datenbankabfrage, die häufig in Java-Interviews auftauchen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage