웹사이트 검색

SQL 인터뷰 질문 및 답변


SQL 인터뷰 질문은 데이터베이스 작업이 애플리케이션에서 매우 일반적이기 때문에 거의 모든 인터뷰에서 묻습니다. SQL은 데이터베이스 통신 및 관계형 데이터베이스 관리에 사용되는 도메인별 프로그래밍 언어인 Structured Query Language의 약자입니다. SQL은 SELECT, INSERT, CREATE, DELETE, UPDATE, DROP 등과 같은 데이터베이스 상호 작용을 위한 표준 명령으로 구성됩니다. 이를 통해 사용자는 이를 통해 데이터베이스에서 데이터를 검색 및 업로드하고, 테이블 요소를 생성 및 삭제하고, 간의 동적 데이터베이스 상호 작용을 구현할 수 있습니다. 서버 및 프로그램.

SQL 인터뷰 질문

SQL이란 무엇입니까?

SQL은 최적화된 방식과 분류로 정렬된 데이터베이스 관리 시스템 내에서 데이터를 쿼리하고 조작할 수 있는 도메인별 프로그래밍 언어입니다. 이는 동일한 속성 또는 테이블의 항목 또는 열을 읽고, 쓰고, 선택하고, 삭제할 수 있는 SQL 명령을 구현함으로써 가능합니다. SQL은 또한 프로그램, 웹 사이트 또는 모바일 앱 간에 데이터베이스에 대한 동적 액세스를 생성하는 매우 효율적인 방법을 제공합니다. 예를 들어 사용자 웹 사이트에 로그인 세부 정보를 입력하면 이러한 로그 정보가 확인 및 사용자 제한을 위해 SQL을 통해 데이터베이스로 전달됩니다.3. ### 데이터베이스와 관계형 데이터베이스의 차이점은 무엇입니까?

데이터베이스 또는 데이터베이스 관리 시스템(DBMS) 및 관계형 데이터베이스 관리 시스템(DBMS)은 모두 SQL에서 데이터 및 구조를 저장하는 데 사용됩니다. 그러나 데이터베이스 관리 시스템의 각 유형은 다른 용도와 관련하여 선호됩니다. 이 둘의 주요 차이점은 DBMS는 정보를 파일로 저장하는 반면 RDMS는 정보를 표 형식으로 저장한다는 것입니다. 또한 Relational 키워드가 의미하는 것처럼 RDMS는 기본 키, 외래 키 등을 사용하여 서로 다른 테이블이 서로 관계를 가질 수 있도록 합니다. 이렇게 하면 테이블에 유용한 제한을 제공하는 테이블 사이에 동적 계층 구조 체인이 생성됩니다. DBMS는 계층적 방식 또는 탐색 방식을 통해 테이블을 정렬합니다. 이는 서로 독립적인 테이블에 데이터를 저장하고 테이블을 채우거나 편집하는 동안 다른 테이블을 변경하지 않으려는 경우에 유용합니다.5. ### SQL의 기본 구조는 무엇입니까?

SQL은 관계형 연산의 구조를 기반으로 합니다. 특정 수정 및 개선 사항을 기반으로 합니다. 매우 기본적인 SQL 쿼리 형식은 다음과 같습니다.

select A1, A2, ..., An

from R1, R2, ..., Rm

where P

여기서 An은 속성이고 Rm은 데이터베이스 내의 관계이며 P는 술어 또는 필터입니다.7. ### SQL 명령의 다른 범주는 무엇입니까?

SQL 명령은 다음 네 가지 범주로 나뉩니다.

  • 데이터 조작 기능을 제공하는 DML(Data Manipulation Language)
  • 데이터베이스 구조를 조작하는 데 사용되는 DDL(데이터 정의 언어)
  • 데이터 트랜잭션 검증 및 오류 처리를 담당하는 TCL(Transaction Control Language)
  • DCL(데이터 제어 언어)은 데이터 보안을 강화하기 위해 사용자 제한 및 데이터 액세스 권한을 특징으로 하는 보안 설명입니다.

SQL은 무엇을 위해 사용됩니까?

SQL은 매우 빠르고 쉬운 방식으로 데이터베이스의 많은 항목을 처리할 수 있는 기능 때문에 서버 측 프로그래머에게 널리 사용되고 사용됩니다. 이로 인해 데이터 검색 및 조작이 크게 개선되었습니다. 이를 설명하기 위해 SQL은 데이터베이스에서 항목을 실행, 검색, 삽입, 업데이트, 삭제할 수 있는 기능을 제공합니다. 또한 고유한 이름이 주어진 경우 테이블, 뷰 및 데이터베이스와 같은 구조를 생성할 수 있습니다.10. ### SELECT, INSERT, CREATE, DELETE, UPDATE, DROP 키워드 정의

  • SELECT 키워드는 테이블이나 뷰에서 행의 항목을 강조 표시하고 가져오는 데 사용됩니다. 별칭을 제공하기 위해 AS 키워드와 함께 사용할 수도 있습니다. SELECT 문을 필터링하려면 WHERE 절을 포함하여 필터 조건을 제공하고 조건을 충족하는 원하는 항목만 선택할 수 있습니다.
  • INSERT를 사용하면 데이터베이스 테이블에 한 행 또는 여러 행을 추가하거나 삽입할 수 있습니다. VALUES 키워드와 함께 사용하면 특정 값이 있는 행을 추가할 수 있습니다. INSERT는 미리 선택된 행을 삽입하기 위해 SELECT와 함께 사용할 수도 있습니다.
  • CREATE는 SQL에서 요소를 생성하는 데 사용되는 키워드입니다. 일반적으로 CREATE DATABASE, CREATE TABLE, CREATE VIEW 등과 같이 생성할 키워드와 함께 사용됩니다.
  • DELETE 키워드는 데이터베이스에서 레코드를 삭제하는 데 사용됩니다. 원치 않는 데이터 손실을 방지하려면 항상 주의해서 사용해야 합니다. 삭제하고 싶지 않은 기록을 삭제할 수 있습니다. WHERE 절을 사용하여 삭제할 레코드의 범위를 지정하십시오.
  • UPDATE 키워드는 기존 레코드 내의 기존 데이터를 업데이트하거나 변경합니다. 레코드가 존재해야 합니다.
  • DROP 키워드는 데이터베이스 내의 테이블을 삭제하거나 삭제합니다.

SQL과 P/L SQL의 주요 차이점은 무엇입니까?

SQL 또는 구조적 쿼리 언어는 관계형 데이터베이스와 통신하는 데 사용되는 언어입니다. 데이터베이스를 조작하고 생성하는 방법을 제공합니다. 반면에 PL/SQL은 SQL의 기능을 향상시키는 데 사용되는 SQL의 방언입니다. 90년대 초 Oracle Corporation에서 개발했습니다. SQL.13에서 프로그래밍 언어의 절차적 기능을 추가합니다. ### 데이터 정의 언어란?

DDL 또는 데이터 정의 언어는 데이터베이스 구조에 직접 영향을 미치는 SQL 명령과 관련이 있습니다. DDL은 DML(데이터 조작 언어), 트랜잭션 및 보안도 포함하는 SQL 명령 분류 범주입니다. DDL 명령의 특정 속성은 인덱스, 객체, 테이블, 뷰, 트리거 등을 조작할 수 있는 명령문입니다. SQL에서 널리 사용되는 세 가지 DDL 키워드는 다음과 같습니다.

  1. CREATE – which is used to create a table

    CREATE TABLE tableName (name data_type);
    
  2. ALTER – used to modify entries or existing columns within a table.

    ALTER TABLE tableName [additional syntax such as ADD, DROP, MODIFY]
    
  3. DROP – used to Delete or Drop an existing table along with its entries, constraints, triggers, indexes, and permissions. Essentially deletes the table.

    DROP TABLE tableName;
    
  4. What is Data Manipulation Language?

DML 또는 데이터 조작 언어는 사용자에게 데이터베이스 내의 항목을 변경할 수 있는 권한을 부여하는 기능과 관련하여 분류되는 일련의 명령입니다. 이는 테이블 내의 데이터 삽입, 검색, 삭제 또는 업데이트를 통해 이루어질 수 있습니다. 인기 있는 DML 문은 이러한 핵심 기능에서 발생하며 아래에 나열되어 있습니다.

  • SELECT – used to highlight a row within a table and retrieve it.

    SELECT [columnName] FROM [tableName]
    
  • UPDATE – used to update entries from existing tables.

    UPDATE [tableName] SET [value]
    
  • INSERT – used to insert entries into an existing table.

    INSERT INTO [tableName]
    
  • DELETE – used to delete entries from an existing table

    DELETE FROM [tableName]
    

TCL(트랜잭션 제어 언어)이란 무엇입니까?

TCL은 주로 데이터베이스 트랜잭션 및 저장 지점을 처리하는 SQL 명령 범주입니다. 이러한 키워드는 개발자가 정의한 SQL 함수 및 논리를 데이터베이스 구조 및 동작으로 구현합니다. 이러한 TCL 명령의 예는 다음과 같습니다. COMMIT – 트랜잭션 커밋에 사용 ROLLBACK – 오류 발생 시 트랜잭션 롤백이 이 키워드에 의해 호출됩니다. SAVEPOINT - 롤백의 복귀 지점을 나타내는 키워드 SET TRANSACTION - 트랜잭션의 세부 사항을 설정합니다19. ### 데이터 제어 언어(DCL)란 무엇입니까?

데이터 제어 언어(DCL)는 SQL 문 내에서 요구되는 권한 및 사용 권한을 포함하여 사용자에 대한 액세스 및 제한 발급을 감독합니다. DCL 키워드의 예는 다음과 같습니다. GRANT – 특정 데이터베이스에 대한 액세스를 사용자에게 제공하는 DCL 키워드입니다. REVOKE - GRANT 키워드의 반대입니다. 사용자에게 부여된 권한을 철회하거나 철회합니다.20. ### 데이터베이스의 테이블 및 필드 정의

데이터베이스 측면에서 테이블은 조직화된 항목의 배열이라고 합니다. 테이블 행의 다른 필드를 포함하는 셀로 더 나뉩니다. 필드는 단일 항목을 나타내는 데이터 구조와 관련이 있습니다. 그런 다음 레코드로 추가로 구성됩니다. 그들은 실질적으로 단일 데이터 조각을 보유합니다. 데이터에 대한 메모리 할당의 기본 단위이며 액세스할 수 있습니다.21. ### SQL의 다른 유형의 키는 무엇입니까?

키는 RDMS의 중요한 기능이며, 본질적으로 하나의 테이블을 다른 테이블에 연결하고 열 인덱스 관리를 통해 빠른 데이터 검색 및 로깅을 촉진하는 필드입니다. 다른 유형의 키는 다음과 같습니다. 기본 키 - 데이터베이스 테이블의 레코드를 식별하는 고유 키입니다. 고유하다는 것은 Null이 아니어야 하며 테이블에서 고유해야 함을 의미합니다. 후보 키 – 다른 필드에 대한 필수 참조 없이 독립적으로 열 또는 열 그룹을 식별하는 고유한 필드입니다. 대체 키 – 사용 시 기본 키로 대체될 수 있지만 보조 키로 간주됩니다. 차이점은 열에 데이터가 있는 경우 대체 키가 Null 값을 가질 수 있다는 것입니다. 고유해야 하는 후보 키 유형입니다. 고유 키 – null 항목을 제외하고 행 내 중복 데이터를 방지하기 위해 제한을 제공하는 키입니다. 사용 가능한 다른 키는 외래 키, 슈퍼 키 및 복합 키입니다.22. ### SQL에서 다양한 유형의 인덱스 이름을 지정하고 정의합니다.

고유 인덱스: 고유하게 인덱싱된 열 내에서 중복 항목을 방지합니다. 기본 키를 사용할 수 있는 경우 자동으로 생성됩니다. Clustered Index: 키 값을 기준으로 테이블 내 배열을 구성하거나 편집하는 데 사용됩니다. 각 테이블은 단일 클러스터형 인덱스만 가질 수 있습니다. NonClustered Index: 반대로 NonClustered Index는 항목 내의 논리 순서만 관리합니다. 배열을 관리하지 않으며 테이블은 여러 개의 NonClustered Index를 가질 수 있습니다.26. ### SQL과 MySQL의 차이점은 무엇입니까?

Standard Query Language를 나타내는 SQL은 데이터베이스 필드 및 열에 대한 상호 작용을 제공하는 서버 프로그래밍 언어입니다. MySQL은 실제 프로그래밍 언어가 아닌 데이터베이스 관리 시스템의 일종이지만, 보다 구체적으로는 RDMS 또는 관계형 데이터베이스 관리 시스템입니다. 그러나 MySQL은 SQL 구문도 구현합니다.27. ### SQL의 UNION 및 UNION ALL 키워드는 무엇이며 차이점은 무엇입니까?

SQL의 UNION 연산자는 SELECT 문에서 강조 표시된 여러 집합을 결합합니다. 집합의 제한 사항은 (1) 열 번호가 동일해야 하고, (2) 집합의 데이터 유형이 동일해야 하며, (3) SELECT 문에서 강조 표시된 열의 순서가 동일해야 합니다. SELECT 문에서 강조 표시된 결과 내에서 중복 행을 자동으로 제거합니다. UNION ALL은 UNION과 동일한 기능을 수행하지만 중복 행을 포함하여 모두 포함합니다.

SELECT C1, C2 FROM T1
UNION
SELECT Cx, Cy FROM T2;

SQL에서 조인의 다른 유형은 무엇입니까?

조인 키워드는 여러 테이블의 항목을 쿼리합니다. 이러한 항목을 찾기 위해 다른 키와 함께 사용되며 필드 간의 연결을 의식합니다.

내부 조인: 테이블 간에 공통된 행을 반환합니다.\n\n\n오른쪽 조인: 공통 행을 포함하여 오른쪽 테이블의 행을 반환합니다.\n\n\n왼쪽 조인: 공통 행을 포함하여 왼쪽 테이블의 행을 반환합니다.\n\n\nFull Join: 공통 여부에 관계없이 모든 행을 반환합니다.\n\n\n정규화와 비정규화란?

정규화는 데이터베이스 내의 기존 테이블과 해당 필드를 정렬하여 중복을 최소화합니다. 고유한 필드를 유지하면서 테이블을 최대한 단순화하는 데 사용됩니다. 비정규화를 사용하면 데이터베이스 내의 모든 일반 형식에서 필드를 검색할 수 있습니다. 정규화와 관련하여 반대 작업을 수행하고 중복을 테이블에 넣습니다.32. ### WHERE 절과 HAVING 절은 언제 사용할 수 있나요?

두 절 모두 검색 필드의 기반으로 사용되는 조건을 수락합니다. 차이점은 WHERE 절은 집계되지 않은 정적 열에만 사용되는 반면 HAVING 절은 집계 열에만 사용된다는 것입니다.

select order_id, SUM(sale_amount) as TotalSale 
from SalesData 
where quantity>1 
group by order_id 
having SUM(sale_amount) > 100;

UNION, MINUS 및 INTERSECT의 차이점은 무엇입니까?

UNION 키워드는 여러 SELECT 쿼리를 결합하기 위해 SQL에서 사용되지만 결과 집합에서 중복 항목을 삭제합니다. INTERSECT 키워드는 여러 테이블 간에 SELECT 쿼리를 사용하여 공통 행을 검색하는 데만 사용됩니다. MINUS 키워드는 본질적으로 두 SELECT 쿼리 사이에서 뺍니다. 결과는 첫 번째 쿼리와 두 번째 쿼리의 차이입니다. 두 결과 집합에서 공통된 행은 최종 출력에서 제거됩니다.35. ### 테이블에서 10개의 레코드를 선택하는 방법은 무엇입니까?

MySQL: 제한 절 사용, 예 select * from Employee limit 10; Oracle: ROWNUM 절 사용, 예 SELECT * FROM Employee WHERE ROWNUM < 10; SQL Server: TOP 절 사용 , 예 SELECT TOP 3 * FROM Employee;39. ### 테이블의 요소를 삭제하면 다른 테이블의 요소도 삭제되는 인스턴스에서 어떻게 데이터베이스의 무결성을 유지할 수 있습니까?

이는 테이블 A에서 삭제된 모든 요소를 수신하고 테이블 B.40에서 해당 연결된 요소를 삭제하는 SQL 트리거를 호출하여 가능합니다. ### 테이블 A에서 테이블 B로 데이터를 복사하는 과정은 무엇입니까?

INSERT INTO TableB (columnOne, columnTwo, columnThree, ...)

SELECT columnOne, columnTwo, columnThree, ...

FROM TableA

WHERE added_condtion;

IN과 EXISTS 절의 차이점은 무엇인가요?

둘 사이의 명백한 차이점은 EXISTS 키워드가 IN 키워드에 비해 상대적으로 실행 속도가 빠르다는 것입니다. 이는 IN 키워드가 기존의 모든 레코드를 검색해야 하는 반면 EXISTS 키워드는 일치하는 레코드가 발견되면 자동으로 중지되기 때문입니다. 또한 IN 문은 ResultSet 내에서 동작하고 EXISTS 키워드는 가상 테이블에서 동작합니다. 이 컨텍스트에서 EXISTS 키워드가 연결된 쿼리에 사용되는 동안 IN 문은 가상 테이블과 관련된 쿼리에서도 작동하지 않습니다.43. ### 데이터베이스 관리에서 ACID라는 약어는 무엇을 의미합니까?

ACID 약어는 Atomicity, Consistency, Isolation 및 Durability를 나타냅니다. 이 속성은 주로 데이터베이스 시스템의 프로세스 무결성을 담당합니다. 이는 사용자가 데이터베이스에 대한 데이터 트랜잭션으로 발행하는 모든 것이 완전하고 정확하게 수행되어야 하며 내구성이 있어야 함을 의미합니다.44. ### SQL에서 트리거란 무엇입니까?

데이터베이스 트리거는 레코드 삽입/업데이트/삭제와 같은 테이블 또는 뷰의 일부 이벤트에 대한 응답으로 자동으로 실행되는 프로그램입니다. 주로 데이터베이스 트리거는 데이터베이스의 무결성을 유지하는 데 도움이 됩니다.45. ### SQL의 Auto Increment 기능이 무엇인가요?

자동 증분을 통해 사용자는 새 레코드가 테이블에 삽입될 때마다 고유 번호를 생성할 수 있습니다. AUTO INCREMENT는 Oracle의 키워드, MySQL의 AUTO_INCREMENT 및 IDENTITY 키워드는 자동 증가를 위해 SQL SERVER에서 사용할 수 있습니다. 주로 이 키워드는 table.46의 기본 키를 만드는 데 사용됩니다. ### 데이터 정렬이란 무엇입니까?

데이터 정렬은 기본적으로 문자열로 확장된 문자를 비교하고 정렬하는 방법에 대한 규칙 집합입니다. MSSQL 및 MySQL의 데이터 정렬은 UTF-8과 같은 특정 데이터 정렬 옵션을 제외하고 거의 동일한 방식으로 작동합니다. 일반적인 문자 비교 외에도 데이터 정렬은 ASCII 표현 관점에서 문자열을 정렬하고 비교할 수 있습니다.47. ### 재귀 저장 프로시저란 무엇입니까?

일부 경계 조건에 도달할 때까지 자체적으로 호출하는 저장 프로시저입니다. 이 재귀 함수 또는 절차는 프로그래머가 동일한 코드 세트를 여러 번 사용할 수 있도록 도와줍니다.48. ### 패턴 일치에 사용되는 SQL의 쿼리 연산자는 무엇인가요?

대답은 LIKE 연산자입니다. LIKE 연산자는 패턴 매칭에 사용되며 -로 사용할 수 있습니다.

  • % – 0개 이상의 문자와 일치합니다.
  • _(밑줄) – 정확히 하나의 문자와 일치합니다.

Hibernate와 SQL과의 관계는 무엇입니까?

Hibernate는 Java의 객체 관계형 매핑 도구입니다. Hibernate는 객체 지향 코드를 작성하고 관계형 데이터베이스에 대해 실행하기 위해 내부적으로 네이티브 SQL 쿼리로 변환합니다. Hibernate는 Hibernate Query Language(HQL)라고 하는 SQL과 같은 자체 언어를 사용합니다. 차이점은 HQL이 Hibernate의 엔터티 개체를 쿼리할 수 있다고 자랑한다는 것입니다. 또한 Hibernate에는 Criteria Query라고 하는 객체 지향 쿼리 언어가 있습니다. 프런트 엔드 애플리케이션에서 개체를 주로 사용하는 개발자에게 매우 유익하고 도움이 되는 것으로 입증되었으며 Criteria Query는 보안 및 액세스 제한과 같은 SQL 유사 기능을 추가하는 경우에도 이러한 개체를 충족할 수 있습니다.52. ### SQL 오류: ORA-00904: 잘못된 식별자를 어떻게 해결할 수 있습니까?

이 오류는 일반적으로 Oracle 데이터베이스에서 열 이름을 호출할 때 구문 오류로 인해 나타납니다. 오류 코드에서 ORA 식별자를 확인하십시오. 올바른 열 이름을 입력했는지 확인하십시오. 또한 별칭은 잘못된 식별자로 오류에서 참조되는 별칭이므로 특별히 주의하십시오.53. ### SQL 프로필러란?

SQL 프로필러는 데이터베이스 개발자가 데이터베이스 엔진 활동을 모니터링하고 추적할 수 있는 그래픽 사용자 인터페이스입니다. 발생하는 모든 이벤트에 대한 활동 로깅 기능이 있으며 오작동 및 불일치에 대한 분석을 제공합니다. 이것은 기본적으로 성능 문제를 디버깅하는 SQL의 진단 기능이며 추적 파일의 어떤 부분이 SQL 트랜잭션에서 막힘을 일으키는지 확인할 수 있는 보다 다양한 방법을 제공합니다.54. ### SQL 데이터베이스를 기존 Android 앱에 어떻게 연결할 수 있나요?

이 둘을 연결하려면 JDBC(Java Database Connectivity) 드라이버가 필요합니다. 또한 권한 및 부여와 함께 build.gradle 파일에 해당 종속 항목을 추가해야 합니다.

참조: 위키백과