본문 바로가기

Develop/Database & SQL

(25)
ERD 관계 라벨 명명 규칙 ERD(Entity-Relationship Diagram)에서 관계선 위에 작성하는 authorizes, consents와 같은 텍스트는 Relationship Label(관계 라벨) 또는 **Verb Phrase(동사구)**라고 부릅니다.Mermaid나 DB 설계 도구에서 이를 명명할 때 공식적으로 강제되는 표준 규격은 없으나, 협업과 가독성을 위해 업계에서 통용되는 5가지 관례가 있습니다.1. 동사 중심의 명명 (Verb-Oriented)가장 보편적인 규칙입니다. 엔티티 간의 '행위'나 '상태'를 나타내기 위해 현재형 동사를 사용합니다.Active (능동태): 주어(Parent)가 목적어(Child)에게 하는 행위.예: User authorizes Token, App has Platform KeyPa..
PL/SQL Developer 조회 결과 창 용량 부족한 경우(Export size 100MB) 조회할 데이터가 많을 경우 가끔 이런 메시지가 나오는데아래와 같이 size를 조절하면 더 많은 결과(result)를 확인 할 수 있습니다.Preferences > Windows Types > SQL Window > Maximum result set size (0 is unlimited)100 MB -> 500 MB* 0 으로 저장하면 무제한TIP: 추가로 용량을 늘리고 Fatch last page (Alt + End) 버튼을 누르면 중단된 결과 쿼리를 이어서 조회 할 수 있습니다.
EXISTS / NOT EXISTS 기본 개념 1. EXISTS / NOT EXISTS 기본 개념1) EXISTS서브쿼리 결과가 1건이라도 존재하면 TRUE즉,"이 조건을 만족하는 데이터가 있냐?"2) NOT EXISTS서브쿼리 결과가 1건도 없으면 TRUE즉,"이 조건을 만족하는 데이터가 없냐?"2. 비유로 더 쉽게 설명해 보기당신이 어떤 이벤트에 참여했다고 가정하면:A) NOT EXISTS"어제 응모 명단을 확인했는데, 당신 이름이 없다"=> 어제 응모 안 했네? 정상 처리.B) EXISTS"어제 응모 명단에 당신이 있다"그 중에서도 win_yn='Y'이면"당첨된 기록이 있네? 정상 처리."win_yn='N'이면"꽝이었네? 그럼 오늘 양말 응모했는지 더 확인해 보자."이렇게 단계적으로 체크합니다. 3. 왜 EXISTS / NOT EXISTS 를 ..
[Oracle] 파티션 추가하기 파티션된 테이블의 경우 미리 파티션이 추가되어야 한다. 해당 기간 파티션이 생성되어 있지 않은 경우 데이터 INSERT가 안됨-- PARTITION TABLE 조회SELECT table_name, partitioning_type, partition_count FROM user_part_tables ORDER BY table_name; -- 파티션 마지막 RANGE(HIGH_VALUE) 조회SELECT table_name, partition_name, high_value, tablespace_name FROM (SELECT table_name, partition_name, high_value, ..
[Oracle] 서브쿼리 동작 방식을 제어하는 힌트들 서브쿼리 동작 방식을 제어하는 힌트들 HINT명설명NO_UNNEST서브쿼리를 FILTER동작방식으로 처리하고 싶을 경우, 서브쿼리에 NO_UNNEST 힌트를 사용UNNESTFILTER 동작방식을 선택하지 않고 조인 동작방식으로 처리하고자 할 때. 서브쿼리에 UNNEST 힌트 사용NL_SJEXISTS나 IN조건 사용시 서브쿼리에 UNNEST와 함께 NL_SJ힌트를 사용하면, NESTED LOOPS JOIN SEMI로 처리되도록 유도HASH_SJEXISTS나 IN조건을 사용한 경우 서브쿼리에 UNNEST와 함께 HASH_SJ 힌트를 부여하면 HASH JOIN SEMI로 처리하도록 제어NL_AJNOT EXISTS나 NOT IN 조건을 사용한 경우 서브쿼리에 UNNEST와 함께 NL_AJ 힌트를 사용하면, NE..
[MyBatis] jdbcType 종류 및 문법 ■ jdbcType 입출력 변수의 javaType이나 jdbcType을 명시할 때 사용 --예시) SELECT * FROM emp WHERE type_cd = #{type_cd, jdbcType=VARCHAR} ※ 대소문자 주의 ■ 종류 SQL Server 형식 JDBC 형식 (java.sql.Types) Java 언어 형식 bigint BIGINT long binary BINARY byte[] bit BIT boolean char CHAR String date DATE java.sql.Date datetime TIMESTAMP java.sql.Timestamp datetime2 TIMESTAMP java.sql.Timestamp datetimeoffset(2) microsoft.sql.Types.DAT..
오라클 랜덤 확률 가중치 80 대 20의 확률 WITH TEST_TABLE AS ( SELECT 'A' TEAM, 20 RATE FROM DUAL UNION ALL SELECT 'B' TEAM, 80 RATE FROM DUAL ) SELECT * FROM ( SELECT * FROM TEST_TABLE A , ( SELECT LEVEL LV FROM dUAL CONNECT BY LEVEL = LV ORDER BY DBMS_RANDOM.VALUE ) WHERE ROWNUM
[PL/SQL] 무작정 시작하기 https://heodolf.tistory.com/62 [PL/SQL] 무작정 시작하기 (5) - EXCEPTION 예외 2020/01/13 - [DATABASE/ORACLE] - [PL/SQL] 무작정 시작하기 (1) - PL/SQL 이란? 2020/01/13 - [DATABASE/ORACLE] - [PL/SQL] 무작정 시작하기 (2) - IF 조건문 2020/01/13 - [DATABASE/ORACLE] - [PL/SQL] 무작성 시작하기 (3) - LOOP, WHILE 반 heodolf.tistory.com 이전 이후 가서 보고 공부