일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 소프트웨어
- 정처기
- 모듈화
- 모듈
- EAI
- 형상관리
- 정보처리기사 실기
- SSL/TLS
- 자바스크립트
- input
- 동기
- S-HTTP
- 리눅스
- 인스펙션
- Ajax
- 워크스루
- rest
- 라디오 버튼
- 인터페이스
- 정보처리기사
- 프로시저
- javascript
- 키보드 이벤트
- 비동기
- esb
- 서버
- 브레인스토밍
- 정처기 실기
- 델파이 기법
- 트리거
- Today
- Total
방구석 상상코딩
SQL 정리 본문
DML | DDL | DCL | TCL |
SELECT INSERT UPDATE DELETE MERGE |
CREATE ALTER DROP RENAME TRUNCATE |
GRANT REVOKE |
COMMIT ROLLBACK SAVEPOINT |
관계형 대수의 일반 집합 연산자 | SQL 문법 |
UNION 연산 | UNION |
DIFFERENCE 연산 | EXCEPT / MINUS |
PRODUCT 연산 | CROSS JOIN |
INTERSECTION 연산 | INTERSECT |
FLOOR (14.5) => 14 | 입력된 인자 값보다 작거나 같은 정수 값 |
CEIL (14.5) => 15 | 입력된 인자 값보다 크거나 같은 정수 값 |
TRUNC (15.4, 0) => 15 | 인자1을 소주점N번째 자리(인자2)로 버림하여 반환 |
ROUND 15.4) => 15 | 인자1을 소수점 N번째 자리(인자2)로 반올림아혀 반환 |
NVL ( 칼럼, 0 )
NVL( 수당, 0 )
수당이 NULL이면 0 반환
SUBSTR ( 칼럼,부터, 개수 )
SUBSTR( C1, 2, 4 )
C1의 2번째 문자부터 4개의 문자 자르기
LENGTH ( )
LENGTH () : 문자열 길이
LTRIM ( 컬럼, '문자' )
LTRIM( C2, '0' )
왼쪽부터 '0' 문자 제거 '0'이 아닌 문자를 만나면 나머지 문자열 반환
TRUNC ( 인자 1, 인자 2 )
TRUNC( 인자1, 인자2 )
: 인자1을 소주점N번째 자리(인자2)로 버림하여 반환
TRUNC (15.4, 0) => 15
ANY ( 인자 1, 인자 2 )
> ANY( 1000, 3000 ) 100보다 크거나, 3000보다 크거나
COUNT( )
COUNT(*) : 갯수, NULL 포함
COUNT(컬럼) : 갯수, NULL 제외
집계함수
COUNT / SUM / AVG / MIN / MAX
: NULL 제외
DECODE ( 기준, 조건 1, 결과 1, 조건 2, 결과 2 )
DECODE ( 기준, 조건1, 결과1, 조건2, 결과2 ), 모든 조건에 맞지 않는 경우 NULL 반환
DECODE ( C2, 'A', 1, 'B' , 2 )
C2 컬럼이 'A'이면 1을 반환하고,
C2 컬럼이 'B'이면 2를 반환한다.
(모두 아닐 경우, NULL 반환)
GROUP BY
SELECT 칼럼 // group by에서 사용한 칼럼명, 집계함수, 표현식만 사용 가능
FROM 테이블
GROUP BY 칼럼;
ORDER BY (ASC)
COLUMN POSITION
SELECT A3, A2, A1
FROM A
ORDER BY 2 DESC, 3 ASC, 1 DESC;
= ORDERBY A2 DESC, A1 ASC, A3 DESC
조인조건 없는 경우, 카디션곱으로 처리
ON : 조인 조건
WHERE : 일반 조건
USING
- USING 절에 지정한 칼럼은 ALIAS 사용 불가
잘못 쓴 예시 | 맞는 예시 |
SELECT FROM AA A JOIN BB B USING(A1); |
SELECT A1, B.B2 FROM AA A JOIN BB B USING(A1); |
비교연산자(=, <. >, <=. >=. <>)는 단일행 반환
1행 이상이 반환되면 오류 발생
EXIST ( 서브 쿼리 ) - TRUE/FALSE
서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE, 없으면 FALSE를 리턴
LPAD ( 칼럼, 총 문자길이, '문자')
LPAD ( 칼럼, 총 문자길이, '문자' )
: 지정한 길이 만큼 왼쪽부터 특정문자로 채운다
LAPD ( SAL, 4, '0')
UNION / UNION ALL
UNION : 합집합 (중복행 1개로) ( 중복X )
UNION ALL : 합집합 (중복 행 표시) ( 중복O )
합집합 / 교집합 / 차집합 / 곱집합
(합집합) UNION | UNION / UNION ALL |
(교집합) INTERSECTION | INTERSECT |
(차집합) DIFFERENCE | EXCEPT / MINUS |
(곱집합) PRODUCT | CROSS JOIN |
NOT EXISTS | MINUS |
EXISTS | INTERSECT |
RANK / DENSE_RANK / ROW_NUMBER
RANK | 동일한 값에 대해서는 동일한 순위 1, 2, 2, 4 |
DENSE_RANK | 동일한 순위를 하나의 등수로 간주 1, 2, 2, 3 |
ROW_NUMBER | 동일한 값이라도 고유한 순위 부여 1. 2. 3. 4 |
SUM ( 칼럼 ) OVER ( )
SUM ( 칼럼 ) OVER ( ORDER BY ~ )
: 누적 합계
COUNT ( * ) OVER ( ORDER BY ~ )
COUNT ( * ) OVER ( ORDER BY ~ )
: 정렬 순서에 따라 각 행까지의 누적 건수
SELECT문 처리 순서
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
TOP 절
TOP ( expression ) [PERCENT] WITH TIES
: 마지막 행에 대한 동순위
(= RANK 함수)
( expression ) : 반환할 행의 개수나 백분율 지정
[PERCENT] : 백분율만큼 행을 반환
WITH TIES : 마지막 행에 대한 동순위를 포함해서 반환
OFFSET [ ROWS ]
OFFSET [ ROWS ]
: 건너뒬 행의 개수를 지정
OFFSET 3 ROWS;
START WITH 절 CONNECT BY 절
START WITH 절
: 조건을 만족하는 데이터를 시작으로
CONNECT BY 절
: 조건을 만족하는 데이터를 찾은 후 최종적으로 WHERE 조건으로 필터링
START WITH ENAME='SAM'
CONNECT BY PRIOR NO=NUMBER
PIVOT 절
PIVOT
: 행을 열로 전환
PIVOT ( SAL FOR NO IN (10, 30) );
REGXP_SUBSTAR ( )
REGXP_SUBSTAR('ABC', 'A.+') : 최대
=> ABC
REGXP_SUBSTAR('ABC', 'A.+?') : 최소
=> AB
REGXP_SUBSTAR('ABC', 'AB|CD')
=> AB 또는 CD
REGXP_SUBSTAR('ABC', 'A(B|C)D')
=> ABD 또는 ACD
LAG( 칼럼, 번째, 기본 )
LAG( 칼럼, 번째, 기본 )
: 파티션별 윈도우에서 이전 몇 번째 행의 값
LAG ( SAL, 2, 0 )