[SQL 23.07.12] EmpJava, Subquery2, DDL

홍선우·2023년 7월 12일
  1. 오라클 emp table을 출력하는 자바 프로그래밍을 쓰시오.
  • Dto

  • Dao

  • Main


  1. 아래의 객체에 대하여 설명하시오.
  • Connection connection
  • PreparedStatement pstmt
  • ResultSet rs

Connection은 데이터베이스 연결을 관리하고, PreparedStatement는 컴파일된 SQL 문을 실행하고 매개 변수를 처리하며, ResultSet은 조회된 결과를 처리한다.


  1. 아래의 개념에 대하여 설명하시오.
    (1) DTO (Data Transfer Object)
  • DTO는 데이터를 전달하기 위한 객체로, 데이터의 컨테이너 역할을 합니다.
  • 주로 비즈니스 계층과 프레젠테이션 계층 간에 데이터를 전달하는 데 사용됩니다.
  • DTO는 데이터의 구조를 정의하고, 필요한 필드와 해당 필드에 대한 getter 및 setter 메서드를 포함합니다.
  • 데이터베이스에서 가져온 데이터를 객체로 변환하거나, 객체를 데이터베이스에 저장하기 전에 데이터베이스에서 사용할 수 있는 형식으로 변환하는 데 사용될 수 있습니다.
    (2) DAO
  • DAO는 데이터베이스나 다른 영구 저장소에 접근하기 위한 인터페이스를 제공하는 객체입니다.
  • DAO는 비즈니스 로직과 데이터 액세스 로직을 분리하여 유지 관리 및 테스트를 용이하게 합니다.
  • 주로 데이터 액세스를 추상화하고, 데이터베이스에 액세스하는 메서드를 정의합니다. 이는 CRUD(Create, Read, Update, Delete) 작업을 수행하는 메서드를 포함할 수 있습니다.
  • DAO는 데이터 액세스의 세부 사항을 숨기고 클라이언트 코드가 데이터베이스와 직접 상호 작용하는 것을 방지합니다.
  • 일반적으로 DTO 객체를 사용하여 데이터베이스와 데이터를 교환합니다.

  1. 아래에 대하여 설명하시오.
  • DDL: 테이블 구조 생성, 변경 삭제
  • DCL: 데이터베이스에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 문제없이 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의하는 데 사용
  • DML: 테이블의 내용을 추가, 수정, 삭제

  1. 아래의 쿼리에서 WHERE 1=0 의 의미는?
    CREATE TABLE DEPT03 AS SELECT * FROM DEPT WHERE 1=0;
  • 일치하는 행이 없도록 쿼리 결과를 제한하는 조건
  • 일치하는 행이 없기 때문에 빈 결과 세트를 반환함.

  1. 다중행 쿼리에서 아래를 설명하시오.
  • any: 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 하나 이상이 일치하면 참인 연산자
  • all: 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 모든 값이 일치하면 참인 연산자

  1. 아래 쿼리를 완성하시오.
    -- 연봉을 3000이상 받는 사원이 소속된 부서와 동일한 부서에서 근무하는 사원들의 정보를 출력하는 쿼리문

    select ename, sal, deptno from emp where deptno in (select distinct deptno from emp where sal >= 3000);

-- 부서 번호가 30번인 사원들의 급여 중 가장 낮은 값(800)보다 높은 급여를 받는 사원의 이름, 급여를 출력하는 쿼리문

select ename, sal from emp where sal > any (select sal from emp where deptno = 30);

--30번 소속 사원들 중에서 급여를 가장 많이 받는 사원보다 더 많은 급여를 받는 사람의 이름과 급여를 출력하는 쿼리문

select ename, sal from emp where sal > (select max(sal) from emp where deptno = 30) ;


  1. DELETE, TRUNCATE, DROP 명령어의 차이점은?
  • DELETE 명령어는 데이터는 지워지지만 테이블 용량은 줄어 들지 않는다. 원하는 데이터만 지울 수 있다. 삭제 후 잘못 삭제한 것을 되돌릴 수 있다.
  • TRUNCATE 명령어는 용량이 줄어 들고, 인덱스 등도 모두 삭제 된다. 테이블은 삭제하지는 않고, 데이터만 삭제한다. 한꺼번에 다 지워야 한다. 삭제 후 절대 되돌릴 수 없다.
  • DROP 명령어는 데이블 전체를 삭제, 공간, 객체를 삭제한다. 삭제 후 절대 되돌릴 수 없다.

  1. 데이터 딕셔너리 란?
  • 데이터베이스 자원을 효율적으로 관리하기 위한 다양한 정보를 저장하는 시스템 테이블이다.
  • 사용자가 테이블을 생성하거나 변경하는 등의 작업을 할 때, 데이터베이스 서버에 의해 자동으로 갱신되는 테이블이다.
  • 사용자는 데이터 딕셔너리의 내용을 직접 수정하거나 삭제할 수 없다.
  • 사용자가 데이터 딕셔너리를 조회해 보면 시스템이 직접 관리하는 테이블이기 때문에 암호 같은 기호만 보여질 뿐 내용을 알 수는 없다.

0개의 댓글