본문 바로가기

프로그래밍/기타(프로그래밍)

SQL 자주 쓰는 거

반응형

SQL 명령어 분류(DDL, DML, DCL, TCL)

 

DDL(Data Definition Language)
-- CREATE : 생성(데이터베이스 객체)
-- ALTER : 변경(객체의 속성)
-- RENAME : 이름 변경(데이터베이스 객체)
-- DROP : 삭제(데이터베이스내 객체)
-- TRUNCATE : 삭제(테이블 내 테이블, 용량 복구됨)

​DML(Data Manipulation Language)
-- DELETE
-- UPDATE
-- SELECT
-- INSERT

- INSERT INTO 테이블이름 (컬럼이름1, 칼럼이름2, ..) VALUES(값1, 값2, ..);

- INSERT INTO 테이블이름 VALUES(값1, 값2, ..)
- INSERT INTO 테이블이름(칼럼1, 칼럼2, ..)  SELECT 문장


DCL(Data Control Language)
-- GRANT
-- REVOKE
-- COMMIT
-- ROLLBACK 
-- SET TRANSACTION
-- BEGIN
-- SAVE POINT
-- LOCK

 

TCL(Transaction Control Language)
-- COMMIT
-- ROLLBACK

 

=============================================

 

SQL 실행순서

Parsing -> Execution -> Fetch

 

SELECT 실행순서

FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

 

결과 중복 제거

SELECT DISTINCT

 

WHERE 절 연산자

=, <, <=, >, >=

!=, ^=, <>, NOT 컬럼명 = : 같지 않은것을 조회

NOT 컬럼명 > : 크지 않은 것을 조회

AND, OR, NOT

LIKE '%비교 문자열%'

BETWEEN A AND B

IN (list) : OR 를 의미하며 list 값 중에 하나만 일치해도 조회됨

IS NULL

NOT BETWEEN A AND B

NOT IN (list)

IS NOT NULL

 

NULL 관련 함수

NVL(MGR, 0) - MGR 컬럼이 NULL 이면 0으로 바꾼다

NVL2(MGR, 1, 0) - MGR 컬럼이 NULL이 아니면 1, NULL 이면 0 을 반환한다.

NULLIF(exp1, exp2) - exp1과 exp2가 같으면 NULL을, 같지 않으면 exp1을 반환한다

COALESCE(exp1, exp2, exp3, ...) - NULL 이 아닌 최초의 인자값을 반환한다.

 

집계함수

COUNT(), SUM(), AVG(), MAX(), MIN(),

STDDEV() - 표준편차

VARIAN() - 분산

 

MOD(숫자1, 숫자2) - 숫자1을 숫자2로 나눈 나머지, %를 사용해도 됨

CEIL/CEILING(숫자) - 숫자보다 크거가 같은 최소의 정수

FLOOR(숫자) - 숫자보다 작거나 같은 최소의 정수

ROUND(숫자, m) - 소수점 m 자리에서 반올림

TRUNC(숫자, m) - 소수점 m 자리에서 절삭

 

DECODE - IF문을 구현할 수 있음

DECODE(EMPNO, 1000, TRUE, FALSE) : EMPNO가 1000 이면 TRUE를 출력, 아니면 FALSE를 출력

 

CASE - IF~THEN~ELSE~END 구조를 구현할 수 있음

CASE 

   WHEN 조건1 THEN 결과1

   WHEN 조건2 THEN 결과2

   ELSE 결과

END

 

WITH 구문 - 서브쿼리를 사용해 임시 테이블이나 뷰처럼 사용할 수 있는 구문

WITH W_EMP AS (SELECT * FROM EMP WHERE DEPTNO=30)

SELECT * FROM W_EMP;

 

INNER JOIN    ON

SELECT * FROM EMP INNER JOIN DEPT 

ON EMP.DEPTNO = DEPT.DEPTNO;

 

INTERSECT 연산 - 교집합을 조회

 

LEFT OUTER JOIN - 같은 것을 조회하고 왼쪽 테이블에 있는 것 추가

RIGHT OUTER JOIN - 같은 것을 조회하고 오른쪽 테이블에 있는 것 추가

 

CROSS JOIN - 카테시안 곱 발생, 조건없이 하나의 테이블로

 

UNION - 합집합, 중복을 제거하고 정렬한다.

UNION ALL - 합집합, 중복을 제거하지 않고 정렬하지 않는다.

MINUS, EXCEPT - 차집합,

 

※ CUBE, WINDOW 함수, Partition 기능은 시험에는 잘 나오지만 나는 실제로 잘 사용 안한다. 

 

 

반응형