연산자의 종류
- 산술연산자
- 사칙연산자
- 관계연산자(조건식구성)
- 부등호
- WHERE절에서 CASE WHEN THEN
- 논리연산자
- AND, OR, NOT
- 연산순사 NOT→AND→OR
- 기타연산자
- IN, ANY/SOME, ALL, BETWEEN, LIKE(문자열만!)
| 입력값 | 출력값 | |||
|---|---|---|---|---|
| X | Y | AND | OR | |
| 0 | 0 | 0 | 0 | |
| 0 | 1 | 0 | 1 | AND일때는 둘 다 1이어야 1 EX)직렬 |
| 1 | 0 | 0 | 1 | OR일때는 둘 중 하나만 1이어도 1 EX)병렬 |
| 1 | 1 | 1 | 1 |
SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원이름,
MEM_BIR AS 출생년월일,
CASE WHEN (MOD(EXTRACT(YEAR FROM MEM_BIR),4)=0) AND (MOD(EXTRACT(YEAR FROM MEM_BIR),100)!=0) OR
(MOD(EXTRACT(YEAR FROM MEM_BIR),400)=0)THEN
'윤년'
ELSE
'평년'
END AS 비고
FROM MEMBER;
총 24명
1)컬럼을 추가 & 결합
ALTER TABLE HR.employees
ADD EMP_NAME VARCHAR2(80);
UPDATE HR.employees
SET EMP_NAME=FIRST_NAME||' '||LAST_NAME;
COMMIT;
SELECT * FROM HR.employees;
(사용예)사원테이블에서 10부서에서 50번부서에 속한 사원정보를 조회하시오.
Alias는 사원번호,사원명,부서번호,입사일,직책코드이며 부서번호순으로 출력하시오.
1)부서코드 10~50
SELECT EMPLOYEE_ID AS 사원번호,
EMP_NAME AS 사원명,
DEPARTMENT_ID AS 부서번호,
HIRE_DATE AS 입사일,
JOB_ID AS 직책코드
FROM HR.employees
WHERE DEPARTMENT_ID>=10 AND DEPARTMENT_ID<=50
-- DEPARTMENT_ID BETWEEN 10 AND 50 --이렇게 코드 써도됨
ORDER BY 3; --부서번호순
💡 GROUP BY 뒤에 기술된 컬럼 기준으로 집계를 내는데 사용.
SELECT절의 집계함수와 컬럼이 반드시 같이 사용
집계함수 : SUM() MAX() MIN() AVG() COUNT()
SELECT A.CART_PROD AS 제품코드,
B.PROD_NAME AS 제품명,
SUM(A.CART_QTY) AS 판매수량합계,
SUM(A.CART_QTY*B.PROD_PRICE) AS 판매금액합계 --수량*단가
FROM CART A,PROD B --CART 테이블 별칭 A. 테이블은 AS필요없음 (설명노션)
WHERE A.CART_PROD=B.PROD_ID --JOIN조건
AND /*1번*/ SUBSTR(A.CART_NO,1,8)>='20200601' AND
SUBSTR(A.CART_NO,1,8)>='20200630'
/*--2번 SUBSTR*SUBSTR(A.CART_NO,1,6)='203006'
/*3번 A.CART_NO LIKE'202006%' */ -- GROUP BY 뒤에 기술된 컬럼 기준으로 집계를 내는데 사용
GROUP BY A.CART_PROD,B.PROD_NAME
ORDER BY 4 DESC; --4번째줄을 많->작 출력
