DB/쿼리(10)
-
[ORACLE] 사용자 계정 생성/권한 부여/계정 삭제
[계정 생성] create user [생성할유저네임] identified by [설정할패스워드] ; [권한 부여] grant connect,resource,dba to [유저네임] ; grant create table, create view to [유저네임] ; [계정 삭제] drop user [유저네임] cascade; *계정 아이디는 대소문자 구분 안하지만 패스워드는 대소문자 구분함
2020.12.15 -
[ORACLE] 페이징쿼리
*참고 : 페이징처리 쿼리_오라클 1. 페이지 수를 계산하여 셀렉트 SELECT B.* FROM ( SELECT CEIL(ROWNUM/10) PAGE --, COUNT(*) OVER() AS TOTAL_COUNT , A.* FROM ( SELECT * FROM OP_SAMPLE ORDER BY ID DESC ) A ) B WHERE PAGE = 100000; SELECT B.* FROM ( SELECT CEIL(ROWNUM/10) PAGE /*, COUNT(*) OVER() AS TOTAL_COUNT*/ , A.* FROM ( SELECT * FROM OP_SAMPLE ORDER BY ID DESC ) A ) B WHERE PAGE = 100000; 100만 건인 경우 수행시간 : 1.327초, TOTA..
2020.11.11 -
[ORACLE] 숫자 3자리마다 콤마찍기
숫자 3자리마다 콤마찍는 쿼리 //'1억2십만3백' 콤마찍기 //1. TO_CHAR : 간단하지만 '999,999,999,999' 선언한 포맷의 자릿수만큼 앞에 공백생김 1. TO_CHAR('100200300','999,999,999,999') AS toChar //2. REGEXP_REPLACE() 함수사용 : 조금 복잡하지만 공백없이 잘 됨 2. REGXP_REPLACE(REVERSE(REGEXP_REPLACE(REVERSE(TO_CHAE('100200300')),'([0-9]{3}','\1,')),'^,','') AS REGEXPREPLACE REGEXP_REPLACE() 함수원리 1단계 : REVERSE()함수를 통해 값을 역순으로 정렬(뒷자리부터 콤마를 찍기위함) 2단계 : 패턴과 일치하는 값 ..
2020.11.10 -
[ORACLE] OVER() 함수
SELECT DEPT_NM, COUNT (*) FROM HRM_DEPT GROUP BY DEPT_NM OVER 함수를 쓰지 않으면 GROUP BY를 이용하여 전체 행의 수를 확인할 수 있다. SELECT DEPT_NM, COUNT (*) OVER () FROM HRM_DEPT OVER 함수를 쓰면 GROUP BY를 이용하지 않아도 전체 행의 수를 구할 수 있다. SELECT DEPT_NM, COUNT (DISTINCT DEPT_CD) OVER () FROM HRM_DEPT 부서이름과 중복되지 않는 부서코드를 가진 부서 행의 수를 반환 SELECT DEPT_NM, COUNT (*) OVER (PARTITION BY DEPT_CD) FROM HRM_DEPT 부서이름과 부서코드로 나눈 부서 행의 수를 반환 P..
2020.11.05