SQL 개발자를 위한 인터뷰 질문: 일반적인 SQL 인터뷰 Q&A- 3부

SQL에서 어떤 유형을 joins 사용했으며 어떻게 작동하는지 설명하십시오.

답변:

  • INNER JOIN: 두 테이블에서 일치하는 데이터가 있는 행을 반환합니다.
  • LEFT JOIN: 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 반환합니다.
  • RIGHT JOIN: 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 반환합니다.
  • FULL JOIN: 일치하지 않는 행을 포함하여 두 테이블의 모든 행을 반환합니다.

 

SQL의 ACID 개념과 트랜잭션 관리에서의 역할 설명

답: ACID는 Atomicity, Consistency, Isolation, Durability. 다음은 SQL 트랜잭션 관리의 필수 속성입니다.

  • Atomicity 트랜잭션이 완전히 처리되거나 전혀 처리되지 않도록 합니다.
  • Consistency 데이터가 정의된 규칙, 제약 조건 및 조건을 준수해야 합니다.
  • Isolation 동시 트랜잭션이 서로 간섭하지 않도록 합니다.
  • Durability 트랜잭션이 완료되면 데이터베이스의 변경 사항이 안전하고 영구적으로 저장됩니다.

 

SQL 함수의 차이점은 무엇입니까 ROW_NUMBER(), RANK(), DENSE_RANK() ?

답변: ROW_NUMBER(), RANK(), DENSE_RANK() 모두 쿼리 결과의 행 번호를 지정하는 데 사용되지만 다음과 같은 차이점이 있습니다.

  • ROW_NUMBER(): 중복을 고려하지 않고 쿼리 결과의 행에 연속 번호를 할당합니다.
  • RANK(): 쿼리 결과의 행에 번호를 부여하고, 동점일 경우 다음 번호를 건너뜁니다.
  • DENSE_RANK(): 질의 결과의 행에 번호를 부여하고, 동점일 경우 다음 번호를 건너뛰지 않는다.

 

SQL에서 사용하는 방법 window functions 및 예를 제공합니다.

답변: Window functions 기본 쿼리의 결과를 변경하지 않고 관련 행 집합에서 계산을 수행할 수 있습니다. 예를 들어 창 함수를 사용하여 누계를 계산하거나 결과 집합 내에서 상위 N개의 행을 검색할 수 있습니다.

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

패턴 일치를 위해 SQL에서 정규식을 사용하는 방법

대답: SQL의 정규식은 복잡한 텍스트 패턴 검색에 사용됩니다. 그들은 종종 (Oracle에서) 또는(PostgreSQL에서) LIKE 와 같은 연산자 또는 함수 와 함께 사용됩니다. REGEXP_LIKE REGEXP_MATCHES

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

SQL에서 JSON 함수를 사용하여 JSON 데이터로 작업하는 방법

대답: SQL의 JSON 함수를 사용하면 데이터베이스에서 JSON 형식의 데이터를 쿼리, 삽입, 업데이트 및 삭제할 수 있습니다.

예를 들어 JSON_VALUE, JSON_QUERY, JSON_MODIFY(SQL Server에서)와 같은 함수 또는 ->, ->>, #>, #>> 등과 같은 연산자(PostgreSQL에서)를 사용하여 JSON 속성을 조작할 수 있습니다.

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

SQL 쿼리 최적화 및 데이터베이스 성능 튜닝을 위한 고급 기술

답변: SQL 쿼리 및 데이터베이스 성능을 최적화하기 위해 다음과 같은 기술을 사용할 수 있습니다.

  • 자주 쿼리되는 열에 대한 인덱스 사용.
  • 효율적인 데이터 검색을 위한 최적화 JOIN 및 절. WHERE
  • 필요한 경우 창 기능 및 페이지 매김 활용.
  • *를 피하여 SELECT 필요한 열만 검색합니다.
  • 경우에 따라 쿼리 힌트를 사용합니다.
  • 데이터 정규화 보장 및 중복 제거.
  • 성능 모니터링 도구를 사용하여 데이터베이스를 추적하고 미세 조정합니다.

 

SQL에서 SET 작업을 사용하는 방법 설명 (UNION, INTERSECT, EXCEPT)

대답: SET 작업은 (UNION, INTERSECT, EXCEPT) 서로 다른 쿼리의 결과 집합을 결합하고 조작하는 데 사용됩니다.

  • UNION: 둘 이상의 쿼리 결과를 단일 데이터 세트로 결합하고 중복을 제거합니다.
  • INTERSECT: 두 쿼리 결과 집합에 나타나는 행을 반환합니다.
  • EXCEPT: 첫 번째 쿼리 결과 세트에는 나타나지만 두 번째 쿼리 결과 세트에는 나타나지 않는 행을 반환합니다.

 

LEAD, LAG, FIRST_VALUE, LAST_VALUE SQL과 같은 쿼리 함수를 사용하는 방법

답변: 같은 쿼리 함수는 LEAD, LAG, FIRST_VALUE, LAST_VALUE 동일한 쿼리 결과 내의 관련 행에서 값을 검색하는 데 사용됩니다.

  • LEAD: 쿼리 결과의 다음 행에서 열 값을 가져옵니다.
  • LAG: 쿼리 결과의 이전 행에서 열 값을 가져옵니다.
  • FIRST_VALUE: 쿼리 결과에서 열의 첫 번째 값을 검색합니다.
  • LAST_VALUE: 쿼리 결과에서 열의 마지막 값을 검색합니다.