20가지 가장 일반적인 SQL 쿼리 인터뷰 질문 및 답변 [초보자 및 경험자용]
게시 됨: 2021-07-14SQL 인터뷰 에 참석하여 어떤 질문과 토론을 하게 될지 궁금하십니까? SQL 면접에 참석하기 전에 SQL 면접 질문 유형에 대한 아이디어를 가지고 마음속으로 답변을 준비할 수 있도록 하는 것이 좋습니다.
당신을 돕기 위해 SQL 인터뷰 질문의 깊이와 실제 의도를 이해하기 위해 최고의 SQL 인터뷰 질문 및 답변 가이드 를 만들었습니다. 시작하자.
SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 관리, 조작 및 쿼리하기 위해 널리 사용되는 프로그래밍 언어입니다. SQL이 관계형 데이터베이스와 통신하는 가장 빠른 언어는 아니지만 의심할 여지 없이 구조화된 데이터를 처리하는 가장 효율적인 수단입니다.
ISAM 또는 VSAM 과 같은 기존 읽기-쓰기 API와 비교하여 SQL은 두 가지 핵심 이점을 확장합니다.
- 단일 명령을 사용하여 여러 레코드에 액세스할 수 있습니다.
- 데이터베이스에서 레코드에 액세스하는 방법(인덱스 사용 여부)을 지정할 필요가 없습니다.
SQL 쿼리는 데이터베이스에 저장된 데이터에 액세스하기 위한 질문 또는 요청입니다. 데이터베이스는 정보를 표 형식으로 저장합니다. 따라서 행과 열이 포함됩니다. 데이터베이스 필드는 저장할 수 있는 정보와 관련하여 데이터베이스를 지시하는 열을 형성하지만 행에는 데이터가 포함됩니다. 다음은 "tblAlbum"이라는 샘플 데이터 세트를 보여줍니다.
원천
이 샘플 데이터를 사용하여 SQL 쿼리를 만들어 보겠습니다. 평점이 9점 이상인 앨범만 선택하는 데 집중할 것입니다. 따라서 우리는 본질적으로 9 이상의 등급을 가진 데이터베이스에서 앨범 제목 목록을 생성하도록 쿼리를 요청하고 있습니다. 원하는 답변을 얻기 위해 관련 키워드를 사용할 것입니다.
이 시나리오의 키워드는 SELECT(데이터베이스에서 정보를 가져오도록 지시), FROM(해당 데이터를 포함하는 특정 테이블) 및 WHERE(정보 액세스 기준을 지시)입니다. 이러한 키워드를 사용하면 SQL 쿼리는 다음과 같이 표시됩니다.
SELECT 앨범제목 FROM tblAlbums
WHERE 등급 >= 9;
따라서 (WHERE) 앨범 등급이 9 이상인 "tblAlbums" 테이블에서 (FROM) 데이터를 선택(SELECT)하고 있습니다. WHERE 문은 중첩된 논리가 많이 포함된 경우 매우 간단하거나 지나치게 복잡할 수 있습니다. 쿼리를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
앨범제목
교향곡 D단조
시인의 마음
이제 SQL 쿼리가 무엇이고 어떻게 작동하는지에 대한 기본적인 이해를 얻었으므로 20개의 SQL 쿼리 인터뷰 질문을 확인해 보겠습니다!
SQL 쿼리 인터뷰 질문을 시작하기 전에 이 참조 테이블을 확인하십시오. 쿼리는 이 테이블을 기반으로 합니다.
직원 정보 테이블:
엠피아이디 | 엠프 이름 | 직원 이름 | 부서 | 프로젝트 | 주소 | 생후 | 성별 |
1 | 로힛 | 굽타 | 관리자 | P1 | 델리 | 1979년 2월 12일 | 남성 |
2 | 라훌 | 마하잔 | 관리자 | P2 | 뭄바이 | 1986년 10월 10일 | 남성 |
삼 | 소니아 | 바네르지 | 인사 | P3 | 푸네 | 1983년 05월 6일 | 여자 |
4 | 안키타 | 카푸르 | 인사 | P4 | 첸나이 | 1983년 11월 28일 | 여자 |
5 | 스와티어 | 가그 | 인사 | P5 | 델리 | 1991년 6월 4일 | 여자 |
직원 위치 테이블:
엠피아이디 | 직위 | 가입 날짜 | 샐러리 |
1 | 경영진 | 2020년 01월 4일 | 75000 |
2 | 관리자 | 2020년 03월 4일 | 500000 |
삼 | 관리자 | 2020년 2월 4일 | 150000 |
2 | 장교 | 2020년 2월 4일 | 90000 |
1 | 관리자 | 2020년 03월 4일 | 300000 |
SQL 쿼리 인터뷰 질문 및 답변
- 별칭 이름을 EmpName으로 사용하여 대문자로 된 EmployeeInfo 테이블에서 EmpFname을 가져오는 쿼리를 작성하십시오.
이 조건에 대한 쿼리는 다음과 같습니다.
SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;
- 'HR' 부서에 근무하는 직원 수를 구하는 쿼리를 작성하세요.
이 수요에 대한 쿼리는 다음과 같습니다.
SELECT COUNT(*) FROM EmployeeInfo WHERE Department = 'HR';
- 현재 날짜를 가져오기 위해 어떤 쿼리를 작성하시겠습니까?
현재 날짜를 가져오기 위해 SQL 서버에서 다음 쿼리를 작성할 수 있습니다.
SELECT GETDATE();
현재 날짜를 가져오기 위해 MySQL에서 다음 쿼리를 작성할 수 있습니다.
SELECT SYSTDATE();
- EmployeeInfo 테이블의 Address 컬럼에서 장소명(괄호 앞의 문자열)만 가져오는 쿼리를 작성하십시오.
MySQL에서 MID 함수를 사용하여 다음 쿼리를 생성할 수 있습니다.
SELECT MID(주소, 0, LOCATE('(',주소)) FROM EmployeeInfo;
SUBSTRING을 사용하여 다음 쿼리를 만들 수 있습니다.
SELECT SUBSTRING(주소, 1, CHARINDEX('(',주소)) FROM EmployeeInfo;
더 읽어보기: 데이터 과학을 위한 SQL: SQL을 선택해야 하는 이유
- 데이터와 구조가 다른 테이블에서 복사된 새 테이블을 만드는 쿼리를 작성합니다.
SELECT INTO 명령을 사용하여 다음 쿼리를 생성할 수 있습니다.
SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;
MySQL에서 CREATE 명령을 사용하여 다음 쿼리를 생성할 수 있습니다.
CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;
- 'S'로 시작하는 직원의 이름을 표시하는 쿼리를 작성하십시오.
이것은 이름이 'S'로 시작하는 직원의 이름을 가져오기 위해 작성해야 하는 쿼리입니다.
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE 'S%';
- 상위 N개의 레코드를 검색하는 쿼리를 작성하십시오.
SQL Server에서 TOP 명령을 사용하여 쿼리를 작성할 수 있습니다.
SELECT TOP N * FROM EmployeePosition ORDER BY 급여 DESC;
MySQL에서 LIMIT 명령을 사용하여 쿼리를 생성할 수도 있습니다.
SELECT * FROM EmpPosition ORDER BY 급여 DESC LIMIT N;
- Department에서 오름차순으로 정렬하고 EmpLname에서 내림차순으로 정렬한 EmployeeInfo 테이블에서 관련 레코드를 가져오는 쿼리를 작성합니다.
이 목적을 위해 SQL에서 ORDER BY 문을 사용해야 합니다.
SELECT * FROM EmployeeInfo ORDER BY 부서 asc, EmpFname desc;
- EmpFname이 'A'로 끝나는 직원의 세부 정보를 가져오는 쿼리를 작성하십시오.
SQL에서 LIKE 연산자를 사용하여 이 문제에 대한 쿼리를 생성할 수 있습니다.
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE '____a';
10. "DELHI"를 주소로 사용하는 직원의 세부 정보를 가져오는 쿼리를 만듭니다.
SELECT * FROM EmployeeInfo WHERE 주소 LIKE 'DELHI%';
읽기: 2020년 상위 9가지 데이터 과학 도구
- 관리 직책도 가지고 있는 모든 직원을 가져오는 쿼리를 작성하십시오.
SQL 인터뷰 질문 및 답변 가이드는 이 질문 없이 완료되지 않습니다.
다음은 관리 직위를 보유한 직원을 가져오는 쿼리입니다.
E.EmpFname, E.EmpLname, P.EmpPosition 선택
FROM EmployeeInfo E INNER JOIN EmployeePosition P ON
E.EmpID = P.EmpID 및 P.EmpPosition IN('관리자');
- EmployeeInfo 테이블에서 첫 번째 및 마지막 레코드를 생성하는 쿼리를 만듭니다.
가장 일반적인 SQL 면접 질문 중 하나입니다.
다음은 EmployeeInfo 테이블에서 첫 번째 레코드를 가져오는 쿼리입니다.
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MIN(EmpID) FROM EmployeeInfo);
EmployeeInfo 테이블에서 마지막 레코드를 가져오는 쿼리는 다음과 같습니다.
SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MAX(EmpID) FROM EmployeeInfo);
- 쿼리에 전달된 값이 EmployeeInfo 및 EmployeePosition 테이블의 날짜 형식을 따르는지 확인하는 쿼리를 만듭니다.
SQL에서 IsDate() 함수를 사용하여 전달된 값이 지정된 형식을 따르는지 여부를 확인할 수 있습니다. 그에 따라 1(true) 또는 0(false)을 반환합니다. 쿼리는 다음과 같이 표시됩니다.
ISDATE('01/04/2020')를 "MM/DD/YY"로 선택하십시오.
전달된 값이 지정된 형식과 일치하지 않으므로 이 쿼리를 실행하면 0이 반환됩니다.
- 급여가 150000 이상인 직원을 표시하는 쿼리를 생성합니다.
이 요청에 대한 쿼리는 다음과 같습니다.
SELECT EmpName FROM 직원 WHERE 급여>=150000;
- 날짜를 사용하여 연도를 가져오는 쿼리를 작성하십시오.
다음 쿼리를 실행하여 SQL 서버의 날짜에서 연도를 가져올 수 있습니다.
SELECT YEAR(GETDATE()) "연도"로;
- EmpPostion과 각 직원 위치에 대해 지불된 총 급여를 가져오는 SQL 쿼리를 만듭니다.
이 요청에 대한 쿼리는 다음과 같습니다.
SELECT EmpPosition, EmployeePosition GROUP BY EmpPosition에서 SUM(급여);
- 테이블에서 중복 레코드를 찾는 쿼리를 작성하십시오.
모든 SQL 인터뷰 질문 및 답변 가이드에서 가장 일반적인 질문 중 하나입니다.
SELECT EmpID, EmpFname, Department COUNT(*)
FROM EmployeeInfo GROUP BY EmpID, EmpFname, 부서
카운트(*) > 1;
- EmpPosition 테이블에서 세 번째로 높은 급여를 가져오는 쿼리를 만듭니다.
SELECT TOP 1 급여
에서(
SELECT TOP 3 급여
직원_테이블에서
ORDER BY 급여 DESC) AS emp
ORDER BY 급여 ASC;
- EmployeeInfo 테이블에서 짝수 및 홀수 레코드를 찾는 SQL 쿼리를 작성합니다.
MOD() 함수를 사용하여 테이블에서 짝수 및 홀수 레코드를 가져와야 합니다. 짝수 레코드의 경우 쿼리는 다음과 같습니다.
SELECT EmpID FROM (SELECT rowno, EmployeeInfo에서 EmpID) WHERE MOD(rowno,2)=0;
홀수 레코드의 경우 쿼리는 다음과 같습니다.
SELECT EmpID FROM (SELECT rowno, EmployeeInfo에서 EmpID) WHERE MOD(rowno,2)=1;
- 같은 부서의 직원 목록을 가져오는 쿼리를 만듭니다.
이 요청에 대한 쿼리는 다음과 같습니다.
DISTINCT E.EmpID, E.EmpFname, E.DepartmentFROM EmployeeInfo E, Employee E1 선택
WHERE E.Department = E1.Department 및 E.EmpID != E1.EmpID;
세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
이것으로 SQL 쿼리 인터뷰 질문 목록이 끝났습니다. 이러한 쿼리가 표준 SQL 쿼리 패턴과 SQL 쿼리를 만드는 방법에 대한 공정한 아이디어를 제공하기를 바랍니다. 더 많이 연습할수록 데이터 테이블의 데이터에 액세스하고 조작하기 위해 SQL 쿼리를 작성하는 데 더 능숙해질 것입니다.
SQL 지식을 향상하고 전체 스택 개발에 대해 자세히 알고 싶다면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습을 제공하는 IIIT-B 및 upGrad의 전체 스택 소프트웨어 개발 PG 디플로마를 확인하십시오. 워크숍, 업계 전문가와의 멘토링, 업계 멘토와의 1:1 학습, 최고의 기업과의 400시간 이상의 학습 및 취업 지원.