자격을 갖춘 Java 백엔드 개발자가 되려면 데이터베이스 지식이 필수적입니다. 데이터베이스에 대한 친숙도 검사는 기본 능력이 탄탄한지 여부에 대한 검사이기도 합니다.
(더 많은 관련 면접 질문 추천: java 면접 질문 및 답변)
특히 주니어 개발자의 경우 면접에서 프레임워크 관련 지식은 묻지 않을 수 있지만, 데이터베이스 지식을 조사하는 데는 절대 실패하지 않을 것입니다. SQL 문의 유형은 일상적인 개발이나 인터뷰 준비에 도움이 될 것입니다.
기본 테이블 구조:
student(sno,sname,sage,ssex)学生表 course(cno,cname,tno) 课程表 sc(sno,cno,score) 成绩表 teacher(tno,tname) 教师表
101, 1코스 성적이 2코스 성적보다 높은 모든 학생의 학생 ID를 쿼리합니다
select a.sno from (select sno,score from sc where cno=1) a, (select sno,score from sc where cno=2) b where a.score>b.score and a.sno=b.sno
102, 평균 성적이 2코스보다 높은 학생의 학생 ID와 평균 성적을 쿼리합니다. 60점
select a.sno as "学号", avg(a.score) as "平均成绩" from (select sno,score from sc) a group by sno having avg(a.score)>60
103, 학생 번호, 이름, 수강한 과목 수 및 모든 학생의 총점을 확인하세요
select a.sno as 学号, b.sname as 姓名, count(a.cno) as 选课数, sum(a.score) as 总成绩 from sc a, student b where a.sno = b.sno group by a.sno, b.sname
또는:
selectstudent.sno as 学号, student.sname as 姓名, count(sc.cno) as 选课数, sum(score) as 总成绩 from student left Outer join sc on student.sno = sc.sno group by student.sno, sname
104, "Zhang"이라는 교사의 수를 확인하세요
selectcount(distinct(tname)) from teacher where tname like '张%‘
또는:
select tname as "姓名", count(distinct(tname)) as "人数" from teacher where tname like'张%' group by tname
105, "Zhang San" 수업을 수강하지 않은 학생의 학번과 이름을 쿼리하세요.
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='张三')
(추천 학습: java 강좌)
106, 학생 번호와 이름을 쿼리하세요. 코스 1과 코스 2를 모두 공부한 학생 수
select sno, sname from student where sno in (select sno from sc where sc.cno = 1) and sno in (select sno from sc where sc.cno = 2)
또는
selectc.sno, c.sname from (select sno from sc where sc.cno = 1) a, (select sno from sc where sc.cno = 2) b, student c where a.sno = b.sno and a.sno = c.sno
또는
select student.sno,student.sname from student,sc where student.sno=sc.sno and sc.cno=1 and exists( select * from sc as sc_2 where sc_2.sno=sc.sno and sc_2.cno=2)
107, "Li Si"가 가르치는 모든 코스를 공부한 모든 학생의 학생 ID와 이름을 쿼리합니다.
select a.sno, a.sname from student a, sc b where a.sno = b.sno and b.cno in (select c.cno from course c, teacher d where c.tno = d.tno and d.tname = '李四')
또는:
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 = '李四') e where a.sno = b.sno and b.cno = e.cno
108, 코스 번호 1의 점수가 코스 번호 2의 점수보다 높은 모든 학생의 학생 번호와 이름을 쿼리합니다.
select a.sno, a.sname from student a, (select sno, score from sc where cno = 1) b, (select sno, score from sc where cno = 2) c where b.score > c.score and b.sno = c.sno and a.sno = b.sno
109, 모든 학생의 학생 번호와 이름을 쿼리합니다.
select sno,sname from student where sno not in (select distinct sno from sc where score > 60)
110 과목에서 점수가 60점 미만이고 하나 이상의 과목을 쿼리합니다. 1번 학생과 동일한 과목을 수강하는 학생의 학번 및 이름
select distinct a.sno, a.sname from student a, sc b where a.sno <> 1 and a.sno=b.sno and b.cno in (select cno from sc where sno = 1)
또는:
select s.sno,s.sname from student s, (select sc.sno from sc where sc.cno in (select sc1.cno from sc sc1 where sc1.sno=1)and sc.sno<>1 group by sc.sno)r1 where r1.sno=s.sno
관련 권장 사항: Java 입문 튜토리얼
위 내용은 자바 고주파 기본 면접 질문——(9)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!