일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링입문
- 인프런
- 불친절한 SQL 프로그래밍
- 서블릿
- inflearn
- 항해플러스
- Numpy
- 자바의정석 연습문제
- 시큐어코딩
- Secure Coding
- 자바의정석
- docker
- 스프링MVC
- 자바연습문제
- Spring
- 이것이자바다
- JPA
- 김영한
- 불친절한SQL프로그래밍
- REGEXP_SUBSTR
- 스프링 핵심원리
- Java의정석
- 분석함수
- 스프링
- 자바공부
- java
- 항해플러스 백엔드
- Python
- 스프링 부트와 JPA
- 제네릭
- Today
- Total
목록불친절한 SQL 프로그래밍 (14)
Continuous Challenge
756P REGEXP_LIKE 조건 REGEXP_LIKE 조건은 source_char가 pattern과 일치하면 TRUE, 일치하지 않으면 FALSE를 반환한다. REGEXP_LIKE(source_char, pattern [, match_param]) 매개변수 설명 source_char 검색 문자열 pattern 검색 패턴 match_param 일치 옵션 아래의 일치 옵션을 사용할 수 있다. 기본값은 c다. icnmx 형식으로 다수의 옵션을 합께 지정할 수도 있다. 옵션 설명 i 대소문자 무시 c 대소문자 구분 n dot(.)를 개행 문자와 일치 m 다중 행 모드 (앵커(^,$)에 영향) x 검색 패턴의 공백 문자를 무시 REGEXP_REPLACE 함수 REGEXP_REPLACE 함수는 source_ch..
16.2 재귀 서브 쿼리 팩토링 11.2 버전부터 재귀 서프 쿼리 팩토링 기능을 사용할 수 있다. 재귀 서브 쿼리 팩토링은 ANSI 표준 SQL 문법이다. 계층 쿼리 절보다 복잡하지만 다양한 기능을 사용할 수 있다. 16.2.1 기본 문법 재귀 서브 쿼리 팩토링은 WITH절을 사용한다. 재귀 서브 쿼리 팩토링의 WITH 절은 서브 쿼리, SEARCH절, CYCLE절로 구성된다. WITH query_name ([c_alias [, c_alias]) AS (subquery) [search_clause][cycle_clause] 서브 쿼리는 UNION ALL 연산자로 구성된다. UNION ALL 연산자의 상단 쿼리가 START WITH 절, 하단 쿼리가 CONNECT BY 절의 역할을 수행한다. WITH 절에..
16.1 계층 쿼리 절 계층 쿼리 절은 오라클 데이터베이스의 전통적인 계층 쿼리 구문이다. 16.1.1 기본 문법 계층 쿼리 절은 WHERE 절 다음에 기술하며, FROM절이 수행된 후 수행된다. START WITH절과 CONNECT BY 절로 구성되며, START WITH 절이 수행된 후 CONNECT BY 절이 수행된다. START WITH절은 생략이 가능하다. [START WITH condition] CONNECT BY [NOCYCLE] condition 절 설명 START WITH 절 루트 노드를 생성하며 1번만 수행 CONNECT BY 절 루트 노드의 하위 노드를 생성하며 조회 결과가 없을 때까지 반복 수행 유형 항목 설명 연산자 PRIOR 직전 상위 노드의 값을 반환 CONNECT_BY_ROO..
15.1.1 ROWNUM 문법 ORDER BY 절로 행을 정렬하고, 정렬된 행을 ROWNUM 슈도 칼럼으로 제한한다. ROWNUM 슈도 칼럼은 행이 반환되는 순서대로 순번을 반환한다. 1부터 시작하고 행이 반환될 때마다 순번이 증가한다. Top-N 쿼리는 시스템 성능에 미치는 영향이 크기 때문에 작성 표준을 신중하게 결정해야 한다. 현재까지는 ROWNUM 방식을 가장 많이 사용하고 있다. SELECT empno, sal, ROWNUM AS rn WHERE ROWNUM = 2; 위의 쿼리는 결과가 반환되지 않는다. ROWNUM 슈도 칼럼은 1부터 시작하고 행이 반환될 때마다 순번이 증가하기 때문에 ROWNUM = 2 조건은 항상 FALSE 다. sal을 오름차순으로 정렬하여 상위 5개의 행을 조회할 때, ..
379p 14.2.6 기타 함수 LAG 함수 LAG 함수는 현재 행에서 offset 이전 행의 value_expr을 반환한다. offset은 행 기준이며 기본값은 1이다. default에 이전 행이 없을 경우 반환할 값을 지정할 수 있다. default의 기본값은 널이다. LAG (value_expr [, offset [, default]]) [IGNORE NULLS] OVER ([query_partition_clause] order_by_clause) LEAD 함수 LEAD 함수는 현재 행에서 offset 이후 행의 value_expr을 반환한다. LEAD (value_expr [, offset [, default]]) [IGNORE NULLS] OVER ([query_partition_clause] ..
12.5.1 SUBQUERY FACTORING 절 SUBQUERY FACTORING 절을 사용하면 서브 쿼리에 이름을 부여하고, 이름이 부여된 서브쿼리를 메인 쿼리에서 반복 사용할 수 있다. WITH query_name AS (subquery) [, query_name AS (subquery)]... SELECT * FROM query_name;
p.204 10.2.1 ROLLUP ROLLUP은 지정한 표현식의 계층별 소계와 총계를 집계한다. ROLLUP(expression_list [, expression_list] ...) ROLLUP은 아래와 같이 동작한다. expr을 뒤쪽부터 하나씩 제거하는 방식이다. 결과에서 (a, b, c)는 a, b, c의 소계, ()는 총계를 의미한다. GROUP BY 결과 ROLLUP (a) (a), ( ) ROLLUP (a, b) (a, b), (a), ( ) ROLLUP (a, b, c) (a, b, c), (a, b), (a), ( ) 10.2.2 CUBE CUBE는 지정한 표현식의 모든 조합을 집계한다. CUBE (expression_list [, expression_list] ...) CUBE는 아래와 ..
p.156 LNNVL 함수 LNNVL 함수는 condition이 FALSE나 UNKNOWN이면 TRUE, TRUE면 FALSE를 반환한다. WHERE절과 CASE 표현식에 사용할 수 있다. LNNVL(condition) SELECT ename, comm FROM emp WHERE (comm IS NULL OR comm = 0); 두 쿼리는 논리적으로 동일하다.
IN조건은 expr의 목록과 일치하거나 일치하지 않는 행을 반환한다. expr [NOT] IN (expr [,expr]) IN조건은 널이 입력되어도 결과가 반환된다. 위 쿼리는 SELECT ename, mgr FROM emp WHERE mgr = 7839 OR mgr = NULL; 의 쿼리로 해석된다. mgr = NULL 조건은 UNKNOWN으로 평가되고, OR 조건은 조건이 하나라도 TRUE이면 TRUE이므로 mgr = NULL 조건이 무시된다. NOT IN 조건의 expr에 널이 입력되면 결과가 반환되지 않는다. IN 조건을 아래와 같은 방식으로 사용할 수도 있다. 위 쿼리는 SELECT ename, empno, mgr FROM emp WHERE (empno = 7839 OR mgr = 7839); ..
비교 함수(general comparison function)는 값 집합의 최소값이나 최대값을 결정하는 함수다. LEAST 함수 LEAST 함수는 expr 중 최소값을 반환한다. expr에 널이 입력되면 널을 반환한다. LEAST(expr [, expr] ...) GREATEST 함수 GREATEST 함수는 expr 중 최대값을 반환한다. expr에 널이 입력되면 널을 반환한다. GREATEST(expr [, expr] ...) LEAST 함수와 GREATEST 함수는 expr의 데이터 타입이 동일해야 한다. 데이터타입이 다른 expr은 첫 번째 expr의 데이터 타입으로 변환된다.