Oracle(2022.02.09)2-연산자
연산자(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;
=> 이름이 합쳐진 것을 볼 수 있다.
사용예)회원테이블에서 '충남'에 거주하거나 직업이 '주부'인 회원을 조회하시오.
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='주부';
:
데이터생략