상위 50개 SQL Server 인터뷰 질문 및 답변(2025)

꿈의 직업을 얻기 위한 신입 지원자와 경력 지원자를 위한 SQL Server 면접 질문과 답변은 다음과 같습니다.

신입생을 위한 SQL Server 인터뷰 질문 및 답변


1. SQL Server의 두 가지 인증 모드는 무엇입니까?

두 가지 인증 모드가 있습니다 –

  • Windows 모드
  • 혼합 모드

SQL Server 구성 속성의 도구 메뉴를 선택하고 보안 페이지를 선택하여 모드를 변경할 수 있습니다.

👉 무료 PDF 다운로드: SQL Server 인터뷰 질문 및 답변


2. SQL 프로파일러란 무엇입니까?

SQL 프로파일러는 시스템 관리자가 SQL 서버의 이벤트를 모니터링할 수 있는 도구입니다. 주로 분석을 위해 파일이나 테이블의 각 이벤트에 대한 데이터를 캡처하고 저장하는 데 사용됩니다.


3. 재귀 저장 프로시저란 무엇입니까?

SQL Server는 자체적으로 호출하는 재귀 저장 프로시저를 지원합니다. 재귀 저장 프로시저(Recursive Stored Procedure)는 해결책이 반복적으로 도달하는 문제 해결 방법으로 정의될 수 있습니다. 최대 32개 레벨까지 중첩할 수 있습니다.

CREATE PROCEDURE [dbo].[Fact]
(
@Number Integer,
@RetVal Integer OUTPUT
)
AS
DECLARE @In Integer
DECLARE @Out Integer
IF @Number != 1
BEGIN
SELECT @In = @Number – 1
EXEC Fact @In, @Out OUTPUT - Same stored procedure has been called again(Recursively)
SELECT @RetVal = @Number * @Out
END
ELSE
BEGIN
SELECT @RetVal = 1
END
RETURN
GO

4. 로컬 임시 테이블과 글로벌 임시 테이블의 차이점은 무엇입니까?

  • 로컬 임시 테이블은 연결이 있을 때 표시되며 연결이 닫히면 삭제됩니다.
CREATE TABLE #<tablename>
  • 전역 임시 테이블은 모든 사용자에게 표시되며 이를 생성한 연결이 닫히면 삭제됩니다.
CREATE TABLE ##<tablename>

5. CHECK 제약조건이란 무엇입니까?

CHECK 제약 조건을 테이블의 열에 적용하여 열에 배치할 수 있는 값을 제한할 수 있습니다. 검사 제약조건은 무결성을 강화하는 것입니다.


6. SQL 서버를 다른 서버에 연결할 수 있나요?

SQL 서버 링크를 제공하는 OLE-DB 공급자가 있는 모든 데이터베이스에 연결할 수 있습니다. 예: Oracle SQL 서버 그룹과 연결하기 위한 링크가 있는 OLE-DB 공급자가 있습니다.


7. 서브쿼리와 그 속성은 무엇인가요?

하위 쿼리는 선택, 업데이트, 삽입 또는 삭제 문과 같은 기본 쿼리 내에 중첩될 수 있는 쿼리입니다. 표현식이 허용되는 경우 사용할 수 있습니다. 하위 쿼리의 속성은 다음과 같이 정의할 수 있습니다.

  • 하위 쿼리에는 order by 절이 있어서는 안 됩니다.
  • 하위 쿼리는 주 쿼리의 비교 연산자 오른쪽에 배치되어야 합니다.
  • 서브 쿼리는 메인 쿼리보다 먼저 실행되어야 하므로 괄호로 묶어야 합니다.
  • 두 개 이상의 하위 쿼리가 포함될 수 있습니다.

8. 하위 쿼리의 유형은 무엇입니까?

하위 쿼리에는 세 가지 유형이 있습니다.

  • 하나의 행만 반환하는 단일 행 하위 쿼리
  • 여러 행을 반환하는 여러 행 하위 쿼리
  • 기본 쿼리에 여러 열을 반환하는 다중 열 하위 쿼리입니다. 해당 하위 쿼리 결과로 기본 쿼리가 실행됩니다.

9. SQL 서버 에이전트란 ​​무엇입니까?

SQL Server 에이전트는 SQL Server 관리자(DBA)의 일상적인 작업에서 중요한 역할을 합니다. 서버 에이전트의 목적은 예정된 날짜와 시간에 작업을 실행할 수 있는 스케줄러 엔진을 사용하여 작업을 쉽게 구현하는 것입니다.


10. SQL Server의 예약된 작업이란 무엇입니까?

예약된 작업 또는 작업은 예약된 시간에 정기적으로 실행될 수 있는 프로세스를 자동화하는 데 사용됩니다. 이러한 작업 예약은 야간에 사람의 개입을 줄이는 데 도움이 되며 특정 시간에 먹이를 줄 수 있습니다. 사용자는 생성되어야 하는 작업을 주문할 수도 있습니다.


11. SQL Server의 COALESCE란 무엇입니까?

COALESCE는 인수 내에서 null이 아닌 첫 번째 표현식을 반환하는 데 사용됩니다. 이 함수는 인수의 둘 이상의 열에서 Null이 아닌 값을 반환하는 데 사용됩니다.

예 -

Select COALESCE(empno, empname, salary) from employee;

12. SQL Server 프로그래밍에서는 예외를 어떻게 처리할 수 있습니까?

예외는 TRY—-CATCH 구문을 사용하여 처리되며 TRY 블록 내부에 스크립트를 작성하고 CATCH 블록에서 오류를 처리하여 처리됩니다.


13. FLOOR 기능의 목적은 무엇인가요?

FLOOR 함수는 정수가 아닌 값을 이전의 가장 작은 정수로 반올림하는 데 사용됩니다. 예제가 제공됩니다

FLOOR(6.7)

6을 반환합니다.


14. 데이터베이스의 잠금을 확인할 수 있나요? 그렇다면 이 잠금 확인을 어떻게 수행할 수 있습니까?

예, 데이터베이스의 잠금을 확인할 수 있습니다. 이는 sp_lock이라는 내장 저장 프로시저를 사용하여 달성할 수 있습니다.


15. SIGN 기능의 용도는 무엇인가요?

SIGN 함수는 지정된 숫자가 양수, 음수 및 1인지 확인하는 데 사용됩니다. 그러면 +1, -0 또는 XNUMX이 반환됩니다.

예 -

SIGN(-35) returns -1

16. 트리거란 무엇입니까?

트리거는 테이블에 대해 삽입, 업데이트 또는 삭제 명령이 실행될 때 SQL 코드의 배치를 실행하는 데 사용됩니다. 트리거는 데이터가 수정될 때 자동으로 트리거되거나 실행됩니다. 삽입, 삭제 및 업데이트 작업에서 자동으로 실행될 수 있습니다.


17. 트리거의 유형은 무엇입니까?

트리거에는 네 가지 유형이 있으며 다음과 같습니다.

  • 끼워 넣다
  • .
  • 업데이트
  • 대신

18. insert 문에서 IDENTITY 열이란 무엇입니까?

IDENTITY 열은 테이블 열에서 해당 열을 자동 증분 숫자 또는 대리 키로 만드는 데 사용됩니다.


19. SQL의 대량 복사란 무엇입니까?

대량 복사는 테이블에서 대량의 데이터를 복사하는 데 사용되는 도구입니다. 이 도구는 SQL Server에서 대량의 데이터를 로드하는 데 사용됩니다.


20. 데이터베이스의 트리거 목록을 가져오는 데 사용되는 쿼리는 무엇입니까?

데이터베이스의 트리거 목록을 가져오는 쿼리-

Select * from sys.objects where type='tr'

21. UNION과 UNION ALL의 차이점은 무엇입니까?

  • UNION: 두 테이블에서 관련 정보를 선택하려면 UNION 명령이 사용됩니다. JOIN 명령과 유사합니다.
  • UNION All: UNION ALL 명령은 UNION ALL이 모든 값을 선택한다는 점을 제외하면 UNION 명령과 동일합니다. 중복 행을 제거하지 않고 대신 모든 테이블에서 모든 행을 검색합니다.

22. 글로벌 임시 테이블은 어떻게 표현되고 그 범위는 무엇입니까?

전역 임시 테이블은 테이블 이름 앞에 ##으로 표시됩니다. 범위는 세션 외부인 반면 로컬 임시 테이블은 세션 내부에 있습니다. 세션 ID는 @@SPID를 사용하여 찾을 수 있습니다.


경험자를 위한 SQL Server 인터뷰 질문 및 답변

23. 저장 프로시저와 동적 SQL의 차이점은 무엇입니까?

저장 프로시저(Stored Procedure)는 컴파일된 형식으로 저장되는 명령문 세트입니다. 동적 SQL은 런타임에 동적으로 생성되는 명령문 세트로, 데이터베이스에 저장되지 않고 런타임 중에만 실행됩니다.


24. 대조란 무엇입니까?

데이터 정렬은 테이블의 정렬 순서를 지정하기 위해 정의됩니다. 정렬 순서에는 세 가지 유형이 있습니다.

  1. 대소 문자 구분
  2. 대소 문자를 구분하지 않음
  3. 이진

25. 테이블의 레코드 수를 어떻게 알 수 있나요?

다음은 테이블의 레코드 수를 얻는 데 사용할 수 있는 쿼리입니다.

Select * from <tablename> Select count(*) from <tablename> Select rows from sysindexes where id=OBJECT_ID(tablename) and indid<2

26. SQL Server 버전을 가져오는 데 사용되는 명령은 무엇입니까?

Select SERVERPROPERTY('productversion')

SQL Server 버전을 가져오는 데 사용됩니다.


27. UPDATE_STATISTICS 명령이란 무엇입니까?

UPDATE_STATISTICS 명령은 인덱스의 삭제나 수정이 많거나 대량 복사가 발생한 경우 테이블의 인덱스를 업데이트하는 데 사용됩니다.


28. SET NOCOUNT ON/OFF 문의 용도는 무엇입니까?

기본적으로 NOCOUNT는 OFF로 설정되어 있으며 명령이 실행될 때마다 영향을 받은 레코드 수를 반환합니다. 사용자가 영향을 받은 레코드 수를 표시하지 않으려는 경우 명시적으로 ON(SET NOCOUNT ON)으로 설정할 수 있습니다.


29. 저장 프로시저 스크립트를 저장하는 데 사용되는 SQL 서버 테이블은 무엇입니까?

Sys.SQL_Modules는 저장 프로시저의 스크립트를 저장하는 데 사용되는 SQL Server 테이블입니다. 저장 프로시저의 이름은 Sys.Procedures라는 테이블에 저장됩니다.


30. SQL Server의 매직 테이블이란 무엇입니까?

Insert, Delete, Update와 같은 DML 작업 중에 SQL Server는 DML 작업 중에 값을 보관하기 위해 매직 테이블을 만듭니다. 이러한 매직 테이블은 데이터 트랜잭션을 위한 트리거 내부에서 사용됩니다.


31. SQL Server에서 SUBSTR과 CHARINDEX의 차이점은 무엇입니까?

SUBSTR 함수는 주어진 문자열에서 문자열의 특정 부분을 반환하는 데 사용됩니다. 그러나 CHARINDEX 함수는 주어진 지정된 문자열에서 문자 위치를 제공합니다.

SUBSTRING('Smiley',1,3)

결과를 Smi로 제공

CHARINDEX('i', 'Smiley',1)

3에 나타나는 결과로 3을 제공합니다.rd 문자열의 위치


32. 로그인은 어떻게 생성할 수 있나요?

다음 명령을 사용하여 로그인을 생성할 수 있습니다.

CREATE LOGIN MyLogin WITH PASSWORD = '123';

33. ISNULL() 연산자는 무엇입니까?

ISNULL 함수는 SQL Server에서 주어진 값이 NULL인지 NULL이 아닌지 확인하는 데 사용됩니다. 이 함수는 값을 NULL로 바꾸는 기능도 제공합니다.


34. FOR 절의 용도는 무엇입니까?

FOR절은 주로 다음과 같은 용도로 사용됩니다. XML 그리고 브라우저 옵션. 이 절은 주로 쿼리 결과를 XML 형식이나 브라우저에 표시하는 데 사용됩니다.


35. 테이블당 최대 인덱스 수는 얼마나 됩니까?

SQL Server 2008 100의 경우 인덱스는 테이블당 최대 개수로 사용할 수 있습니다. 1 ClusterSQL Server에서는 테이블당 ed 인덱스와 999개의 비클러스터형 인덱스를 사용할 수 있습니다.

인덱스는 테이블당 최대 1000개까지 사용할 수 있다. 1 ClusterSQL Server에서는 테이블당 ed 인덱스와 999개의 비클러스터형 인덱스를 사용할 수 있습니다.

1 ClusterSQL Server에서는 테이블당 ed 인덱스와 999개의 비클러스터형 인덱스를 사용할 수 있습니다.


36. COMMIT와 ROLLBACK의 차이점은 무엇입니까?

BEGIN과 COMMIT 사이의 모든 문은 COMMIT가 실행될 때 데이터베이스에 지속됩니다. BEGIN과 ROOLBACK 사이의 모든 문은 ROLLBACK이 실행될 때의 상태로 되돌아갑니다.


37. varchar와 nvarchar 유형의 차이점은 무엇입니까?

Varchar와 nvarchar는 동일하지만 유일한 차이점은 nvarhcar를 사용하여 여러 언어의 유니코드 문자를 저장할 수 있으며 varchar와 비교할 때 더 많은 공간을 차지한다는 것입니다.


38. @@SPID의 용도는 무엇입니까?

@@SPID는 현재 사용자 프로세스의 세션 ID를 반환합니다.


39. 런타임 시 저장 프로시저를 다시 컴파일하는 데 사용되는 명령은 무엇입니까?

RECOMPILE이라는 키워드를 사용하여 저장 프로시저를 실행할 수 있습니다.

예시

Exe <SPName>  WITH RECOMPILE

또는 저장 프로시저 자체에 WITHRECOMPILE을 포함할 수 있습니다.


40. SQL Server에서 중복 행을 삭제하는 방법은 무엇입니까?

SQL Server의 CTE 및 ROW NUMER 기능을 사용하여 중복 행을 삭제할 수 있습니다.


41. SQL Server 사용자 이름과 암호는 SQL Server 어디에 저장되어 있습니까?

사용자 이름과 암호는 sys.server_principals 및 sys.sql_logins에 저장됩니다. 그러나 비밀번호는 일반 텍스트로 저장되지 않습니다.


42. GETDATE와 SYSDATETIME의 차이점은 무엇입니까?

둘 다 동일하지만 GETDATE는 밀리초까지 시간을 제공할 수 있고 SYSDATETIME은 나노초까지 정밀도를 제공할 수 있습니다. SYSDATE TIME은 GETDATE보다 더 정확합니다.


43. 한 테이블에서 다른 테이블로 데이터를 어떻게 복사할 수 있습니까?

INSERT INTO SELECT

이미 생성된 테이블에 데이터를 삽입하는 명령입니다.

SELECT INTO

이 명령은 새 테이블을 생성하는 데 사용되며 기존 테이블에서 해당 테이블의 구조와 데이터를 복사할 수 있습니다.


44. TABLESAMPLE이란 무엇입니까?

TABLESAMPLE은 애플리케이션에 필요한 모든 행 샘플을 무작위로 추출하는 데 사용됩니다. 가져온 샘플 행은 행의 백분율을 기준으로 합니다.


45. 사용자 정의 오류 메시지에 사용되는 명령은 무엇입니까?

RAISEERROR는 특정 세션에 대한 오류 처리를 생성하고 시작하는 데 사용되는 명령입니다. 해당 사용자 정의 메시지는 sys.messages 테이블에 저장됩니다.


46. ​​XML 데이터 유형이란 무엇을 의미합니까?

XML 데이터 유형은 XML 문서를 SQL Server 데이터베이스. 열과 변수가 생성되고 XML 인스턴스가 데이터베이스에 저장됩니다.


47. CDC란 무엇입니까?

CDC는 최근 변경된 데이터를 캡처하는 데 사용되는 Change Data Capture로 축약됩니다. 이 기능은 SQL Server 2008에 있습니다.


48. SQL 인젝션이란 무엇입니까?

SQL 주입은 구문 분석 및 실행을 위해 SQL 서버 인스턴스에 전달될 수 있는 문자열에 악성 코드를 삽입할 수 있는 악의적인 사용자의 공격입니다. 모든 문은 수신된 구문상 유효한 쿼리를 모두 실행하므로 취약점을 검사해야 합니다.

숙련되고 경험이 풍부한 공격자는 매개변수조차 조작할 수 있습니다.


49. SQL 주입 공격으로부터 보호하기 위해 사용되는 방법은 무엇입니까?

SQL 주입 공격으로부터 보호하는 데 사용되는 방법은 다음과 같습니다.

  • 저장 프로시저에 매개변수 사용
  • 입력 매개변수 필터링
  • 동적 SQL에서 매개변수 수집 사용
  • like 절에서 사용자 이스케이프 문자

50. 필터링된 인덱스란 무엇입니까?

필터링된 인덱스는 쿼리 성능, 인덱스 유지 관리를 향상하고 인덱스 저장 비용을 줄이기 위해 테이블 ​​행의 일부 부분을 필터링하는 데 사용됩니다. WHERE 절을 사용하여 인덱스를 생성한 경우 이를 필터링된 인덱스라고 합니다.

이 인터뷰 질문은 당신의 비바(구술)에도 도움이 될 것입니다.