19 반드시 읽어야 하는 SQL 인터뷰 질문 및 답변: 2022년 초심자 및 경험자용

게시 됨: 2021-01-07

SQL 면접 질문 및 답변

면접이 걱정되세요? SQL 인터뷰 질문에 대한 답변을 드립니다. Sql 인터뷰에서 가장 자주 묻는 질문 중 일부입니다.
소프트웨어 및 IT 산업에서 어떤 직무를 선택하든 SQL 기술은 필수입니다. 오늘날에도 RDBMS는 전 세계적으로 가장 광범위하게 사용되는 데이터베이스 중 하나이므로 SQL은 개발 영역에서 없어서는 안될 부분입니다. Uber, Netflix, Airbnb 및 물론 Microsoft와 같은 유명 기업은 SQL을 기본 데이터베이스 관리 도구로 사용합니다.

오늘날 SQL이 매우 인기 있는 이유는 기업 IT 환경에서 트랜잭션 처리, 분석 응용 프로그램 및 비즈니스 인텔리전스 작업의 호스트를 지원하기 때문입니다.

이 게시물에서는 SQL의 기초를 시작하는 데 도움이 될 것입니다. 이것이 우리가 가장 자주 묻는 SQL 인터뷰 질문 목록을 만든 이유입니다. SQL 면접 질문이 면접에 도움이 되기를 바랍니다. 이러한 SQL 인터뷰 질문 은 SQL의 기본 개념과 SQL을 어떻게 진행해야 하는지에 대한 비교적 좋은 아이디어를 제공합니다.

인기 SQL 인터뷰 질문 및 답변

1. SQL을 정의합니다.

SQL 또는 Structured Query Language는 Microsoft에서 만든 관계형 데이터베이스 관리 시스템입니다. 데이터베이스와 통신하기 위해 명시적으로 설계되었습니다. ANSI(American National Standards Institute)는 SQL이 관계형 데이터베이스 관리 시스템(RDBMS)의 표준 쿼리 언어라고 유지합니다.

RDBMS를 유지 관리할 뿐만 아니라 다양한 유형의 데이터에 대해 광범위한 기타 데이터 조작 작업을 수행하는 데에도 사용됩니다. 예를 들어, SQL은 데이터베이스 생성, 데이터베이스에 테이블 생성, 데이터베이스에서 데이터 검색, 데이터베이스의 테이블 업데이트, 쿼리 실행 등에 사용됩니다.

더 읽어보기: 데이터 과학을 위한 SQL: SQL을 선택해야 하는 이유

2. 데이터베이스를 정의합니다.

데이터베이스는 데이터의 접근, 저장, 검색 및 관리를 용이하게 하기 위해 컴퓨터에 조직화된 형태로 저장되는 구조화된 형태의 데이터를 말합니다. 데이터베이스는 기본적으로 스키마, 테이블, 쿼리, 뷰 등의 모음입니다.

3. RDBMS는 DBMS와 어떻게 다릅니까?

RDBMS 또는 관계형 데이터베이스 관리 시스템은 RDBMS가 테이블의 공통 필드 간의 관계를 정의할 수 있는 테이블 모음으로 데이터를 저장하지만 DBMS에서는 그렇게 할 수 없다는 점에서 DBMS와 다릅니다.

데이터를 테이블 형식으로 저장하는 RDBMS와 달리 DBMS는 파일 시스템에 데이터를 저장하는 대신 데이터베이스 내에 데이터를 저장하는 파일 관리자와 같은 기능을 합니다.

RDBMS는 MySQL, Microsoft SQL Server, Oracle, IBM DB2 및 Amazon Redshift와 같은 많은 최신 데이터베이스 관리 시스템의 기반입니다.

4. 제약을 정의합니다.

SQL에서 제약 조건은 테이블의 데이터 유형에 대한 제한을 지정하거나 데이터베이스의 테이블에 있는 데이터에 관한 규칙을 선언하는 데 사용됩니다. 테이블을 생성하는 동안 또는 ALTER TABLE 명령을 사용하여 생성한 후에 SQL 테이블의 단일 및 다중 필드 모두에 대해 제약 조건을 지정할 수 있습니다.

SQL의 제약 조건 중 일부는 다음과 같습니다.

  • NULL이 아님
  • 확인하다
  • 기본
  • 고유 한
  • 기본 키
  • 외래 키

5. 정의 - 기본 키, 고유 키 및 외래 키.

기본 키는 행을 고유하게 지정하는 데 도움이 되는 필드 조합입니다. 기본 키는 고유한 값을 가져야 하며 기본 키는 NULL 값을 가질 수 없음을 의미하는 암시적 NOT NULL 제약 조건도 포함합니다.

고유 키 제약 조건은 열의 모든 값이 서로 다른지 확인하는 데 사용됩니다. 데이터베이스의 각 레코드를 고유하게 식별하는 데 도움이 됩니다. 기본 키(테이블당 하나의 기본 키만 정의됨)와 달리 테이블당 정의된 고유 제약 조건이 여러 개 있을 수 있습니다.

외래 키는 다른 테이블의 기본 키를 참조하는 데 사용할 수 있는 한 테이블의 단일 또는 필드 컬렉션으로 구성됩니다. 이 키는 두 테이블 간의 관계에서 참조 무결성을 유지하는 데 도움이 됩니다. 외래 키 제약 조건을 포함하는 테이블을 자식 테이블이라고 하는 반면 후보 키를 포함하는 테이블은 부모 테이블로 레이블이 지정됩니다.

6. 조인을 정의합니다. 조인의 다른 유형은 무엇입니까?

조인은 둘 이상의 테이블 간의 관련 열을 기반으로 레코드 또는 행을 결합하도록 설계된 SQL 절입니다. 조인은 테이블 필드 간의 관계를 기반으로 더 많은 테이블에서 데이터를 쿼리하는 데 사용되는 키워드와 같은 역할을 합니다. 주로 데이터 검색에 사용됩니다. 그러나 데이터 검색은 주로 테이블 간의 관계에 따라 달라집니다.

조인에는 네 가지 유형이 있습니다.

  • 내부 조인 – 테이블 간에 일치하는 값이 하나 이상 포함된 레코드 또는 행을 반환하는 데 사용됩니다.
  • 오른쪽 조인 – 테이블과 오른쪽 테이블에 있는 다른 모든 행 간에 공통적으로 일치하는 행을 반환합니다. 간단히 말해서, 오른쪽 조인은 왼쪽 테이블에 사용 가능한 일치 항목이 없다는 사실과 상관없이 오른쪽 테이블의 모든 행을 반환합니다.
  • 왼쪽 조인 – 오른쪽 조인과 마찬가지로 왼쪽 조인은 오른쪽 테이블에 사용 가능한 일치 항목이 없더라도 테이블과 왼쪽 테이블에 있는 모든 행 간에 공통적인 행을 반환합니다.
  • 전체 조인 – 이 조인은 단일 테이블이 일치하는 행으로 구성된 경우 행을 반환합니다. 즉, 오른쪽 조인과 왼쪽 조인의 결과를 모두 포함하는 집합을 만듭니다. 따라서 결과 집합에는 왼쪽 및 오른쪽 사이드 테이블의 모든 행이 포함됩니다.

7. 인덱스란 무엇입니까? 다양한 유형의 인덱스 이름을 지정합니다.

SQL에서 인덱스는 테이블에서 레코드를 더 빠르게 검색할 수 있도록 하는 성능 조정 방법입니다. 데이터베이스에서 검색 프로세스의 속도를 높입니다. 인덱스는 각 값에 대한 항목을 생성하므로 데이터 검색 속도가 빨라집니다.

인덱스는 올바른 일치를 찾기 위해 데이터의 해당 하위 집합만 훑어봄으로써 일부 열과 일치하는 행을 찾는 데 사용됩니다.

인덱스에는 세 가지 유형이 있습니다.

  • 고유 인덱스 – 이 인덱스는 테이블의 두 데이터 행이 동일한 키 값을 가지지 않도록 하여 데이터 무결성을 유지합니다. 기본 키를 정의할 때 고유 인덱스를 자동으로 적용할 수 있습니다.
  • 클러스터형 인덱스 – 이 인덱스는 테이블의 물리적 순서를 재정렬하거나 키 값을 기반으로 검색하는 데 도움이 됩니다. 이 인덱스에서 데이터베이스에 포함된 행의 순서는 인덱스의 행 순서와 일치합니다. 이것이 테이블에 클러스터형 인덱스가 하나만 있을 수 있는 이유입니다.
  • 비클러스터형 인덱스 – 이 인덱스는 데이터의 논리적 순서를 유지합니다. 원본 테이블을 참조하는 테이블 내에 별도의 엔터티를 만드는 데 사용됩니다. 테이블에는 클러스터되지 않은 인덱스가 여러 개 있을 수 있습니다.

8. AUTO_INCREMENT란 무엇입니까?

AUTO_INCREMENT는 새 레코드가 추가되거나 테이블에 입력될 때마다 고유 번호를 자동으로 생성하는 데 사용됩니다. 테이블에는 기본 키가 하나만 있으므로 이 기본 키는 새 레코드가 추가될 때마다 필드를 증가시키는 데 도움이 되는 AUTO_INCREMENT 필드로 추가됩니다.

기본적으로 AUTO-INCREMENT 값은 1부터 시작하며 새 레코드가 삽입될 때마다 1씩 증가합니다.

9. 쿼리 및 하위 쿼리를 정의합니다.

쿼리는 데이터베이스 테이블 또는 여러 테이블에서 데이터를 요청하거나 검색하기 위해 작성된 코드입니다. 쿼리는 작업 쿼리 또는 선택 쿼리일 수 있습니다.

반면에 하위 쿼리는 다른 쿼리 내의 쿼리입니다. 내부 쿼리 또는 중첩 쿼리라고도 합니다. 서브 쿼리는 메인 쿼리에서 쿼리해야 하는 데이터를 제한하거나 향상시켜 메인 쿼리의 결과를 제한하거나 향상시키는 데 사용됩니다. 일반적으로 하위 쿼리가 먼저 실행되고 결과가 주 쿼리로 전달됩니다.

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

  • 상관 하위 쿼리 – 이 하위 쿼리는 독립적인 쿼리가 아닙니다. 그러나 주 쿼리의 FROM에 나열된 테이블의 열을 참조할 수 있습니다.
  • Non-correlated subquery – 이것은 독립적인 쿼리이며 그 출력은 메인 쿼리에서 대체됩니다.

10. 트리거를 정의합니다.

트리거는 INSERT, DELETE, UPDATE(DML) 문과 같은 이벤트가 발생할 때 자동으로 실행되는 저장된 코드 또는 프로그램입니다. 또한 데이터 정의 문(DDL) 및 SERVER ERROR, LOGON 등과 같은 데이터베이스 작업에 대한 응답으로 실행할 수 있습니다. 트리거는 데이터베이스 무결성을 유지하는 데 도움이 됩니다.

11. 트랜잭션에서 ACID 속성의 역할을 설명합니다.

ACID 속성은 트랜잭션 전후에 데이터베이스의 일관성을 유지하기 위해 따릅니다.

  • 원자성 – 트랜잭션이 완료되어야 함을 의미합니다. 중간에 방치하면 안됩니다. 트랜잭션이 실패하면 전체 트랜잭션이 실패하고 데이터베이스는 변경되지 않은 상태로 유지됩니다.
  • 일관성 – 데이터베이스에 입력된 데이터의 유효성을 검사하여 무결성 제약 조건을 유지하려고 합니다.
  • Isolation – 이 속성은 동시성을 제어하는 ​​것을 목표로 합니다.
  • 내구성 – 이 속성은 트랜잭션이 완료되면 발생할 수 있는 문제(예: 정전, 내부 오류 등)에도 불구하고 커밋된 상태를 유지하도록 합니다.

12. DELETE 명령과 TRUNCATE 명령을 구별하십시오.

DELETE 및 TRUNCATE 명령의 핵심 차이점은 다음과 같습니다.

  • DELETE 명령이 하나 이상의 기존 테이블을 삭제하거나 제거하는 데 사용되는 동안 TRUNCATE 명령은 테이블 내부의 모든 데이터를 삭제합니다.
  • DELETE는 DML 명령이고 TRUNCATE는 DDL 명령입니다.
  • DELETE를 사용하면 트리거를 수행할 수 있지만 TRUNCATE를 사용하면 실행 및 트리거할 수 없습니다.
  • 외래 키 제약 조건이 테이블을 참조하는 경우 TRUNCATE 명령이 작동하지 않습니다. 이러한 경우 DELETE 명령을 사용해야 합니다.

13. SQL의 여러 하위 집합의 이름을 지정합니다.

SQL의 하위 집합은 다음과 같습니다.

  • DDL(데이터 정의 언어) – 이 언어를 사용하면 CREATE, ALTER 및 DELETE 개체와 같은 SQL 명령을 포함하여 데이터베이스에서 호스트 작업을 수행할 수 있습니다.
  • DML(데이터 조작 언어) – 이 언어를 사용하면 INSERT, UPDATE 및 DELETE와 같은 명령을 사용하여 데이터베이스의 데이터에 액세스하고 조작할 수 있습니다.
  • DCL(데이터 제어 언어) – 이 언어를 사용하면 GRANT 및 REVOKE와 같은 명령을 사용하여 데이터베이스에 대한 액세스를 제어할 수 있습니다.

읽기: 2020년 상위 9가지 데이터 과학 도구

14. 데이터 무결성을 설명합니다.

데이터 무결성은 데이터베이스에 저장된 데이터의 정확성, 일관성 및 신뢰성을 정의합니다. 또한 데이터가 데이터베이스나 애플리케이션에 삽입될 때 데이터에 비즈니스 규칙을 적용하기 위해 무결성 제약 조건을 정의하는 데 도움이 됩니다.

데이터 무결성에는 네 가지 종류가 있습니다.

  • 행 무결성
  • 열 무결성
  • 참조 무결성
  • 사용자 정의 무결성

15. 사용자 정의 함수는 무엇입니까? 사용자 정의 함수의 유형 이름을 지정합니다.

사용자 정의 함수는 필요할 때 특정 논리를 사용하도록 특별히 작성된 함수입니다. 이러한 기능을 사용하면 동일한 논리를 여러 번 작성할 필요가 없습니다. 대신 필요할 때마다 사용자 정의 함수를 호출하거나 실행할 수 있습니다.

사용자 정의 함수에는 세 가지 유형이 있습니다.

  • 스칼라 함수.
  • 인라인 테이블 반환 함수.
  • 다중 명령문 가치 함수.

16. 데이터 정렬을 정의합니다. 여러 유형의 데이터 정렬 감도를 지정합니다.

데이터 정렬은 문자 데이터를 정렬하고 비교하는 방법을 결정하는 규칙 모음을 나타냅니다. 문자 데이터를 정렬하기 위해 올바른 문자 시퀀스를 정의하는 것 외에도 대소문자 구분, 악센트 표시, 가나 문자 유형 및 문자 너비를 지정하는 옵션을 통합합니다.

다양한 유형의 데이터 정렬 감도는 다음과 같습니다.

  • 대소문자 구분 – 문자 'A'와 'a'는 다르게 취급됩니다.
  • 악센트 감도 – 문자 'a'와 ' a'는 다르게 취급됩니다.
  • 가나 감도 - 히라가나 및 가타카나와 같은 일본어 가나 문자를 다르게 취급합니다.
  • 너비 감도 – 1바이트(반각) 문자와 2바이트(전각) 문자를 다르게 취급합니다.

17. 저장 프로시저란 무엇을 의미합니까?

저장 프로시저는 RDBMS에 액세스하는 애플리케이션에 사용되는 서브루틴(SQL 코드)입니다. 모듈식 프로그래밍 개념을 지원합니다. 즉, 저장 프로시저를 한 번 만들고 저장하고 필요할 때 여러 번 호출할 수 있습니다.

이러한 절차는 데이터베이스 데이터 사전에 저장됩니다. 저장 프로시저의 장점은 쿼리를 더 빠르게 실행할 수 있다는 것입니다. 이것은 네트워크 트래픽을 감소시킬 뿐만 아니라 데이터에 대한 더 나은 보안을 제공합니다.

또 다른 이점은 데이터에 직접 액세스할 수 없는 사용자가 저장 프로시저를 사용하여 액세스할 수 있으므로 저장 프로시저에 추가 기능이 있다는 것입니다.

그러나 단점도 있습니다. 저장 프로시저는 데이터베이스에서만 실행할 수 있으며 일반적으로 데이터베이스 서버에서 더 많은 메모리를 차지합니다.

18. 보기와 테이블을 구별하십시오.

뷰와 테이블의 차이점은 다음과 같습니다.

  • 뷰는 데이터베이스에서 추출한 가상 테이블을 참조하는 반면 테이블은 제한된 수의 열과 무한한 수의 행을 포함하는 구조화된 엔터티를 참조합니다.
  • 뷰 자체는 데이터를 보유할 수 없지만 테이블은 데이터를 포함하고 데이터베이스에 저장합니다.
  • 보기를 사용하면 몇 가지 고유한 테이블에 포함된 특정 정보를 쿼리할 수 있습니다. 그러나 테이블에는 특성화된 개체의 경우와 함께 기본 클라이언트 정보가 들어 있습니다.

19. 임시 테이블을 정의합니다. 어떻게 만들 수 있습니까?

임시 테이블은 중간 결과를 저장하고 처리할 수 있는 테이블입니다. 이러한 테이블은 더 이상 사용되지 않을 때 자동으로 삭제할 수 있습니다. 임시 테이블은 임시 데이터를 저장해야 하는 상황에 유용합니다.

임시 테이블을 만드는 구문은 다음과 같습니다.

테이블 생성 #테이블명();

아래 쿼리는 임시 테이블을 생성합니다.

테이블 생성 #book(b_id int, b_cost int)

이제 레코드를 삽입합니다.

#book values(1,100)에 삽입

#book values(2,232)에 삽입

#책에서 * 선택

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

마무리

SQL 인터뷰 질문 및 답변 가이드 가 SQL 지식 기반을 강화하고 확장하는 데 도움이 되기를 바랍니다.

SQL 및 전체 스택 개발에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습을 제공하는 IIIT-B & upGrad의 전체 스택 소프트웨어 개발 Executive PG 프로그램을 확인하십시오. 워크숍, 업계 전문가와의 멘토링, 업계 멘토와의 1:1 학습, 최고의 기업과의 400시간 이상의 학습 및 취업 지원.

풀 스택 소프트웨어 개발 PG 디플로마

풀 스택 개발의 Executive PG 프로그램에 지금 지원하십시오