본문 바로가기

DB Query

(16)
SUBSTR (중간 값을 추출) # SUBSTR - 컬럼 열의 값에서 중간에 있는 문자를 추출해야할때 사용 SUSBSTR(char1,n,m) char1 : 함수를 수행하고자 하는 문자 값 또는 테이블의 열을 설정 n : 추출하고자 하는 문자열의 처음 위치 m : 추출하고자 하는 문자열의 길이 SELECT SUBSTR(CODE,2,3) "SUBSTRING" FROM 업무; - 특이사항 : SUBSTR이 사용된 열은 인덱스 사용이 불가능하다. - 예시는 아래와 같다. SELECT 거래일자, 카드별, 거래금액 FROM 거래내역 WHERE SUBSTR(거래일자,5,2) = '05'; - 끝 -
서브 쿼리 작성 방법 # 서브 쿼리 작성 방법 - 서브쿼리 (WHERE 절에서 수행) 종류 - 주쿼리 (일반 쿼리) SELECT 사원번호 FROM TABLE ------> 주쿼리 - 스칼라 서브쿼리 : SELECT 절에 쿼리가 사용 되면 해당 쿼리를 스칼라 서브쿼리라고 한다. SELECT 사원번호, 주소, 부서번호, (SELECT 부서주소 FROM 부서 WHERE 부서.부서번호 = 사원.부서번호) 부서주소 FROM 사원; - 인라인 뷰 : FROM 절에 사용되는 쿼리를 인라인 뷰라고 한다. SELECT 사원번호, 주소, 부서번호 FROM 사원, (SELECT 부서번호 FROM 부서 WHERE 부서주소= '서울') 부서 WHERE 부서.부서번호 = 사원.부서번호; - 서브쿼리 : WHERE 절에 사용되는 쿼리를 서브쿼리 라고한..
Query 작성원칙 # Query 작성원칙 1. 바인드 변수를 사용한다. 2. 가급적 WHERE 조건에서 INDEX컬럼 모두를 사용한다. 3. 인덱스 컬럼에 사용하는 연산자는 가급적 동등 연산자(=)를 사용하라. 4. 인덱스 컬럼은 변형하여 사용하지 않도록 한다. (SUBSTR등 금지) 5. OR보다는 AND를 사용하라. 6. 그룹핑 쿼리를 사용할 경우 가급적 HAVING보다는 WHERE절에서 데이터를 필터링하라. 7. DISTINCT는 가급적 사용하지 않는다. 8. IN, NOT IN 대신 EXISTS와 NOT EXISTS를 사용하라. 9. SET 연산자 사용시 UNION대신 UNION ALL을 사용하라.
DISTINCT # Distinct는 해당 열의 중복을 제거해주는 역할 - 보통 실무에서는 잘 안씀... 데이터 량이 많으면 속도가 매우 느려짐 - 대체 함수로는 EXISTS가 존재함... 실무에서는 EXISTS 쓰는게 좋음... - 중복된 값에대해 한번만 값 추출 - 예제 1) SELECT DISTINCT A."기관", A."오류일자", B."조치일자", A."수집 파일 명", A."테이블 네임" FROM 테이블 명 - 예제 2) SELECT DISTINCT 카드번호 FROM 거래;
SUBSTR # SUBSTR 함수 - SUBSTR 함수는 해당 열의 값에서 중간에 있는 문자를 추출해야 할 경우에 사용한다. SUSBSTR(char1,n,m) - 위의 내용 설명 char1 : 함수를 수행하고자 하는 문자 값 또는 테이블의 열을 설정 n : 추출하고자 하는 문자열의 처음 위치 m : 추출하고자 하는 문자열의 길이 - 예제 1) SELECT SUBSTR(CODE,2,3) "SUBSTRING" FROM 업무; - 예제 2) SELECT 거래일자, 카드별, 거래금액 FROM 거래내역 WHERE SUBSTR(거래일자,5,2) = '05'; - 주의할 점 SUBSTR 사용된 열은 인덱스 사용할 수 없다. 한번 수행 시 하나의 행만 함수에 제공 단일행 함수는 WHERE 절에서 조건으로 활용 가능 예 ) WHER..
Delete (데이터 삭제) # Delete 함수에 대해서 알아보기 - Delete 함수는 데이터를 삭제 하는 함수이다. - where 조건의 데이터만 삭제 할 수도 있고, 테이블 전체 데이터를 삭제 할수도 있고, 서브쿼리로 조회 대상만 골라서 삭제 할 수 도 있고 뭐 그렇다. # 기본 사용법 DELETE FROM TEST WHERE COL1 = 'AAA'; - 위의 쿼리문에서 주의할점은 where 절 없으면 테이블 통째로 데이터 삭제가 되니... 주의를 해야한다. 항상 select 먼저 하고... 삭제 대상을 명확히 확인 후 삭제를 해야한다. 예제1) DELETE FROM 거래 WHERE 카드번호 = '1235' AND 거래일자 = '20060301'; 예제2) DELETE FROM 거래 WHERE 카드번호 IN (SELECT 카..
Drop (테이블 삭제) 개념 및 사용법 # Drop (드롭) 함수 - Drop 함수는 일단 테이블을 삭제하는 명령어이다. - Truncate와 다르게 테이블과 데이터까지 모두 삭제를 하니, 조심히 써야한다. # 사용방법 - 사용법은 truncate와 같이 매우 간단하다. DROP TABLE TABLE_NAME; # [PURGE] 옵션쓰면 완전 삭제됨 DROP TABLE TABLE_NAME [PURGE]; - 위에서도 언급했지만... DROP 테이블은 테이블을 삭제하는 동시에 데이터도 동시에 삭제가 되므로 항상~ 여러번 확인 후 작업을 해야한다. - 팁은 Drop 테이블 하기전에 대상 테이블을 Select로 우선 조회 후 확인과 확인을 거쳐 Drop 테이블을 하는게 좋다~ 경험상... ㅋㅋ
Truncate 개념 및 사용방법 # Truncate 개념 및 사용법 - Truncate는 일단 나는 자주썼었다. 테이블 만들고 적재를 하다가 뭔가 잘못되면 truncate 하고 다시 적재하고 하는 작업이 의외로 많았다. - truncate는 테이블 껍데이만 놔두고 데이터를 모두 지우는 함수이다. # 사용법은 아래와 같다. TRUNCATE TABLE TABLE_NAME; 쿼리는 매우 간단한데 잘 써야한다. 데이터 모두 지워지므로...