Oracle 면접 관련 주요 질문: Oracle Basic, SQL, PL/SQL 질문

가장 자주 묻는 Oracle 인터뷰 질문 및 답변:

Oracle의 거의 모든 기본 개념을 다루는 답변과 함께 상위 40개 Oracle 인터뷰 질문입니다.

거의 모든 Oracle 인터뷰 질문을 다루는 심층 시리즈입니다.

파트 #1: Oracle Basic, SQL, PL/SQL 질문(이 문서)

파트 #2: Oracle DBA, RAC 및 성능 조정 질문

파트 #3: Oracle Forms 및 보고서 인터뷰 질문

파트 #4: Oracle Apps 및 Oracle SOA 기술 인터뷰 질문

시작하겠습니다. 시리즈의 첫 번째 기사.

이 기사에서 다루는 질문 유형:

  • 기본 Oracle 인터뷰 질문
  • Oracle SQL 인터뷰 질문
  • Oracle PL/SQL 인터뷰 질문

이해를 돕기 위해 간단한 예제와 함께 Oracle의 기본 사항을 설명합니다. Oracle 인터뷰에 응할 계획이라면 이 기사에서 다루는 이러한 일련의 질문이 확실히 큰 도움이 될 것입니다.

계속합시다!!

최고의 Oracle 인터뷰 질문 목록

Q #1) Oracle이란 무엇이며 오라클의 다른 버전은 무엇입니까?

답변: Oracle은 Oracle Corporation에서 제공하는 널리 사용되는 데이터베이스 중 하나이며 관계형 관리 개념에 따라 작동하므로 Oracle RDBMS라고도 합니다. 온라인용으로 많이 사용다른 SQL 쿼리에서 통째로 사용할 수 있습니다.

  • 테이블은 업데이트하거나 삭제할 수 있지만 뷰는 할 수 없습니다.
  • Q #31) 무엇입니까 교착 상태란 무엇입니까?

    답변: 교착 상태는 둘 이상의 사용자가 동시에 서로 잠긴 데이터를 기다리는 상황입니다. 따라서 모든 사용자 세션이 차단됩니다.

    Q #32) 색인이란 무엇입니까?

    답변: 색인은 테이블 내에서 데이터를 효율적으로 조회하기 위해 생성되는 스키마 객체. 인덱스는 일반적으로 가장 많이 액세스되는 테이블의 특정 열에 생성됩니다. 인덱스는 클러스터링되거나 클러스터링되지 않을 수 있습니다.

    Q#33) Oracle 데이터베이스에서 ROLE이란 무엇입니까?

    답변: 액세스 권한 부여 개별 개체에 개별 사용자에게 전달하는 것은 어려운 관리 작업입니다. 이 작업을 쉽게 하기 위해 ROLE이라고 하는 공통 권한 그룹이 데이터베이스에 생성됩니다. 일단 생성된 ROLE은 GRANT & REVOKE 명령.

    구문:

     CREATE ROLE READ_TABLE_ROLE; GRANT SELECT ON EMP TO READ_TABLE_ROLE; GRANT READ_TABLE_ROLE TO USER1; REVOKE READ_TABLE_ROLE FROM USER1; 

    Q #34) CURSOR에서 찾을 수 있는 속성은 무엇입니까?

    답변: CURSOR에는 아래와 같은 다양한 속성이 있습니다.

    (i) %FOUND :

    • 커서가 선언되었지만 닫혔습니다.
    • 가져오기가 발생하지 않았지만 커서가 열려 있는 경우에만 NULL을 반환합니다.
    • 다음과 같은 경우 TRUE를 반환합니다.행이 성공적으로 인출되고 행이 반환되지 않으면 FALSE입니다.

    (ii) NOT FOUND :

    • 커서가 반환된 경우 INVALID_CURSOR를 반환합니다. 선언되었지만 닫혀 있습니다.
    • 가져오기가 발생하지 않았지만 커서가 열려 있는 경우에만 NULL을 반환합니다.
    • 행을 성공적으로 가져오면 FALSE를 반환하고 반환된 행이 없으면 TRUE를 반환

    (iii) %ISOPEN : 커서가 열려 있으면 TRUE를 반환하고 그렇지 않으면 FALSE

    (iv) %ROWCOUNT : 가져온 행 수를 반환합니다. .

    Q #35) %ROWTYPE & PLSQL의 %TYPE?

    답변: %ROWTYPE & %TYPE은 데이터베이스에 정의된 테이블의 데이터 유형을 상속할 수 있는 PL/SQL의 속성입니다. 이러한 속성을 사용하는 목적은 데이터 독립성과 무결성을 제공하는 것입니다.

    데이터 유형이나 정밀도가 데이터베이스에서 변경되면 PL/SQL 코드가 변경된 데이터 유형으로 자동 업데이트됩니다.

    %TYPE은 테이블 열과 동일한 데이터 유형을 가져야 하는 변수를 선언하는 데 사용됩니다.

    %ROWTYPE은 구조와 유사한 구조를 갖는 전체 레코드 행을 정의하는 데 사용됩니다. of a table.

    Q #36) Stored Procedures & PL/SQL의 기능과 차이점은 무엇입니까?

    답변: 저장 프로시저는 특정 작업을 수행하기 위해 작성된 일련의 SQL 문입니다. 이 명령문은 데이터베이스에 그룹으로 저장할 수 있습니다.동일한 액세스 권한이 있는 경우 다른 프로그램과 공유할 수 있습니다.

    함수는 다시 특정 작업을 수행하도록 작성된 하위 프로그램이지만 둘 사이에는 차이점이 있습니다.

    저장 프로시저 함수

    저장 프로시저는 값을 반환하거나 반환하지 않을 수 있으며 여러 값을 반환할 수도 있습니다. 함수는 항상 단일 값만 반환합니다.
    저장 프로시저는 다음과 같은 DML 문을 포함할 수 있습니다. 삽입, 업데이트 & 삭제. 함수에서 DML 문을 사용할 수 없습니다.
    저장 프로시저는 함수를 호출할 수 있습니다. 함수는 저장 프로시저를 호출할 수 없습니다.
    저장 프로시저는 Try/Catch 블록을 사용한 예외 처리를 지원합니다. 함수는 Try/Catch 블록을 지원하지 않습니다.

    Q #37) 저장 프로시저를 통해 전달할 수 있는 매개변수는 무엇입니까?

    답변: IN, OUT & INOUT 매개변수는 저장 프로시저를 통해 전달되며 프로시저 자체를 선언할 때 정의해야 합니다.

    Q #38) 트리거란 무엇이며 트리거 유형은 무엇입니까?

    답변: 트리거는 특정 이벤트가 발생할 때 자동으로 실행되도록 작성된 저장된 프로그램입니다. 이 이벤트는 모든 DML 또는 DDL 작업이 될 수 있습니다.

    PL/SQL은 두 가지 유형의triggers:

    • Row Level
    • Statement Level

    Q #39) 글로벌 변수와 로컬 변수를 어떻게 구별할 것인가 PL/SQL의 변수?

    답변: 전역 변수는 프로그램 시작 시 정의되어 끝까지 유지되는 변수입니다. 프로그램 내의 모든 메서드나 프로시저에서 액세스할 수 있지만 로컬 변수에 대한 액세스는 선언된 프로시저나 메서드로 제한됩니다.

    Q #40) 패키지는 무엇입니까? PL SQL?

    답변: 패키지는 Oracle 데이터베이스에 저장되는 저장 프로시저, 함수, 유형, 트리거, 커서 등과 같은 관련 데이터베이스 개체 그룹입니다. . 허용되는 경우 여러 응용 프로그램에서 액세스할 수 있는 관련 개체 라이브러리의 일종입니다.

    PL/SQL 패키지 구조는 두 부분으로 구성됩니다. 패키지 사양 & 패키지 본문.

    결론

    위의 일련의 질문이 Oracle이 무엇인지 대략적으로 파악하는 데 도움이 되었기를 바랍니다.

    모든 기본 개념에 대한 지식, 인터뷰에서 제시하는 방식은 매우 중요합니다. 따라서 침착함을 유지하고 주저 없이 자신 있게 인터뷰에 임하십시오.

    다음 파트 2 읽기: Oracle DBA, RAC 및 성능 튜닝 질문

    성공을 기원합니다!!

    권장도서

    트랜잭션 처리, 데이터 웨어하우징 및 엔터프라이즈 그리드 컴퓨팅.

    Q #2) 오라클 데이터베이스 소프트웨어 릴리스를 식별하는 방법은 무엇입니까?

    답변: Oracle은 모든 릴리스에 대해 다양한 형식을 따릅니다.

    예를 들어 ,

    릴리스 10.1.0.1.1을 참조할 수 있습니다. as:

    10: 주요 DB 릴리스 번호

    1: DB 유지 관리 릴리스 번호

    0: 애플리케이션 서버 릴리스 번호

    1: 구성 요소별 릴리스 번호

    1: 플랫폼별 릴리스 번호

    Q #3) VARCHAR & VARCHAR2?

    답변: VARCHAR & VARCHAR2는 가변 길이의 문자열을 저장하는 데 사용되는 Oracle 데이터 유형입니다. 차이점은 다음과 같습니다.

    • VARCHAR는 최대 2000바이트의 문자를 저장할 수 있는 반면 VARCHAR2는 최대 4000바이트를 저장할 수 있습니다. 그것들은 사용되지 않는 반면 VARCHAR2는 사용되지 않은 공간을 해제합니다.

    Q #4) TRUNCATE & DELETE 명령?

    답변: 두 명령 모두 데이터베이스에서 데이터를 제거하는 데 사용됩니다.

    두 명령의 차이점은 다음과 같습니다.

    • TRUNCATE는 DDL 작업이고 DELETE는 DML 작업입니다.
    • TRUNCATE 모든 행을 제거하지만 테이블 구조는 그대로 둡니다. 그대로 롤백할 수 없다.DELETE 명령을 롤백할 수 있는 동안 명령 실행 전후에 COMMIT를 실행합니다.
    • TRUNCATE 명령은 개체 저장 공간을 해제하지만 DELETE 명령은 해제하지 않습니다.
    • TRUNCATE는 DELETE.

    Q #5) RAW 데이터 유형이란 무엇입니까?

    답변: RAW 데이터 유형은 변수를 저장하는 데 사용됩니다. 길이 이진 데이터 또는 바이트 문자열.

    RAW & VARCHAR2 데이터 유형은 PL/SQL이 이 데이터 유형을 인식하지 못하므로 RAW 데이터가 다른 시스템으로 전송될 때 어떤 변환도 수행할 수 없다는 것입니다. 이 데이터 유형은 쿼리하거나 테이블에 삽입할 수만 있습니다.

    구문: RAW(정밀도)

    Q #6) 조인이란 무엇입니까? 조인 유형을 나열하십시오.

    답변: 조인은 일부 공통 열 또는 조건을 사용하여 여러 테이블에서 데이터를 추출하는 데 사용됩니다.

    다음이 있습니다. 아래와 같은 다양한 유형의 조인:

    • INNER JOIN
    • OUTER JOIN
    • CROSS JOINS 또는 CARTESIAN PRODUCT
    • EQUI JOIN
    • ANTI JOIN
    • SEMI JOIN

    Q #7) SUBSTR & INSTR 함수?

    답변:

    • SUBSTR 함수는 제공된 문자열에서 숫자 값으로 식별되는 하위 부분을 반환합니다.
      • 의 경우 [SELECT SUBSTR('인도는 내 나라, 1, 4) from dual]은 "인디"를 반환합니다.
    • INSTR은 하위의 위치 번호를 반환합니다.문자열 내의 문자열.
      • 의 경우 [SELECT INSTR('인도는 내 나라, 'a') from dual]은 5를 반환합니다.

    Q #8) Oracle 테이블에서 중복 값을 어떻게 찾을 수 있습니까?

    답변: 다음을 사용할 수 있습니다. 중복 레코드를 가져오기 위한 아래 예제 쿼리.

     SELECT EMP_NAME, COUNT (EMP_NAME) FROM EMP GROUP BY EMP_NAME HAVING COUNT (EMP_NAME) > 1; 

    Q #9) ON-DELETE-CASCADE 문 은 어떻게 작동합니까?

    답변: ON DELETE CASCADE를 사용하면 상위 테이블에서 동일한 레코드가 삭제될 때 하위 테이블의 레코드가 자동으로 삭제됩니다. 이 문은 외래 키와 함께 사용할 수 있습니다.

    아래 명령 집합을 사용하여 기존 테이블에 ON DELETE CASCADE 옵션을 추가할 수 있습니다.

    구문:

     ALTER TABLE CHILD_T1 ADD CONSTRAINT CHILD_PARENT_FK REFERENCES PARENT_T1 (COLUMN1) ON DELETE CASCADE; 

    Q #10) NVL 기능이 무엇인가요? 어떻게 사용할 수 있나요?

    답변: NVL은 표현식에 대해 null이 발생할 경우 사용자가 값을 대체할 수 있도록 도와주는 기능입니다.

    아래 구문으로 사용할 수 있습니다.

    NVL (Value_In, Replace_With)

    Q #11) 기본 키와 기본 키의 차이점은 무엇입니까? 고유 키?

    답변: 기본 키는 각 테이블 행을 고유하게 식별하는 데 사용되며 고유 키는 테이블 열에서 값이 중복되는 것을 방지합니다.

    다음은 몇 가지 차이점입니다.

    • 기본 키는 테이블에서 하나만 있을 수 있지만 고유 키는 여러 개일 수 있습니다.
    • 기본 키는 보유할 수 없습니다. 고유 키가 여러 null 값을 허용하는 동안 전혀 null 값.
    • 기본키는 클러스터형 인덱스이고 고유 키는 비클러스터형 인덱스입니다.

    Q #12) TRANSLATE 명령과 REPLACE의 차이점은 무엇입니까?

    정답: TRANSLATE 명령은 제공된 문자열에서 문자를 대체 문자로 하나씩 번역합니다. REPLACE 명령은 문자 또는 문자 집합을 완전한 대체 문자열로 교체합니다.

    예:

     TRANSLATE (‘Missisippi’,’is’,’15) => M155151pp1 REPLACE (‘Missisippi’,’is’,’15) =>  M15s15ippi 

    Q #13) 어떻게 찾을 수 있습니까? Oracle에서 현재 날짜와 시간을 알 수 있습니까?

    답변: 현재 날짜와 시간을 찾을 수 있습니다. Oracle에서 SYSDATE 명령을 사용한 시간.

    구문:

    SELECT SYSDATE into CURRENT_DATE from dual;

    Q #14) Oracle에서 COALESCE 기능을 사용하는 이유는 무엇입니까?

    답변: COALESCE 함수는 표현식에 제공된 인수 목록에서 null이 아닌 첫 번째 표현식을 반환하는 데 사용됩니다. 식에는 최소 두 개의 인수가 있어야 합니다.

    구문:

    COALESCE (expr 1, expr 2, expr 3…expr n)

    Q #15) 5번째 RANK를 얻기 위해 쿼리를 작성하는 방법은 무엇입니까? STUDENT_REPORT 테이블의 학생?

    답변: 쿼리는 다음과 같습니다.

     SELECT TOP 1 RANK FROM (SELECT TOP 5 RANK FROM STUDENT_REPORT ORDER BY RANK DESC) AS STUDENT ORDER BY RANK ASC; 

    Q #16) 언제 GROUP을 사용합니까? SQL 쿼리의 BY 절?

    답변: GROUP BY 절은 쿼리 결과에서 하나 이상의 열로 데이터를 식별하고 그룹화하는 데 사용됩니다. 이 절은 COUNT, MAX, MIN, SUM, AVG 등과 같은 집계 함수와 함께 자주 사용됩니다.

    구문:

     SELECT COLUMN_1, COLUMN_2 FROM TABLENAME WHERE [condition] GROUP BY COLUMN_1, COLUMN_2 

    Q #17) What 에서 데이터를 가져오는 가장 빠른 방법입니다.table?

    답변: 데이터를 가져오는 가장 빠른 방법은 SQL 쿼리에서 ROWID를 사용하는 것입니다.

    Q #18) 여기서 DECODE 및 CASE 문을 사용합니까?

    답변: DECODE & CASE 문은 IF-THEN-ELSE 문처럼 작동하며 서로에 대한 대안입니다. 이러한 기능은 Oracle에서 데이터 값을 변환하는 데 사용됩니다.

    예:

    DECODE 기능

     Select ORDERNUM, DECODE (STATUS,'O', ‘ORDERED’,'P', ‘PACKED,’S’,’SHIPPED’,’A’,’ARRIVED’) FROM ORDERS; 

    CASE Function

     Select ORDERNUM , CASE (WHEN STATUS ='O' then ‘ORDERED’ WHEN STATUS ='P' then PACKED WHEN STATUS ='S' then ’SHIPPED’ ELSE ’ARRIVED’) END FROM ORDERS; 

    두 명령 모두 각각의 상태가

    인 주문 번호를 표시합니다. If,

    상태 O= 주문됨

    상태 P= 포장됨

    상태 S= 배송됨

    상태 A= 도착함

    Q #19) 데이터베이스에 무결성 제약 조건이 필요한 이유는 무엇입니까?

    답변: 무결성 제약 조건은 데이터베이스의 무결성을 유지하고 유효하지 않은 데이터가 테이블에 입력되는 것을 방지합니다. 아래 언급된 제약 조건의 도움으로 테이블 간에 관계를 유지할 수 있습니다.

    기본 키, 외래 키, 고유 키, NOT NULL & CHECK.

    Q #20) Oracle에서 MERGE는 무엇을 의미하며 두 테이블을 병합하려면 어떻게 해야 합니까?

    답변: The MERGE 문은 두 테이블의 데이터를 병합하는 데 사용됩니다. 원본 테이블에서 데이터를 선택하고 이를 기반으로 다른 테이블에 삽입/업데이트합니다.MERGE 쿼리에 제공된 조건입니다.

    구문:

     MERGE INTO TARGET_TABLE_1 USING SOURCE_TABLE_1 ON SEARCH_CONDITION WHEN MATCHED THEN INSERT (COL_1, COL_2…) VALUES (VAL_1, VAL_2…) WHERE  WHEN NOT MATCHED THEN UPDATE SET COL_1=VAL_1, COL_2=VAL_2… WHEN  

    Q #21) Oracle에서 Aggregate 함수의 용도는 무엇입니까?

    답변: 집계 함수는 값 집합에 대한 요약 작업을 수행하여 단일 값을 제공합니다. 계산을 수행하기 위해 코드에서 사용하는 몇 가지 집계 함수가 있습니다.

    • AVG
    • MIN
    • MAX
    • COUNT
    • SUM
    • STDEV

    Q #22) 집합 연산자 UNION, UNION ALL, MINUS & INTERSECT는 무엇을 의미합니까?

    답변: 집합 연산자는 사용자가 열과 상대 데이터 유형이 동일한 경우 한 번에 두 개 이상의 테이블에서 데이터를 가져오는 것을 용이하게 합니다. 원본 테이블에서 동일합니다.

    • UNION 연산자는 중복 행을 제외한 두 테이블의 모든 행을 반환합니다.
    • UNION ALL 은 반환합니다. 중복 행과 함께 두 테이블의 모든 행.
    • MINUS 는 두 번째 테이블에 없는 첫 번째 테이블의 행을 반환합니다.
    • INTERSECT 는 두 테이블의 공통 행만 반환합니다.

    Q #23) Oracle에서 날짜를 문자로 변환할 수 있습니까? 그렇다면 구문은 무엇입니까?

    답변: TO_CHAR 함수를 사용하여 위의 변환을 수행할 수 있습니다.

    구문:

    SELECT to_char (to_date ('30-01-2018', 'DD-MM-YYYY'), 'YYYY-MM-DD') FROM dual;

    Q #24) 데이터베이스 트랜잭션 & Oracle에서 사용할 수 있는 모든 TCL 문은 무엇입니까?

    답변: 트랜잭션일련의 SQL 문이 한 번에 실행될 때 발생합니다. 이러한 명령문의 실행을 제어하기 위해 Oracle은 TCL, 즉 일련의 명령문을 사용하는 트랜잭션 제어 명령문을 도입했습니다.

    명령문 집합에는 다음이 포함됩니다.

    • COMMIT: 트랜잭션을 영구적으로 만드는 데 사용됩니다.
    • ROLLBACK: 커밋 지점을 마지막으로 DB 상태를 롤백하는 데 사용합니다.
    • SAVEPOINT: 나중에 롤백할 수 있는 트랜잭션 지점을 지정하는 데 도움이 됩니다.

    Q #25) 데이터베이스 개체로 무엇을 이해합니까? 그 중 몇 가지를 나열할 수 있습니까?

    답변: 데이터베이스에 데이터 또는 데이터 참조를 저장하는 데 사용되는 개체를 데이터베이스 개체라고 합니다. 데이터베이스는 테이블, 뷰, 인덱스, 제약 조건, 저장 프로시저, 트리거 등 다양한 유형의 DB 개체로 구성됩니다.

    Q #26) 중첩 테이블이란 무엇이며 중첩 테이블과 어떻게 다른가요 일반 테이블?

    답변: 중첩 테이블은 테이블의 열로 저장할 수 있는 데이터베이스 컬렉션 개체입니다. 일반 테이블을 생성하는 동안 단일 열에서 전체 중첩 테이블을 참조할 수 있습니다. 중첩 테이블에는 행 제한이 없는 단 하나의 열만 있습니다.

    예:

     CREATE TABLE EMP ( EMP_ID NUMBER, EMP_NAME  TYPE_NAME) 

    여기서는 일반 테이블을 EMP로 생성하고 중첩 테이블을 참조합니다. TYPE_NAME을 열로 사용합니다.

    Q #27) 이미지를 데이터베이스에 저장할 수 있습니까? 가능하다면 어떻게 합니까?

    답변: BLOB는 Binary Large Object의 약자로서 일반적으로 이미지, 오디오 및 데이터를 저장하는 데 사용되는 데이터 유형입니다. 비디오 파일 또는 일부 바이너리 실행 파일. 이 데이터 유형은 최대 4GB의 데이터를 보유할 수 있는 용량을 가지고 있습니다.

    Q #28) 데이터베이스 스키마는 무엇이며 무엇을 보유하고 있습니까?

    답변: 스키마는 이 스키마 내에서 새 개체를 생성하거나 조작할 수 있는 데이터베이스 사용자가 소유한 데이터베이스 개체의 모음입니다. 스키마는 테이블, 뷰, 인덱스, 클러스터, 저장 프로시저, 함수 등과 같은 모든 DB 개체를 포함할 수 있습니다.

    Q #29) 데이터 사전이란 무엇이며 어떻게 만들 수 있습니까?

    답변: 새로운 데이터베이스가 생성될 때마다 데이터베이스 고유의 데이터 사전이 시스템에 의해 생성됩니다. 이 사전은 SYS 사용자가 소유하며 데이터베이스와 관련된 모든 메타데이터를 유지합니다. 읽기 전용 테이블과 뷰 세트가 있으며 물리적으로 SYSTEM 테이블스페이스에 저장됩니다.

    Q #30) 뷰란 무엇이며 테이블과 어떻게 다른가요?

    답변: 보기는 나중에 참조할 수 있는 SQL 쿼리 결과를 저장하는 데 사용되는 사용자 정의 데이터베이스 개체입니다. 뷰는 이 데이터를 물리적으로 저장하지 않고 가상 테이블로 저장하므로 논리적 테이블이라고 할 수 있습니다.

    뷰는 테이블과 다릅니다.

    • 테이블은 데이터를 보유할 수 있지만 SQL 쿼리 결과는 보유할 수 없지만 뷰는 쿼리 결과를 저장할 수 있습니다.
    맨 위로 스크롤