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 : 반올림
거의 대부분 엑셀이랑 유사한 함수들
다음번 목표 : 기출 풀어보고, 틀려보며 유형 파악
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] SQLD 취득 후기 (2) | 2025.04.04 |
---|---|
[SQLD] 공부내용 - 기출 1,2,3회 오답노트 #003 (0) | 2025.03.04 |
[SQLD] 공부 내용 - 데이터 모델링의 이해 #001 (0) | 2025.02.06 |