Eggs Sunny Side Up
본문 바로가기
Computer Engineering/DB_Oracle

230228_복습용문제

by guswn100059 2023. 2. 28.
/* 
1. 다음은 오늘 날짜를 출력하는 쿼리입니다. 
   SELECT SYSDATE FROM DUAL ; 
   위 상태에서 SYSDATE을 TO_CHAR 함수를 이용해서 YYYYMMDD 형태로 출력해주세요.
   예) SYSDATE 가 2023-02-28 13:40:58 라면 '20230228' 형태로 연월일만 출력하면 됩니다. 
*/ 
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD')
  FROM DUAL;
  
  
 /* 
2. 다음 문자열 '20230228142020' 을 연도/월/일 시:분:초 형태로 출력하려고 합니다. 
   예) '20230228142020'   --> 2023/02/28 14:20:20 형태를 의미 
   
   아래 쿼리를 참조하면 위 문자열을 날짜형으로 출력해주세요. 
   SELECT TO_DATE( '20230228142020' , '????/??/?? ????:??:??') FROM DUAL ;   
*/
SELECT TO_DATE('20230228142020', 'YYYY/MM/DD HH24:MI;SS')
  FROM DUAL;
  
  
/* 
3. 직원 테이블에는 입사일시 라는 날짜형 컬럼이 존재합니다. 
   다음과 같은 결과가 출력되도록 쿼리를 작성해주세요. 
   이 때 , 직원ID 는 A0001 , A0002 , A0003 인 대상(행 ,튜플) 만 출력되도록 해주세요. 

   <출력 결과> 
   직원ID    입사일시                 입사연월일  (이건 AS 처리 한겁니다) 
   A0001	2022-03-21 00:00:00   	20220321
   A0002	2021-09-12 00:00:00	    20210912
   A0003	2022-11-06 00:00:00	    20221106
*/ 
SELECT 직원ID
     , 입사일시
     , TO_CHAR(입사일시, 'YYYYMMDD') AS 입사연월일
  FROM 직원
 WHERE 직원ID = 'A0001'
    OR 직원ID = 'A0002'
    OR 직원ID = 'A0003';
    

/* 
4. 직원 테이블에서 다음 정보를 출력하려고 합니다. 
   그런데 직원 중에 입사일시가 정해지지 않은(NULL) 대상이 있습니다. 
   이럴 경우 현재시점의 날짜(SYSDATE) 가 출력될 수 있도록 대체하여 값을 출력해주세요.
   단, 부서ID 가 D005 이거나 D004 인 대상만 출력해주세요. 
   
   <출력결과> `
    직원ID    입사일시NVL쓰기          부서ID 
    A0004	2020-03-11 00:00:00 	D004
    A0005	2023-02-28 13:58:29 	D005
    A0009	2013-11-23 00:00:00 	D004
    A0010	2013-11-23 00:00:00 	D005
    A0011	2023-02-23 15:29:39 	D004
*/
SELECT 직원ID
     , NVL(입사일시, SYSDATE) AS 입사일시NVL쓰기
     , 부서ID
  FROM 직원
 WHERE 부서ID = 'D005'
    OR 부서ID = 'D004' ;
    
    
/* 
5. 직원 테이블에서 성별이 '여' 이면서 부서가 D004 인 대상의 모든 정보를 출력해주세요. 
*/
SELECT *
  FROM 직원
 WHERE 성별 = '여'
   AND 부서 = 'D004' ;
   
/* 
6. 직원 테이블에서 나이가 50세 이상인 대상을 출력해주세요. 
*/
SELECT *
  FROM 직원
 WHERE 나이 >= 50 ;
 
 
/* 
7. 직원연락처 테이블에서 구분코드가 '집전화' 이거나 '휴대폰' 인 대상을 모두 출력하세요. 
*/
SELECT *
  FROM 직원연락처
 WHERE 구분코드 = '집전화'
    OR 구분코드 = '휴대폰' ;

댓글