[Oracle] 비밀번호 만기 해제 관리자 계정으로 오라클 DBMS 접속 후 아래 절차대로 수행 비밀번호 만기 정책 확인 😃 SELECT * FROM dba_profiles WHERE profile = 'DEFAULT'; 프로파일 내용 변경(무제한으로) alter profile default limit password_life_time unlimited; IT/development 2024.04.11
[SQL] 백분율 예제 목차 SELECT 5 / 30 * 100 FROM dual ; 1. 백분율 계산식 구하려는 컬럼을 전체 컬럼개수로 나눈 뒤 100을 곱한다. 실전 SQL(cubrid 사용) SELECT CASE WHEN A.HOUSE_TY_SECD = '1' THEN '다가구' WHEN A.HOUSE_TY_SECD = '2' THEN '빌라' WHEN A.HOUSE_TY_SECD = '3' THEN '아파트' WHEN A.HOUSE_TY_SECD = '4' THEN '오피스텔' WHEN A.HOUSE_TY_SECD = '5' THEN '단독' WHEN A.HOUSE_TY_SECD = '6' THEN '다세대' WHEN A.HOUSE_TY_SECD = '7' THEN '연립' WHEN A.HOUSE_TY_SECD = '8.. IT/DBMS 2024.03.20
[Oracle] N개월후까지 날짜 구하기 (feat. Connect by level) WITH calendar AS ( SELECT TO_CHAR(TO_DATE('20231201') + LEVEL - 1, 'YYYYMMDD') AS dt FROM dual CONNECT BY LEVEL IT/DBMS 2023.12.03
[Rest API]계층구조 Rest API sample(feat. springBoot) 목차 Oracle의 HR schema의 데이터로 계층구조로 Rest API를 만들 수 있다. Rest API 연습 하기 좋다. depth entity 비고 1depth region 지역 2depth contry 나라 3depth location 위치 4depth department 부서 5depth employee 사원 최상위에 지역(유럽, 아메리카, 아시아 등)이 있고 그안에 나라가 있고 그 아래 5depth까지 구성할 수 있다. 위 데이터 구조를 기반으로 작성을 해 보면 아래처럼 작성 할 수 있다.(로직은 개인의 취향) RestController 😎 package study.dev.test.controller; import lombok.RequiredArgsConstructor; import lomb.. IT/development 2023.10.10
[DBMS] N:M(다대다) 관계일 때 매핑 테이블로 관계 형성 하나의 메뉴는 여러개의 유저그룹과 연결될 수 있고 하나의 유저그룹도 여러개의 메뉴정보와 연결될 수 있기에 다대다 관계라고 할 수 있다.(회원과 유저그룹도 마찬가지다) 예를 들어 회원관리라는 메뉴를 A그룹도 가질 수 있고 B그룹도 가질 수 있다. A그룹은 회원관리 뿐 아니라 시스템관리의 메뉴와도 연결될 수 있다. 관계형 데이터베이스에서는 다대다 관계를 풀어내기 위해 중간에 매핑 테이블을 둬서 1:N, N:1로 관계를 품 매핑 테이블은 연결시키는 테이들의 PK만을 가지고 있고 이를 가지고 각 테이블에서 서로 참조할 수 있다. 위의 관계에서 회원이 자신과 연결된 메뉴정보를 알고 싶으면 아래처럼 쿼리를 작성하면 된다. /* 사용자와 매핑된 메뉴 조회 */ WITH UserGroupCodes AS ( /* 유저그.. IT/DBMS 2023.09.24
[Oracle] ORDER BY 시 조건 처리 회원 테이블 정렬 시 아래처럼 조건으로 순위를 부여할 수 있음(다양하게 응용 가능) /* 사용자 아이디가 'l'로 시작하는 데이터를 우선순위로 한 다음 이름 오름차순 정렬 */ SELECT ROW_NUMBER() OVER( ORDER BY CASE WHEN USER_ID LIKE 'l%' THEN 1 ELSE 2 END , A.USER_NAME ) AS rn , A.USER_ID , A.USER_NAME , A.USER_EMAIL FROM USER_INFO A ; IT/DBMS 2023.09.24
[Oracle] 가장 마지막 row 조회(feat. partition by) 1:N의 관계에서 N쪽의 데이터가 여러 row가 있을 경우 가장 마지막 row만 조회 SELECT EMP_ID /* 아이디 */ , EMP_POSITION_CD /* 직급코드 */ , EMP_ROLE_CD /* 직책코드 */ FROM ( SELECT EMP_ID , EMP_POSITION_CD , EMP_ROLE_CD , ROW_NUMBER() OVER(PARTITION BY EMP_ID ORDER BY H_SNO DESC) AS RowIdx FROM EMP_INFO_HISTORY ) WHERE RowIdx = 1 IT/DBMS 2023.08.07
[mybatis] mybatis oracle merge into mapper.xml SELECT BOARD_SNO_SEQ.NEXTVAL AS boardSno FROM DUAL /* 게시글 등록/수정 */ MERGE INTO BOARD_INFO A /* 비교 조건(boardSno가 같은지 비교) */ USING DUAL ON(A.BOARD_SNO = #{boardSno}) WHEN MATCHED THEN /* update(boardSno가 일치하면 update) */ UPDATE TITLE = #{title} , CONTENT = #{content} , MOD_DATE = SYSDATE WHERE BOARD_SNO = #{boardSno} /* insert(boardSno가 불일치 할 경우 insert) */ WHEN NOT MATCHED THEN INSERT ( BO.. IT/development 2023.06.03
[Oracle] 해당월말일 ~ 익월 말일까지 조회 SELECT TO_CHAR(SYSDATE,'YYYYMM') || LPAD(LEVEL, 2, '0') AS dt FROM dual CONNECT BY LEVEL IT/DBMS 2023.05.30
[Oracle] 재귀 복사 더미 데이터를 만들기 위해 테이블에 있는 데이터만큼 복사 ex) BOARD 테이블에 1개의 row만 있을 경우 아래 쿼리를 실행하면 1개가 더 생기고 다시 실행하면 4개가 생기고 다시 실행하면 8개가 생기고 계속 테이블에 저장된 개수만큼 배로 늘어난다. INSERT INTO BOARD (BOARD_NO, TITLE, CONTENT, WRITER) (SELECT BOARD_NO_SEQ.NEXTVAL, TITLE, CONTENT, WRITER FROM BOARD); IT/DBMS 2023.05.07