데이터베이스

Oracle(2022.02.09)2-연산자

AIN99 2022. 2. 9. 20:52
728x90

연산자(OPERATOR)
1. 4칙연산자(+,-,/,*)


2. 관계연산자 : 결과가 참(true), 거짓(false)으로 반환
   

>, >= ,< , <=, =, != or <>
       WHERE 절의 조건, HAVING 절의 조건, CASE WHEN-THEN의 조건문에 사용

CASE 

WHEN '조건' THEN '조건에 만족할 때 출력할 데이터'

ELSE '조건에 만족하지 않을 때 출력할 데이터'

END

FROM 테이블;

사용예)회원테이블(MEMBER) 성별 마일리지합계를 조회하시오
      Alias는 구분,마일리지합계이며 구분난에 '여성회원','남성회원'을 출력

 SELECT CASE WHEN SUBSTR(MEM_REGNO2,1,1)='2' THEN
                 '여성회원'
            ELSE
                 '남성회원'
            END AS 구분,
            SUM(MEM_MILEAGE) AS 마일리지합계
        FROM MEMBER
      GROUP BY CASE WHEN SUBSTR(MEM_REGNO2,1,1)='2' THEN
                '여성회원'
            ELSE
                '남성회원'
            END;

SELECT SUM(컬럼명) , AVG(컬럼명) , MAX(컬럼명) , MIN(컬럼명) , COUNT(컬럼명) 

   FROM 테이블명

WHERE 조건

GROUP BY 그룹화할 컬럼

HAVING 그룹에 대한 조건

WHERE - GROUP BY - HAVING 의 순서

사용예)상품테이블(PROD)에서 판매가가 20만원 이상인 상품을 조회하시오
      Alias는 상품코드, 상품명, 분류코드, 매입가, 판매가

 SELECT PROD_ID AS 상품코드,
           PROD_NAME AS 상품명,
           PROD_LGU AS 분류코드,
           PROD_COST AS 매입가,
           PROD_PRICE AS 판매가
    FROM PROD 
   WHERE PROD_PRICE>=200000;

    

사용예)사원테이블에서 부서가 30-70번에 속한 사원정보를 조회하시오
      Alias는 사원번호, 사원명, 부서코드, 입사일                                    

SELECT EMPLOYEE_ID AS 사원번호,
             FIRST_NAME||' '||LAST_NAME AS 사원명,
             DEPARTMENT_ID AS 부서코드,
             HIRE_DATE AS 입사일
        FROM HR.EMPLOYEES
    WHERE DEPARTMENT_ID>=30 AND DEPARTMENT_ID<=70
    ORDER BY 3;

  

                                  :

                          데이터 생략


 


3.논리연산자: NOT(논리부정),
             AND(논리곱:두 조건 모두 참일때 전체 결과가 참 ,범위지정)
             OR(논리합: 두 조건 중 어느 하나만 참이면 전체가 참)
             
사용예) 사원 테이블에서 50번부서에 속한 사원 중 급여가 6000이상인 사원을 조회
        Alias는 사원번호, 이름, 급여 

SELECT EMPLOYEE_ID AS 사원번호, 
        FIRST_NAME||' '||LAST_NAME AS 이름,
        SALARY AS 급여
      FROM HR.EMPLOYEES
    WHERE DEPARTMENT_ID=50
         AND SALARY>=6000;

 


**사원테이블에 사원명컬럼 (EMP_NAME)을 VARCHAR2(80)로 추가하고
  FIRST_NAME과 LAST_NAME을 결합하여 사원명으로 입력
  
  ALTER TABLE HR.EMPLOYEES ADD(EMP_NAME VARCHAR2(80));
  
  UPDATE HR.EMPLOYEES
     SET EMP_NAME=FIRST_NAME||' '||LAST_NAME;
     

select EMP_NAME from HR.EMPLOYEES ;

=> 이름이 합쳐진 것을 볼 수 있다.


사용예)회원테이블에서 '충남'에 거주하거나 직업이 '주부'인 회원을 조회하시오.
      Alias는 회원번호, 회원명, 주소,직업,마일리지

 SELECT MEM_ID AS 회원번호, 
      MEM_NAME AS 회원명, 
      MEM_ADD1||' '||MEM_ADD2 AS 주소,
      MEM_JOB AS 직업,
      MEM_MILEAGE AS 마일리지
    FROM MEMBER
   WHERE MEM_ADD1 LIKE '충남%'
      OR MEM_JOB='주부';

                                           :

                                     데이터생략

728x90