1. 기초

SELECT 칼럼 FROM 테이블 : 테이블에서 칼럼을 선택하겠다는 뜻. 칼럼은 세로줄

WHERE : 어느 조건으로 할거니? 라는 뜻

DISTINCT : SELECT 앞에 쓰고, 중복없이 뽑아내겠다. 라는 뜻

AS : 별명부여, 칼럼 명칭을 별명으로 지어주면서 가독성있게 뽑아내겠다.

|| : 결합해서 뽑아내겠다. 

ex) SELECT price || '원' FROM table ; -> 테이블에서 price를 뽑아낼건데, 뒤에 '원' 텍스트를 붙이고싶다.

ORDER BY : 제일 마지막에 넣고, 마지막에 실행됨. ASC = 오름차순, DESC = 내림차순으로 정렬하겠다.

 

2. WHERE 연산자

=,<,<=,>,>= : 비교 연산자

!=,^=,<>,NOT 칼럼 명=,NOT 칼럼 명> : 부정 비교 연산자

AND,OR,NOT : 논리 연산자

LIKE '%', BETWEEN A AND B, IN (list) , IS NULL : SQL 연산자

LIKE 문에는 %, _ 와일드카드가 있음. % = 모든, _ = 한개

 

 

3. NULL에 관해

NVL(A,0) : A 칼럼이 NULL이면 0으로 바꾸겠다.

NVL2(A,1,0) : A칼럼이 NULL이면 0, NULL이 아니면 1

NULLIF(A,100) : A=100 경우 NULL, 이외에는 A 반환

 

4. GROUP BY

GROUP BY : 소규모 행을 그룹화 하겠다.

HAVING : Groupby의 조건문

ex)

SELECT NO, SUM(PRICE)
	FROM TABLE
GROUP BY NO
HAVING SUM(PRICE) >10000;

뜻 : TABLE에서 PRICE 합계가 10000 이상인 경우에만 조회가 된다.

 

ROLLUP, GROUPING SETS, CUBE 세가지 이해하기

 

ROLLUP : 계층적 합계

SELECT DEPTNO, SUM(SAL) AS TOTAL_SAL
FROM EMP
GROUP BY ROLLUP(DEPTNO, JOB);

맨 처음 명시된 칼럼 (DEPTNO)에 대한 소 그룹 합계를 구해줌

행의 수 = (DEPTNO * JOB) + JOB + 1

DEPTNO * JOB = 소그룹

+ JOB = DEPT에 해당하는 JOB 소그룹 합계

+1 = 전체 합계

 

CUBE : 모든 조합 집계

SELECT DEPTNO, JOB, SUM(SAL) AS TOTAL_SAL
FROM EMP
GROUP BY CUBE(DEPTNO, JOB);

 

저 위에값에, 두번째 칼럼(JOB)에 대한 합계도 더 있음

 

GROUPING SETS : 특정 항목 소계

SELECT DEPTNO, JOB, SUM(SAL) AS TOTAL_SAL
FROM EMP
GROUP BY GROUPING SETS((DEPTNO), (JOB));

 

DEPTNO에 대한 합계, JOB에 대한 합계만 나옴. 전체합계, 조합합계같은건 X

 

 

5. JOIN

JOIN? PK(기본키),FK(외래키) 기준으로 여러 테이블을 합치는 행위

 

EQUI JOIN, INNER JOIN : 거의 같음. 아래 차이점정도?

구분 EQUI JOIN INNER JOIN
조인 방식 =(동등 비교)만 사용 =, <, >, != 등 다양한 연산자 사용 가능
문법 스타일 WHERE 절을 사용 (구식 SQL 스타일) JOIN ON을 사용 (표준 SQL 스타일)
포함 관계 INNER JOIN의 일부 EQUI JOIN을 포함하는 더 일반적인 개념
가독성 비교적 낮음 더 읽기 쉽고 명확함
권장 여부 현대 SQL에서는 잘 안 씀 현대 SQL에서는 주로 사용

 

요약 : INNER JOIN 자주씀

 

NON EQUI JOIN : 2개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용 ‘=’ 연산자가 아닌 BETWEEN, >, <= 등 연산자 사용

 

NATURAL JOIN : WHERE절에서 JOIN 조건 추가 불가 / SELECT EMP.DEPT처럼 OWNER명 사용X

CROSS JOIN : WHERE절에서 JOIN 조건 추가 가능

 

 

6. SAVEPOINT, ROLLUP, COMMIT

 

SAVEPOINT : 말그대로 세이브포인트

ROLLBACK TO :어디 세이브포인트까지 롤백하겠다 

COMMIT : GIT처럼 커밋하겠다

* DDL(CREATE, ALTER, DROP, RENAME, TRUNCATE TABLE)은 자동으로 커밋됨.

** 롤백은 안적으면 가장 최근 커밋한곳까지 롤백함

7. 그 외 함수

SUBSTR : 엑셀의 =MID 함수랑 미슷한듯

TRIM : 양옆으로 특정 문자 자르기, LTRIM, RTRIM은 왼쪽오른쪽 특정

SIGN : 숫자가 양수면1, 음수면-1, 0이면 0

CEIL/CEILING : 올림 

FLOOR : 내림

ROUND : 반올림

거의 대부분 엑셀이랑 유사한 함수들

 

 

 

 

 

다음번 목표 : 기출 풀어보고, 틀려보며 유형 파악

+ Recent posts