연산자
산술연산자 | +, -, /, * |
비교(관계)연산자 | >, <, =, >=, <=, !=(<>) |
논리연산자 | NOT, AND, OR |
기타연산자 | IN, ANY, SOME, ALL, EXISTS, BETWEEN, LIKE |
- WHERE절에 사용 될 조건문 구성이나 표현식의 조건문에 사용
- FROM -> WHERE -> SELECT 절 순서로 수행
사용 예시
회원테이블에서 마일리지가 3000이상인 회원의 정보를 조회하시오.
Alias는 회원번호, 회원명, 직업, 성별, 마일리지
단, 성별별로 출력
SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원명,
MEM_JOB AS 직업,
CASE WHEN SUBSTR (MEM_REGNO2, 1 , 1 ) IN ( '2' , '4' ) THEN '여성회원'
ELSE '남성회원' END AS 성별,
MEM_MILEAGE AS 마일리지
FROM MEMBER
WHERE MEM_MILEAGE>=3000
ORDER BY 4
--CASE WHEN SUBSTR (MEM_REGNO2, 1 , 1 ) IN ( '2' , '4' ) THEN '여성회원'
-- ELSE '남성회원' END;
상품테이블에서 매출가격이 50만원 이상인 상품을 조회하시오.
Alias는 상품번호, 상품명, 분류코드, 매출가격
단, 분류코드별로 조회하시오.
SELECT PROD_ID AS 상품번호,
PROD_NAME AS 상품명,
PROD_LGU AS 분류코드,
PROD_PRICE AS 매출가격
FROM PROD
WHERE PROD_PRICE>=500000
ORDER BY 3;
1. 산술연산자
- +, -, /, *
- 연산결과는 수치데이터
사용 예시
이번달 급여를 계산하여 출력하시오.
지급액은 기본급(SALARY)+보너스이다.
보너스는 기본급(SALARY)*영업실적(COMMISSION_PCT) 의 50% 이다.
Alias는 사원번호(EMPLOYEE_ID), 사원명(EMP_NAME), 기본급(SALARY),
보너스(BONUS), 지급액(SLAARY_AMT) 이다.
SELECT EMPLOYEE_ID AS 사원번호,
EMP_NAME AS 사원명,
SALARY AS 기본급,
SALARY*COMMISSION_PCT*0.5 AS 보너스,
SALARY+(SALARY*COMMISSION_PCT*0.5) AS 지급액
-- 변수가 없어 그대로 대입 / PL/SQL에선 사용가능
-- 사용자가 데이터를 입력하지 않으면 데이터타입에 상관없이 NULL값이 들어감
-- NULL과 산술이 되면 NULL값이 나옴 (COMMISSION_PCT 값 일부분 NULL)
FROM HR.EMPLOYEES;
NULL값이 안나오게하기 위해선 NVL 함수를 통해 해결함
NVL (SALARY*COMMISSION_PCT*0.5, 0)
더보기
SELECT EMPLOYEE_ID AS 사원번호,
EMP_NAME AS 사원명,
SALARY AS 기본급,
NVL(COMMISSION_PCT,0) AS 영업실적,
NVL(SALARY*COMMISSION_PCT*0.5,0) AS 보너스,
SALARY+NVL(SALARY*COMMISSION_PCT*0.5,0) AS 지급액
-- 변수가 없어 그대로 대입 / PL/SQL에선 사용가능
-- 사용자가 데이터를 입력하지 않으면 데이터타입에 상관없이 NULL값이 들어감
-- NULL과 산술이 되면 NULL값이 나옴
FROM HR.EMPLOYEES;
2. 관계연산자 (비교연산자)와 논리연산자
- 관계연산자 : >, <, >=, <=, =, !=(<>)
- 논리연산자 : NOT, AND, OR
- 연산결과는 참(true) 또는 거짓(false)
- 관계연산자는 조건문 구성에 사용
- 논리연산자는 하나 이상의 조건문을 결합할 때 사용
입력 | 출력 | |||
A | B | AND | OR | EX-OR |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
사용 예시
매입정보(BUYPROD) 테이블에서 2020년 1월 매입수량이 10개 이상인 정보만 출력하시오
Alias는 매입일자, 매입상품코드, 수량
SELECT BUY_DATE AS 매입일자,
BUY_PROD AS 매입상품코드,
BUY_QTY AS 수량
FROM BUYPROD
WHERE BUY_DATE >= TO_DATE('20200101')
AND BUY_DATE<=TO_DATE('20200131')
AND BUY_QTY>=10;
매입정보(BUYPROD) 테이블에서 2020년 1월 매입금액을 계산하시오
Alias는 매입일자, 매입상품코드, 수량, 단가, 금액
SELECT BUY_DATE AS 매입일자,
BUY_PROD AS 매입상품코드,
BUY_QTY AS 수량,
BUY_COST AS 단가,
BUY_QTY*BUY_COST AS 금액
FROM BUYPROD
WHERE BUY_DATE >= TO_DATE('20200101')
AND BUY_DATE<=TO_DATE('20200131')
매입정보(BUYPROD) 테이블에서 2020년 1월 매입금액이 100만원 이상인 매입만 조회하시오
Alias는 매입일자, 매입상품코드, 수량, 단가, 금액
SELECT BUY_DATE AS 매입일자,
BUY_PROD AS 매입상품코드,
BUY_QTY AS 수량,
BUY_COST AS 단가,
BUY_QTY*BUY_COST AS 금액
FROM BUYPROD
WHERE BUY_DATE >= TO_DATE('20200101') AND BUY_DATE<=TO_DATE('20200131')
--BUY_DATE BETWEEN TO_DATE('20200101') AND TO_DATE('20200131)
AND BUY_QTY*BUY_COST>=1000000;
'DB Oracle' 카테고리의 다른 글
[Oracle] '||' , 표현식CASE (0) | 2024.03.13 |
---|---|
[Oracle] 연산자 - 기타연산자 (0) | 2024.03.12 |
[Oracle] 날짜/기타자료형, SELECT (4) | 2024.03.08 |
[Oracle] 데이터 타입 (1) | 2024.03.07 |
[Oracle] DDL - CREATE, ALTER (1) | 2024.03.06 |