일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- html
- mybatis
- TO_DATE
- was
- Ajax
- CSS
- jQuery
- web.xml
- input
- spring
- eGovFramework
- sql
- jsp
- 함수
- 개념
- json
- 태그
- eGov
- array
- controller
- javascript
- 정의
- 암호화
- JVM
- POI
- Oracle
- select
- Java
- 오류
- 과정평가형
- Today
- Total
목록SQL/Oracle SQL (24)
web developer
ORA-01810: 형식 코드가 두번 나타났습니다 SQL QUERY에서 날짜형식을 다루는 경우 위와 같이 에러 메세지를 종종 보게 됩니다. 해당 에러가 발생하는 원인은 다음과 같습니다. TO_DATE('2022-04-20', 'YYYY-MM-DD HH:MM:SS') MM과 mm을 month로 동일하게 인식하여 오류가 나타나게 됩니다. TO_DATE('2022-04-20', 'YYYY-MM-DD HH:MI:SS') '분(minute)'을 나타내는 MM을 MI로 변경하면 됩니다. 출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jwlee0208&logNo=10134959569 ORA-01810: 형식 코드가 두번 나타났습니다 ..
▶ 테이블 코멘트 부여 ALTER TABLE [테이블명] COMMENT = '테이블코멘트'; ▶ 컬럼에 코멘트 부여 컬럼에 코멘트를 생성하거나 수정할때에는 컬럼 전체를 변경하는 수밖에 없습니다. 테이블 생성시 컬럼 지정하는 명령어 부분을 MODIFY뒤에 고대로 넣어주고 뒤에 comment 키워드를 붙여 코멘트를 지정합니다. ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입] [제약조건] COMMENT '컬럼코멘트'; ▶ 테이블 코멘트, 컬럼 코멘트 삭제하기 ALTER TABLE [테이블명] COMMENT = ''; ALTER TABLE [테이블명] MODIFY [컬럼명] [데이터타입] [제약조건]; 그냥 COMMENT키워드 부분 없이 다시 컬럼을 재정의해주면 됩니다. 출처 : http..
TO_DATE (date/날짜 비교) : 문자형(String) → 날짜형(date) TO_DATE('2017-05-12 23:59:59', 'YYYY-MM-DD') TO_DATE('2017-05-12 23:59:59', 'YYYY-MM-DD HH24:MI:SS') SELECT DUMMY FROM DUAL WHERE SYSDATE > TO_DATE('20190731', 'YYYYMMDD'); * TO_DATE() 사용시 포멧('yyyymmdd')이 지정되지 않아서 오류 발생 TO_CHAR (string/날짜 비교) : 날짜형(date) → 문자형(String) TO_CHAR(SYSDATE, 'YYYY-MM-DD') TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') SELECT DU..
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..
오라클에서 CONCAT, ||를 사용해 문자열을 합칠 수 있다. (1-1) CONCAT SELECT CONCAT(str1, str2, ...); (1-2) 중첩 CONCAT SELECT CONCAT(CONCAT(firstName, ' '), secondName) FROM NAME; (2) || 2개 이상을 합칠 경우에는 ||를 사용해주면 된다. SELECT firstName||' '||secondName FROM NAME;
계층형 질의 - 계층의 시작점 : start with - 각 레벨간의 연결을 위한 : connect by - prior : 각 하위 레벨의 직전 상위 레벨 - 각 계층에 있어서 마지막 레벨인지를 알기 위해서 : connect_ by_isleaf (계층의 마지막 레벨이면 1, 그렇지 않으면 0) - 각 하위 레벨 기준에서 정렬이 요구될 떄에는 : order + siblings by (1) START WITH : KING 상위 계층이 어디에 있는지에 따라서 prior가 붙는 것이 달라짐을 볼 수 있습니다. 위의 그림을 보면 자식 -> 부모로 향하는 방향인 것을 알 수 있고, 부모가 상위레벨임으로 prior을 부모에 붙여줍니다. = PRIOR 부모 = 자식 = 부모의 이전의 값이 자식이다. = 역방향 (2) ..
집합(SET) 연산자 집합연산자는 조회(SELECT) 쿼리의 결과를 대상으로 연산을 수행하는 연산자이다. UNION, UNION ALL, INTERSECT, MINUS등이 있다. 1. 두개의 SELECT 문의 컬럼 개수와 데이터 타입은 일치해야 한다. (데이터 타입은 일치하거나 변환이 가능해야 함) 2. 검색 결과의 헤더는 앞쪽 SELECT문에 의해 결정된다. 3. select문들은 같은 개수의 컬럼을 조회해야만 합니다. 4. 최종 출력 결과는 첫 번쨰 select문의 컬럼명으로 나타나기 떄문에 각 컬럼 차원에서 별칭이 필요하다면, 첫 번쨰 문장에 대해서만 별칭을 사용해도 상관이 없습니다. 5. ORDER BY 절을 사용할 때는 문장의 제일 마지막에 사용한다.