top oracle interview questions
가장 자주 묻는 Oracle 인터뷰 질문 및 답변 :
Oracle의 거의 모든 기본 개념을 다루는 답변과 함께 상위 40 개의 Oracle 인터뷰 질문.
이것은 거의 모든 Oracle Interview 질문을 다루는 심층 시리즈입니다.
1 부: Oracle Basic, SQL, PL / SQL 질문 (이 기사)
2 부: Oracle DBA, RAC 및 성능 조정 질문
부품 # 3 : Oracle Forms and Reports 인터뷰 질문
파트 # 4 : Oracle Apps 및 Oracle SOA 기술 인터뷰 질문
시리즈의 첫 번째 기사부터 시작하겠습니다.
이 기사에서 다루는 질문 유형 :
- 기본 Oracle 인터뷰 질문
- Oracle SQL 인터뷰 질문
- Oracle PL / SQL 인터뷰 질문
이해를 돕기 위해 간단한 예제와 함께 설명 된 Oracle의 기본 사항을 찾을 수 있습니다. Oracle 인터뷰에 참여할 계획이라면이 기사에서 다루는 이러한 질문 세트가 확실히 큰 도움이 될 것입니다.
갑시다 !!
오라클 인터뷰 질문 목록
Q # 1) Oracle은 무엇이며 다른 에디션은 무엇입니까?
대답: Oracle은 Oracle Corporation에서 제공하는 인기있는 데이터베이스 중 하나이며 관계형 관리 개념으로 작동하므로 Oracle RDBMS라고도합니다. 온라인 트랜잭션 처리, 데이터웨어 하우징 및 엔터프라이즈 그리드 컴퓨팅에 널리 사용됩니다.
Q # 2) Oracle Database 소프트웨어 릴리스를 어떻게 식별 하시겠습니까?
대답: Oracle은 모든 릴리스에 대해 다양한 형식을 따릅니다.
예를 들어 ,
릴리스 10.1.0.1.1은 다음과 같이 참조 할 수 있습니다.
10 : 주요 DB 릴리스 번호
1: DB 유지 관리 릴리스 번호
0 : 애플리케이션 서버 릴리스 번호
1: 구성 요소 별 릴리스 번호
1: 플랫폼 별 릴리스 번호
안드로이드 용 최고의 mp3 노래 다운로더
Q # 3) VARCHAR와 VARCHAR2를 어떻게 구별 할 수 있습니까?
대답: VARCHAR 및 VARCHAR2는 모두 가변 길이의 문자열을 저장하는 데 사용되는 Oracle 데이터 유형입니다. 차이점은 다음과 같습니다.
- VARCHAR은 문자를 최대 2000 바이트까지 저장할 수있는 반면 VARCHAR2는 최대 4000 바이트를 저장할 수 있습니다.
- VARCHAR은 모두 사용되지 않더라도 선언 중에 정의 된 문자에 대한 공간을 보유하지만 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) 조인이란 무엇입니까? 조인 유형을 나열합니다.
대답: 조인은 몇 가지 공통 열 또는 조건을 사용하여 여러 테이블에서 데이터를 추출하는 데 사용됩니다.
아래와 같이 다양한 유형의 조인이 있습니다.
- 내부 조인
- 외부 조인
- 교차 조인 또는 카르테 시안 제품
- EQUI 조인
- 안티 가입
- 세미 조인
Q # 7) SUBSTR과 INSTR 기능의 차이점은 무엇입니까?
대답:
- SUBSTR 함수는 제공된 문자열의 숫자 값으로 식별되는 하위 부분을 반환합니다.
- 예를 들어 , (SELECT SUBSTR (‘India is my country’, 1, 4) from dual)은 'Indi'를 반환합니다.
- INSTR은 문자열 내 하위 문자열의 위치 번호를 반환합니다.
- 예를 들어 , (SELECT INSTR (‘India is my country’,‘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 함수는 표현식에 제공된 인수 목록에서 널이 아닌 첫 번째 표현식을 리턴하는 데 사용됩니다. 식에는 최소 두 개의 인수가 있어야합니다.
통사론:
COALESCE (expr 1, expr 2, expr 3…expr n)
Q # 15) STUDENT_REPORT 테이블에서 5 순위 학생을 얻기위한 쿼리를 어떻게 작성합니까?
답변 : 쿼리는 다음과 같습니다.
SELECT TOP 1 RANK FROM (SELECT TOP 5 RANK FROM STUDENT_REPORT ORDER BY RANK DESC) AS STUDENT ORDER BY RANK ASC;
Q # 16) SQL 쿼리에서 GROUP 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) 테이블에서 데이터를 가져 오는 가장 빠른 방법은 무엇입니까?
대답: 데이터를 가져 오는 가장 빠른 방법은 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;
케이스 함수
Select ORDERNUM , CASE (WHEN STATUS ='O' then ‘ORDERED’ WHEN STATUS ='P' then PACKED WHEN STATUS ='S' then ’SHIPPED’ ELSE ’ARRIVED’) END FROM ORDERS;
두 명령 모두 각각의 상태와 함께 주문 번호를 다음과 같이 표시합니다.
만약,
상태 O = 주문 됨
상태 P = 포장 됨
상태 S = 배송 됨
상태 A = 도착
Q # 19) 데이터베이스에 무결성 제약이 필요한 이유는 무엇입니까?
대답: 무결성 제약 조건은 데이터베이스의 무결성을 유지하고 테이블에 잘못된 데이터가 입력되는 것을 방지하기 위해 비즈니스 규칙을 적용하는 데 필요합니다. 아래 언급 된 제약 조건의 도움으로 테이블 간의 관계를 유지할 수 있습니다.
기본 키, 외래 키, UNIQUE KEY, NOT NULL 및 CHECK를 포함하는 다양한 무결성 제약 조건을 사용할 수 있습니다.
Q # 20) Oracle에서 MERGE 란 무엇을 의미하며 두 테이블을 어떻게 병합 할 수 있습니까?
대답: 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에서 집계 함수를 사용하는 것은 무엇입니까?
대답: 집계 함수는 값 집합에 대한 요약 작업을 수행하여 단일 값을 제공합니다. 계산을 수행하기 위해 코드에서 사용하는 몇 가지 집계 함수가 있습니다. 이것들은:
- 평균
- 분
- MAX
- 카운트
- 합집합
- STDEV
Q # 22) 집합 연산자 UNION, UNION ALL, MINUS & INTERSECT는 무엇을 의미합니까?
대답: 집합 연산자를 사용하면 열과 관련 데이터 유형이 소스 테이블에서 동일한 경우 사용자가 두 개 이상의 테이블에서 한 번에 데이터를 가져올 수 있습니다.
- 노동 조합 연산자는 중복 행을 제외한 두 테이블의 모든 행을 반환합니다.
- UNION ALL 중복 행과 함께 두 테이블의 모든 행을 반환합니다.
- 마이너스 두 번째 테이블에없는 첫 번째 테이블의 행을 반환합니다.
- 교차 두 테이블의 공통 행만 반환합니다.
Q # 23) Oracle에서 날짜를 char로 변환 할 수 있습니까? 그렇다면 구문은 무엇입니까?
대답: 위의 변환을 수행하기 위해 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을 도입했습니다.
문 세트에는 다음이 포함됩니다.
- 범하다: 트랜잭션을 영구적으로 만드는 데 사용됩니다.
- 롤백 : 커밋 지점이 지속되도록 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) 뷰란 무엇이며 테이블과 어떻게 다릅니 까?
대답: View는 나중에 참조 할 수있는 SQL 쿼리의 결과를 저장하는 데 사용되는 사용자 정의 데이터베이스 개체입니다. 뷰는이 데이터를 물리적으로 저장하지 않고 가상 테이블로 저장하므로 논리 테이블이라고 할 수 있습니다.
보기는 다음과 같이 표와 다릅니다.
- 테이블은 데이터를 저장할 수 있지만 SQL 쿼리 결과는 저장할 수 없지만 View는 쿼리 결과를 저장할 수 있으며 이는 다른 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 :
- 커서가 선언되었지만 닫힌 경우 INVALID_CURSOR를 반환합니다.
- 페치가 발생하지 않았지만 커서가 열려있는 경우 NULL을 반환합니다.
- 행이 성공적으로 페치되면 TRUE를 반환하고 행이 반환되지 않으면 FALSE를 반환합니다.
(ii) 찾을 수 없음 :
- 커서가 선언되었지만 닫힌 경우 INVALID_CURSOR를 반환합니다.
- 페치가 발생하지 않았지만 커서가 열려있는 경우 NULL을 반환합니다.
- 행이 성공적으로 페치되면 FALSE를 반환하고 행이 반환되지 않으면 TRUE를 반환합니다.
(iii) % ISOPEN : 커서가 OPEN이면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.
(iv) % ROWCOUNT : 가져온 행 수를 반환합니다.
Q # 35) PLSQL에서 % ROWTYPE과 % TYPE을 사용하는 이유는 무엇입니까?
대답: % ROWTYPE 및 % TYPE은 데이터베이스에 정의 된 테이블의 데이터 유형을 상속 할 수있는 PL / SQL의 속성입니다. 이러한 속성을 사용하는 목적은 데이터 독립성과 무결성을 제공하는 것입니다.
데이터베이스에서 데이터 유형 또는 정밀도가 변경되면 PL / SQL 코드가 변경된 데이터 유형으로 자동 업데이트됩니다.
% TYPE은 테이블 컬럼과 동일한 데이터 유형을 가져야하는 변수를 선언하는 데 사용됩니다.
기능 테스트와 비 기능 테스트
% ROWTYPE은 테이블 구조와 유사한 구조를 갖는 레코드의 전체 행을 정의하는 데 사용됩니다.
Q # 36) PL / SQL에서 저장 프로 시저 및 함수를 생성하는 이유와 차이점은 무엇입니까?
대답: 저장 프로시 저는 특정 작업을 수행하기 위해 작성된 SQL 문 집합입니다. 이러한 명령문은 지정된 이름으로 데이터베이스에 그룹으로 저장 될 수 있으며 동일한 액세스 권한이있는 경우 다른 프로그램과 공유 할 수 있습니다.
함수는 다시 특정 작업을 수행하기 위해 작성된 하위 프로그램이지만 둘 다에 차이가 있습니다.
저장 프로 시저 | 기능 |
---|---|
저장 프로시 저는 값을 반환하거나 반환하지 않을 수 있으며 여러 값도 반환 할 수 있습니다. | 함수는 항상 단일 값만 반환합니다. |
저장 프로 시저에는 삽입, 업데이트 및 삭제와 같은 DML 문이 포함될 수 있습니다. | 함수에서 DML 문을 사용할 수 없습니다. |
저장 프로시 저는 함수를 호출 할 수 있습니다. | 함수는 저장 프로 시저를 호출 할 수 없습니다. |
저장 프로시 저는 Try / Catch 블록을 사용하여 예외 처리를 지원합니다. | 함수는 Try / Catch 블록을 지원하지 않습니다. |
Q # 37) 저장 프로 시저를 통과 할 수있는 매개 변수는 무엇입니까?
대답: 저장 프로 시저를 통해 IN, OUT 및 INOUT 매개 변수를 전달할 수 있으며 프로 시저 자체를 선언하면서 정의해야합니다.
Q # 38) 트리거 란 무엇이며 유형은 무엇입니까?
대답: 트리거는 어떤 이벤트가 발생할 때 자동으로 실행되는 방식으로 작성된 저장 프로그램입니다. 이 이벤트는 DML 또는 DDL 작업 일 수 있습니다.
PL / SQL은 두 가지 유형의 트리거를 지원합니다.
- 행 수준
- 명세서 수준
Q # 39) PL / SQL에서 전역 변수와 지역 변수를 어떻게 구별합니까?
대답: 전역 변수는 프로그램의 시작 부분에 정의되어 끝까지 유지되는 변수입니다. 프로그램 내의 모든 메소드 또는 프로 시저로 액세스 할 수 있지만 로컬 변수에 대한 액세스는 선언 된 프로 시저 또는 메소드로 제한됩니다.
Q # 40) PL SQL의 패키지는 무엇입니까?
대답: 패키지는 Oracle 데이터베이스에 저장된 저장된 procs, 함수, 유형, 트리거, 커서 등과 같은 관련 데이터베이스 개체 그룹입니다. 허용되는 경우 여러 응용 프로그램에서 액세스 할 수있는 일종의 관련 개체 라이브러리입니다.
PL / SQL 패키지 구조는 패키지 사양 및 패키지 본문의 두 부분으로 구성됩니다.
결론
위의 질문이 Oracle이 무엇인지 엿보는 데 도움이 되었기를 바랍니다.
모든 기본 개념에 대한 철저한 지식이 있더라도 인터뷰에서 그것을 제시하는 방식은 매우 중요합니다. 그러므로 침착 함을 유지하고 주저없이 자신있게 인터뷰를 맞이하십시오.
다음 파트 2 읽기 : Oracle DBA, RAC 및 성능 조정 질문
모든 성공을 기원합니다 !!