SQL
-
태그는 다른 구문에서 재사용가능한 SQL구문을 정의할 때 사용하며 사용방법은 태그 id속성 추가 및 id속성 값을 부여 해준 후 태그 내에 사용할 쿼리를 작성하면 끝이다. 하지만 주의해야 할 태그 내에 있는 쿼리들을 재사용하고 싶다면 재사용할 쿼리()의 상단에 선언되어야 한다. 특정 태그의 쿼리에서 태그의 쿼리를 불러오는 명령을 하였지만, 상단에 선언되어있지 않고 하단에 선언되어 있다면 불러올수 없다. 태그 내에 파라미터 값을 추가해줘도 상관없습니다. 단 해당 태그를 불러오는 쿼리문에서 태그 내에 선언된 파라미터 값을 처리할 수 있는 인자 값이 존재해야만 에러가 나지 않습니다. 같은 파일 내에 정의해둔 태그 내의 쿼리들을 불러올 수 있게 해주며 사용법은 태그를 선언하고 해당 태그에 refid속성을 추가 ..
<sql>, <include>태그는 다른 구문에서 재사용가능한 SQL구문을 정의할 때 사용하며 사용방법은 태그 id속성 추가 및 id속성 값을 부여 해준 후 태그 내에 사용할 쿼리를 작성하면 끝이다. 하지만 주의해야 할 태그 내에 있는 쿼리들을 재사용하고 싶다면 재사용할 쿼리()의 상단에 선언되어야 한다. 특정 태그의 쿼리에서 태그의 쿼리를 불러오는 명령을 하였지만, 상단에 선언되어있지 않고 하단에 선언되어 있다면 불러올수 없다. 태그 내에 파라미터 값을 추가해줘도 상관없습니다. 단 해당 태그를 불러오는 쿼리문에서 태그 내에 선언된 파라미터 값을 처리할 수 있는 인자 값이 존재해야만 에러가 나지 않습니다. 같은 파일 내에 정의해둔 태그 내의 쿼리들을 불러올 수 있게 해주며 사용법은 태그를 선언하고 해당 태그에 refid속성을 추가 ..
2022.10.18 -
LPAD(); LPAD() 함수는 왼쪽부터 특정한 문자로 채우며 명시된 문자의 총 길이만큼 왼쪽에서붙터 반환합니다. LPAD(값, 총 문자길이(BYTE), 채울 문자) RPAD(); RPAD() 함수는 오른쪽부터 특정한 문자로 채우며 명시된 문자의 총 길이만큼 왼쪽에서부터 반환합니다. RPAD(값, 총 문자길이(BYTE), 채울 문자) 예제 -- NM = '홍길동' select NM , LPAD(NM, 8, '0') -- 00홍길동 , RPAD(NM, 8, '0') -- 홍길동00 FROM USER -- 한글은 한글자에 2BYTE로 계산한다.
LPAD() , RPAD()LPAD(); LPAD() 함수는 왼쪽부터 특정한 문자로 채우며 명시된 문자의 총 길이만큼 왼쪽에서붙터 반환합니다. LPAD(값, 총 문자길이(BYTE), 채울 문자) RPAD(); RPAD() 함수는 오른쪽부터 특정한 문자로 채우며 명시된 문자의 총 길이만큼 왼쪽에서부터 반환합니다. RPAD(값, 총 문자길이(BYTE), 채울 문자) 예제 -- NM = '홍길동' select NM , LPAD(NM, 8, '0') -- 00홍길동 , RPAD(NM, 8, '0') -- 홍길동00 FROM USER -- 한글은 한글자에 2BYTE로 계산한다.
2022.10.17 -
MONTHS_BETWEEN 두 날짜의 월 차이를 계산해서, 개월 수를 산출할 때는 MONTHS_BETWEEN 함수를 사용하며 함수의 첫 번째 인자의 날짜에서 두 번째 인자의 날짜를 빼는 방식으로 개월 수가 계산된다. MONTHS_BETWEEN의 예시 SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2021/11/01', 'YYYY/MM/DD')) AS MONTH FROM DUAL /* SYSDATE = 2022-01-19 TO_DATE = 2021-11-01 MONTHS_BETWEEN = (2022/01/19) - (2021/11/01) = 2.5개월 */ 1. 소수점 절사(TRUNC) SELECT TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE('2021-11-..
두 날짜 개월 수 계산 방법MONTHS_BETWEEN 두 날짜의 월 차이를 계산해서, 개월 수를 산출할 때는 MONTHS_BETWEEN 함수를 사용하며 함수의 첫 번째 인자의 날짜에서 두 번째 인자의 날짜를 빼는 방식으로 개월 수가 계산된다. MONTHS_BETWEEN의 예시 SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2021/11/01', 'YYYY/MM/DD')) AS MONTH FROM DUAL /* SYSDATE = 2022-01-19 TO_DATE = 2021-11-01 MONTHS_BETWEEN = (2022/01/19) - (2021/11/01) = 2.5개월 */ 1. 소수점 절사(TRUNC) SELECT TRUNC(MONTHS_BETWEEN(SYSDATE,TO_DATE('2021-11-..
2022.10.17 -
쌍 파이브(||) 문자열이나 컬럼을 합쳐주는 역할이다. SELECT NAME , RPAD(NAEM, 5, 'AA') || '명' FROM USE NAME RPAD(NAME, 5, 'AA') || '명' ABC ABCAA ABCAA명
쌍 파이브(||)쌍 파이브(||) 문자열이나 컬럼을 합쳐주는 역할이다. SELECT NAME , RPAD(NAEM, 5, 'AA') || '명' FROM USE NAME RPAD(NAME, 5, 'AA') || '명' ABC ABCAA ABCAA명
2022.10.17 -
SUM은 열의 합계를 구하는 함수 AVG는 평균을 구하는 함수 AVG 함수는 NULL값을 제외하고 연산하는데 NULLL값을 포함해서 평균을 내야할 경우에는 NVL함수를 사용하여 NULL값을 치환해야 정확한 값이 계산된다. ex) AVG(NVL(SALARY,0))
SUM, AVGSUM은 열의 합계를 구하는 함수 AVG는 평균을 구하는 함수 AVG 함수는 NULL값을 제외하고 연산하는데 NULLL값을 포함해서 평균을 내야할 경우에는 NVL함수를 사용하여 NULL값을 치환해야 정확한 값이 계산된다. ex) AVG(NVL(SALARY,0))
2022.10.17 -
JAVA Spring Framework에서는 iBatis를 사용하여 DB에 접근하기 위해 SqlMapClientDaoSupport라는 DAO클래스를 사용한다. 그리고 SqlMapClientDaoSupport클래스는 실질적인 데이터 조작 및 접근을 위해 다음의 2가지 형태의 메서드를 제공하는데 그것이 getSqlMapClientTemplate() getSqlMapClient() 이다. 이 둘은 DB의 실질적인 데이터에 접근하여 처리하는 것에는 변함이 없지만 동작 처리 방식에는 차이가 있다. 예를 들어 둘다 동일한 메서드를 가지고 있고 INSERT하는 동작을 처리하는 코드를 작성했다고 한다면 두 메서드는 동일하게 iBatis의 INSERT를 처리하나 트랜젝션에 차이가 있다. getSqlMapClientTem..
getSqlMapClient / getSqlMapClientTemplateJAVA Spring Framework에서는 iBatis를 사용하여 DB에 접근하기 위해 SqlMapClientDaoSupport라는 DAO클래스를 사용한다. 그리고 SqlMapClientDaoSupport클래스는 실질적인 데이터 조작 및 접근을 위해 다음의 2가지 형태의 메서드를 제공하는데 그것이 getSqlMapClientTemplate() getSqlMapClient() 이다. 이 둘은 DB의 실질적인 데이터에 접근하여 처리하는 것에는 변함이 없지만 동작 처리 방식에는 차이가 있다. 예를 들어 둘다 동일한 메서드를 가지고 있고 INSERT하는 동작을 처리하는 코드를 작성했다고 한다면 두 메서드는 동일하게 iBatis의 INSERT를 처리하나 트랜젝션에 차이가 있다. getSqlMapClientTem..
2022.10.17 -
트리거(Trigger) 프로시저, 함수와 같이 블록구조가 유사하지만 프로시저, 함수는 외부적이 실행명령으로 실행되는 반면에 트리거의 실행은 데이터베이스 이벤트에 반응하여 실행되는 프로그램 단위로 DML문이 발생할 때 자동적으로 호출된다. ※ DML트리거(trigger)란? 더보기 더보기 DML 트리거는 DML 문(INSERT, UPDATE, DELETE)이 테이블의 하나 이상의 데이터에 영향을 미칠 때에 자동으로 실행되는 트리거로 프로시저나 함수는 사용자가 직접 호출해야만 하지만, 트리거는 오라클에서 사용자에게 알려주지 않고 자동으로 호출하여 처리한다. 트리거의 용도 테이블의 데이터 작업에 대한 감시, 보안 용도 테이블의 변화에 따라 필요한 다른 프로그램을 실행시킬 수 있다. 테이블 생성시에 참조 무결성..
TRIGGER트리거(Trigger) 프로시저, 함수와 같이 블록구조가 유사하지만 프로시저, 함수는 외부적이 실행명령으로 실행되는 반면에 트리거의 실행은 데이터베이스 이벤트에 반응하여 실행되는 프로그램 단위로 DML문이 발생할 때 자동적으로 호출된다. ※ DML트리거(trigger)란? 더보기 더보기 DML 트리거는 DML 문(INSERT, UPDATE, DELETE)이 테이블의 하나 이상의 데이터에 영향을 미칠 때에 자동으로 실행되는 트리거로 프로시저나 함수는 사용자가 직접 호출해야만 하지만, 트리거는 오라클에서 사용자에게 알려주지 않고 자동으로 호출하여 처리한다. 트리거의 용도 테이블의 데이터 작업에 대한 감시, 보안 용도 테이블의 변화에 따라 필요한 다른 프로그램을 실행시킬 수 있다. 테이블 생성시에 참조 무결성..
2022.10.14 -
데이터 정의언어 - (DDL : Data Definition Language) 테이블이나 관계의 구조를 생성하는데 사용하며 CRAETE / ALTER / DROP / TRUNCATE 문 등이 있다. 더보기 CREATE - 새로운 데이터베이스 관계(테이블) View, 인덱스, 저장 프로시저 만들기 DROP - 이미 존재하는 데이터베이스 관계 ( 테이블 ) , 뷰 , 인덱스 , 저장 프로시저를 삭제한다. ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 , RENAME의 역할을 한다. TRUNCATE - 관계 ( 테이블 )에서 데이터를 제거한다. ( 한번 삭제시 돌이킬 수 없음.) 데이터 조작언어 - (DML : Data Manipulation Language) 테이블에 데이터 검색, 삽입, 수정,..
SQL 문법의 종류데이터 정의언어 - (DDL : Data Definition Language) 테이블이나 관계의 구조를 생성하는데 사용하며 CRAETE / ALTER / DROP / TRUNCATE 문 등이 있다. 더보기 CREATE - 새로운 데이터베이스 관계(테이블) View, 인덱스, 저장 프로시저 만들기 DROP - 이미 존재하는 데이터베이스 관계 ( 테이블 ) , 뷰 , 인덱스 , 저장 프로시저를 삭제한다. ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 , RENAME의 역할을 한다. TRUNCATE - 관계 ( 테이블 )에서 데이터를 제거한다. ( 한번 삭제시 돌이킬 수 없음.) 데이터 조작언어 - (DML : Data Manipulation Language) 테이블에 데이터 검색, 삽입, 수정,..
2022.10.14