[Oracle SQL] 사칙연산자, 관계연산자, 논리연산자

고동이의 IT·2021년 10월 7일
0

Oracle SQL

목록 보기
7/31
post-thumbnail

연산자

사칙연산자(+,-,/,*) ​:

나머지연산자가 오라클에서는 와일드 카드로 쓰여짐. 나머지는 MOD, REMINDER과 같은 함수로 수행

관계연산자(>,<,>=,<=,=,!=(<>)) :

SELECT절에서 별칭은 WHERE절에서 못씀

-- 크다의 반대는 작거나 같다. 작다의 반대는 크거나 같다.

-- 자바는 문자우선 오라클은 숫자우선.

논리연산자(not,and,or)

기타연산자(IN,ANY,SOME,ALL,EXISTS,LIKE,BETWEEN)

-- EXISTS는 뒤에 서브쿼리 반드시 나와야함

-- LIKE는 문자열타입 비교하는 연산자. 날짜 놉

-- BETWEEN 범위를 지정해서 비교할때. EX. BETWEEN 20210401 AND 20210430

문자열 결합 연산자

'||' -- 을 사용하면 문자열이 우선순위되어서 다 문자열타입으로 자동형변환됨

사칙연산자, 관계연산자, 논리연산자

  • WHERE 절의 조건문 구성에 사용


**
사용예) 회원테이블에서 마일리지가 3000이상인 회원들을 조회하시오

조회할 컬럼은 회원번호, 회원명, 주소, 나이, 마일리지다.**

SELECT MEM_ID AS 회원번호,

MEM_NAME AS 회원명,

MEM_ADD1||' '||MEM_ADD2 AS "주 소",

EXTRACT(YEAR FROM SYSDATE) -

EXTRACT(YEAR FROM MEM_BIR) AS 나이,

MEM_MILEAGE AS 마일리지

FROM MEMBER

WHERE MEM_MILEAGE>=3000;

-- FROM 키워드가 안보인다는 오류에는 SELECT문 확인. 
항상 한컬럼이 끝나면 반드시 그끝은 콤마.

사용예) 상품테이블에서 매입가가 10만원 이상인 상품을 조회하시오

Alias는 상품코드, 상품명, 매입가, 거래처명

SELECT A.PROD_ID AS 상품코드,

A.PROD_NAME AS 상품명,

A.PROD_COST AS 매입가,

B.BUYER_NAME AS 거래처명

-- A대신 PROD, B대신 BUYER써도 무방하나 길어짐.

​

FROM PROD A, BUYER B -- 테이블조인

WHERE A.PROD_COST >=100000

AND A.PROD_BUYER = B.BUYER_ID;

-- PROD_BUYER를 가지고 거래처 테이블을 찾아서 
그 거래처코드에 해당하는 거래처명을 알 수 있음.

사용예) 사원테이블에서 급여가 5000이상 10000이하인 사원을 조회하시오
Alias는 사원번호, 사원명, 입사일, 부서코드, 급여

SELECT EMPLOYEE_ID AS 사원번호,

FIRST_NAME||' '|| LAST_NAME AS 사원명,

HIRE_DATE AS 입사일,

DEPARTMENT_ID AS 부서코드, -- 사원이소속되어있는 부서코드여야 해서 
DEPARTMENT 테이블의 부서코드안씀.

-- 사원이소속되어있는 부서코드가 없을때 DEPARTMENT 
테이블의 부서코드 JOIN

-- JOBS테이블이 EMPLOYEES테이블의 부모

SALARY AS 급여

​

FROM HR.EMPLOYEES

WHERE SALARY >=5000 AND SALARY <=10000

ORDER BY 4, 5; 
--부서코드 오름차순 정렬. 부서코드 같으면 급여순 내림차 정렬=
DEPARTMENT_ID ASC, SALARY DESC

-- 또는 SALARY BETWEEN 5000 AND 10000;

사용예) 2005년 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 BETWEEN '2005/01/01' AND '2005/01/31'

-- WHERE BUY_DATE >= TO_DATE('20050101') 
AND WHERE BUY_DATE <= TO_DATE('20050131')

ORDER BY 1;

사용예) 2005년 1월 매입정보 중 매입수량이 20개 이상인 상품만 조회하시오
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('20050101') 
AND BUY_DATE <= TO_DATE('20050131')

AND BUY_QTY>=20

ORDER BY 1;

사용예) 회원테이블에서 직업이 주부이면서 마일리지가 3000이상인 회원조회
Alias는 회원번호, 회원명, 직업, 마일리지

SELECT MEM_ID AS 회원번호,

MEM_NAME AS 회원명,

MEM_JOB AS 직업,

MEM_MILEAGE AS 마일리지

FROM MEMBER

WHERE MEM_JOB = '주부' AND MEM_MILEAGE >= 3000;
profile
삐약..뺙뺙

0개의 댓글