일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 태그
- 함수
- Java
- Database
- web.xml
- jQuery
- eGov
- json
- controller
- input
- array
- html
- was
- Ajax
- select
- 오류
- Oracle
- POI
- JVM
- CSS
- 개념
- 배열
- eGovFramework
- javascript
- spring
- 암호화
- TO_DATE
- 과정평가형
- sql
- mybatis
- Today
- Total
목록sql (13)
web developer
1. Oracle DBMS (데이터베이스 관리 시스템)의 구조Oracle DBMS (데이터베이스 관리 시스템)의 구조는 여러 주요 구성 요소로 이루어져 있으며, 데이터의 저장, 관리, 처리, 보안 등을 담당합니다. 다음은 Oracle DBMS의 기본적인 구조에 대한 요약입니다. 1. 인스턴스 (Instance)Oracle DBMS의 인스턴스는 데이터베이스와 상호작용하는 메모리 구조와 백그라운드 프로세스를 포함합니다.메모리 구조:SGA (System Global Area): SGA는 데이터베이스 서버의 공유 메모리 영역으로, 데이터베이스 버퍼 캐시, 공유 풀, 리두 로그 버퍼 등 중요한 정보를 포함합니다. 데이터베이스 버퍼 캐시는 데이터베이스 블록을 메모리에 저장하여 디스크 I/O를 최소화하며, 공유 풀은..
오라클 쿼리에서 여러 행의 데이터를 ','로 이어주는 방법은 LISTAGG 함수를 사용하는 것입니다. LISTAGG 함수는 여러 행의 값을 하나의 문자열로 결합해줍니다. 다음은 예시입니다.SELECT LISTAGG(column_name, ', ') WITHIN GROUP (ORDER BY column_name) AS concatenated_stringFROM table_name;이 쿼리는 table_name 테이블에서 column_name 열의 값을 쉼표와 공백으로 구분하여 하나의 문자열로 결합합니다. 예를 들어, column_name에 'A', 'B', 'C'라는 값이 있으면 결과는 'A, B, C'가 됩니다.concatenated_string----------------A, B, C
해당 테이블의 각 컬럼의 count 값 가져오는 쿼리는 다음과 같습니다.(1) 서브쿼리를 사용한 카운트 합산 SELECT (SELECT COUNT(*) FROM validity WHERE mon01_usgqty LIKE '1@%') + (SELECT COUNT(*) FROM validity WHERE mon02_usgqty LIKE '1@%') AS total_countFROM dual;이 쿼리는 다음과 같이 작동합니다:validity 테이블에서 mon01_usgqty 컬럼이 '1@%'로 시작하는 값을 카운트합니다.validity 테이블에서 mon02_usgqty 컬럼이 '1@%'로 시작하는 값을 카운트합니다.두 개의 서브쿼리 결과를 더하여 total_count라는 별칭으로 반환합니다.(2) ..
LAG, LEAD 함수 LAG와 LEAD는 모두 Window 함수로 각각 현재 행 이전 행과 이후 행의 데이터에 접근 할 수 있습니다. 기본 문법은 다음과 같습니다. LAG(표현식, offset, default) OVER ( [PARTITION BY] ORDER BY ) LEAD(표현식, offset, default) OVER ( [PARTITION BY] ORDER BY ) LAG 함수 : 이전 행 값 return LEAD 함수 : 다음 행의 값 return offset : 값을 가져올 행의 위치, default 1 default : 값이 없을 경우 지정 할 기본 값 * offset은 몇 번째 이전(또는 이후) 행에 대해 접근할 지를 정수로 나타냅니다. * 생략가능 : offset, default, p..
SQL SQL (Structured Query Language) - SQL은 Structured Query Language (구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 데이터를 관리 및 처리하기 위해 설계된 프로그래밍 언어입니다. - SQL은 1970년대에 IBM에서 최초 개발되었으며 관계형 모델이라는 이론에서 파생된 특징을 가지고 있는데, 현재 SQL의 표준으로 ANSI SQL이 정립되었습니다. - 각 DBMS 프로그램에서 ANSI SQL을 기반으로 개발된 개별 SQL을 사용하며 서로 근소한 차이를 보입니다. SQL 문법 [1] DDL - Data Definition Language, 데이터 정의 언어 - 각 릴레이션을 정의하기 위해 사용하는 언어 - conceptual..
WITH절이란 WITH절은 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브쿼리라고 생각하시면 됩니다. * 차이점 VIEW는 한번 만들어놓으면 DROP할때까지 없어지지 않지만 WITH절의 같은경우 한번 실행할 쿼리문내에 정의되어 있을경우, 그 쿼리문안에서만 실행된다는 차이점이 있습니다. WITH절을 사용하는 이유 WITH절은 복잡한 SQL에서 동일 블록에 대해 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함으로서 쿼리 성능을 높일 수 있는데 WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만들 수 있습니다. 자주 실행되는 경우 한번만 Parsing되고 Plan 계획이 수립되므로 쿼리의 성능향상에 도움이 됩니다. WITH temp AS ( S..
1. JOIN JOIN이란, 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 의미한다. 2. INNER JOIN 일반적으로 JOIN이라 하면, INNER JOIN을 지칭하는 것이다. * INNER JOIN은 조인될 조건이 부합하는 행에 대해서만 JOIN이 발생하는 것이다. * 둘 테이블에 공통으로 해당되는 컬럼에 대해서는 테이블명.칼럼명 형태로 작성해야 한다. SELECT 열 목록 FROM 첫 번째 테이블 INNER JOIN 두 번째 테이블 ON 조인될 조건 WHERE 검색조건 3. OUTER JOIN INNER JOIN은 JOIN 조건에 부합하는 행만 JOIN이 발생하는 반면에, OUTER JOIN은 조건에 부합하지 않는 행까지도 포함시켜 결합한 결과 즉, 조건에 맞지 않아도..
(1) RANK 함수RANK 함수는 중복 값들에 대해서 동일한 순위로 표시하고, 중복 순위 다음 값에 대해서는 중복 개수만큼 건너뛰고, 중복순위 + 중복값 개수의 순위로 출력하는 함수입니다.SELECT EMPNO, EMPNAME, SALARY,RANK() OVER (ORDER BY SALARY DESC) AS RANKFROM EMPLOYEE;EMPNO EMPNAME SALARY RANK ----------- ------------ ---------- -------- 494 손흥민 1000 1 495 박지성 900 2 493 차범근 800 ..
DECODE 함수 특정한 조건을 만족하면 X, 조건을 만족하지 않으면 Y 출력 * DECODE 함수는 프로그래밍에서의 if ~ then, if else 와 비슷한 기능을 수행한다. * DECODE 함수와 CASE 함수의 간략한 차이점 : DECODE : A=B이면 X, A≠B이면 Y를 출력 (A와 B가 같은지에 대한 조건) CASE : DECODE와 달리, A와 B 사이에 부등호 관계(크거나 작은 조건)를 처리할 때 주로 사용 간단한 사용방법은 아래와 같다. 예) DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3, ..., ...) (1) DECODE(A, B, X, Y) select decode(컬럼이름A, 비교대상값B, 출력값X, 출력값Y), ... from 테이블이름; A = ..
INSTR 함수 INSTR 함수는 입력된 문자열이 일치하면, 그 첫번쨰 인덱스 값을 반환해주고, 일치하는 문자가 없으면 0을 반환해주는 함수입니다. INSTR 함수 사용방법 INSTR('문자열', '찾고싶은 문자열', 시작위치, 순서) 컬럼명 * 시작위치와 발견 인덱스는 생략이 가능합니다. (default 1) * 찾고자 하는 문자가 여러개인 경우에 4번쨰 인자인 순서를 통해 결정 → 첫 번째 값(순서=1), 두 번째 값(순서=2) INSTR 함수 예시 INSTR('ABCDEFG','A') "A" → 1 (1번쨰 인덱스 값) INSTR('ABCDEFG','A', 1) "A" → 3번째 인자는 시작위치인데, 값이 1인 경우에는 생략해도 값을 동일 INSTR('ABCDEFG','E') "E" → 5 (5번쨰..
SUBSTR 함수 SUBSTR 함수는 문자를 잘라 추출하는 함수이다. SUBSTR([문장], 시작위치[NUMBER], 자르고 싶은 길이[NUMBER]) (1) substr('ABCDEFG', 1, 4) → ABCD (인덱스 1부터 4개의 길이 추출) (2) substr('ABCDEFG', 2, 3) → BCD (인덱스 2부터 3개의 길이 추출) 첫번쨰 숫자 인자를 생략한 경우에는 왼쪽을 기준으로 숫자 이후의 부분이 전부 추출된다. (3-1) substr('ABCDEFG', 3) → CDEFG (왼쪽을 기준으로 3번째부터 전부 추출) (3-2) substr('ABCDEFG', -3) → EFG (-3으로 변경하면 오른쪽을 기준으로 추출) (3-3) substr('ABCDEFG', -3, 2) → EF (-..
CASE 표현식의 기본 구성은 다음과 같다. Case when 조건식1 then 결과1 when 조건식2 then 결과2 else 결과 * 조건식 사이에 콤마금지 * case 문은 end로 끝남 * ansi sql 형식 지원 * 결과에 null 사용금지 /* 조건식이 1개일때*/ case when a.animal_name= '사자' then '사자임' /*a.animal_name 사자임으로 변경*/ else '아님' /* 조건이 만족하지 않을시 '아님'으로 변경*/ end /* 위와 동일*/ case a.animal_name when '사자' then '사자임' else '아님' end /* 조건식 2개 이상일때*/ case when a.animal_name='사자' then '사자임' when a.an..