Database43 [MyBatis] 동적 쿼리 <trim> 사용 방법 trim 속성 속성 설명 prefix 실행될 구문 쿼리 가장 앞에 붙여준다 prefixOverrides 실행될 구문 쿼리 가장 앞에, 해당하는 문자들이 있는 경우 자동으로 지워준다 suffix 실행될 구문 쿼리 가장 뒤에 붙여준다 suffixOverrides 실행될 구문 쿼리 가장 뒤에, 해당하는 문자들이 있는 경우 자동으로 지워준다 trim 문법 SELECT * FROM user WHERE id = #{id} OR user_name = #{userName} OR user_email = #{userEmail} 설명 prefix : 구문 맨 앞에 AND ( 가 붙음 prefixOverrides : trim 구문 안의 맨 처음 OR 로 시작할 경우 제거 suffix : 구문 맨 뒤에 ) 가 붙음 실행 쿼리 .. Database/MyBatis 2023. 9. 12. [Database] 뷰(View)의 개념 및 특징 뷰(View)란 무엇인가? 뷰는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체이며, 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화 한다. 뷰(View) 사용목적 여러 테이블의 조인과 그룹핑과 같은 복잡한 쿼리를 뷰에 저장시켜놓고, 저장한 뷰의 정보만 가져와 더 쉽고 편리하게 사용할 수 있다. (일종의 함수 형태) 데이터 보안에서도 유리한데, 뷰를 보면 컬럼과 데이터만 공개되므로 .. Database 2023. 1. 12. [SQL] Database Custom Order By (Oracle/Tibero, MySQL, PostgreSQL) 기본 정렬 방식을 떠나 특정 컬럼의 특정 값, 혹은 값의 순서를 커스텀하고 싶을 때 각 Database 마다 어떻게 사용되는 지 살펴보자 예제 컬럼 명 : COLUMN1 허용 값 : 검정, 노랑, 빨강, 파랑 Tibero / Oracle 아래 두 방법 모두 IF ELSE 문의 형태와 유사하다. CASE WHEN 문 SELECT * FROM TBL ORDER BY (CASE WHEN COLUMN1 = '빨강' THEN 1 WHEN COLUMN1 = '검정' THEN 2 WHEN COLUMN1 = '파랑' THEN 3 ELSE 4 END) ASC -- 혹은 DESC COLUMN1의 값이 빨강일 경우는 1 값으로 대체, 검정일 경우는 2 값으로 대체, 파랑일 경우는 3 값으로 대체, 나머지(노랑)일 경우 4 .. Database/SQL 2022. 11. 13. [MyBatis] SpringBoot MyBatis 쿼리 로그 설정하기 의존성(dependency) 추가 implementation "org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16" 프로퍼티 파일 추가 파일 : log4jdbc.log4j2.properties 경로 : src/main/resources log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator log4jdbc.dump.sql.maxlinelength=0 datasource 설정 설정 파일 : application.yml driver-class-name 추가 jdbc url 변경 : "log4jdbc:" 추가 spring: datasource: driver-class-name: net.s.. Database/MyBatis 2022. 10. 24. [PostgreSQL] ARRAY_AGG, ARRAY_TO_STRING 함수 사용하기 (여러 행을 한 행으로) 오늘 살펴볼 POSTGRESQL의 ARRAY_AGG 함수는 ORACLE의 LISTAGG 와 같은 집계 함수라고 생각하면 된다. LISTAGG 는 ORDER BY 표현식에 따라 쿼리 내 각 그룹의 행 순서를 지정해 값을 연결하여 하나의 문자열로 가져온다. 자세한 내용은 다음 게시글을 참고하자. [Oracle] LISTAGG WITHIN GROUP 문 LISTAGG 구문 SELECT LISTAGG (컬럼명, 구분기호) WITHIN GROUP (ORDER BY 정렬기준컬럼) FROM 테이블명 예제 다음 테이블로 사용방법을 살펴보자 동일한 MSD_ID의 값의 LINK_ORG 값을 하나의 컬럼으로 가져오고.. haenny.tistory.com 예제로 이해하기 컬러와 이름의 필드가 있는 데이터를 컬러 별로 묶어서 .. Database/SQL 2022. 8. 17. [DBeaver] 일부 테이블의 ERD만 확인하는 방법 및 ERD 이미지 저장하기 DB 테이블 ERD 확인하기 DBeaver는 Tool 내에서 ERD (ER Diagram)을 볼 수 있다. 추출하려는 DB 스키마/테이블 우클릭 "다이어그램 보기" 클릭 ERD 전체 표출 ERD 내 원하는 테이블 관계도 찾기 Ctrl + F 테이블명 검색 입력한 값에 포함되는 테이블을 찾아 화면 이동 DB 일부 테이블 ERD 확인하기 테이블의 양이 어마어마하게 많은 경우.. 아주 많은 ERD가 표출되는데.. 내가 원하는 테이블의 관계도를 보고 싶어서 위와 같이 검색을 하게 되면 DBeaver는 응답없음의 세상속으로 사라져버린다.. 보고자 하는 테이블만 드래그한 뒤 우클릭 "새 ER 다이어그램" 클릭 다이어그램 이름 설정 선택한 테이블의 ERD 표출 ERD Export 하기 하단 탭을 보면 다양한 기능이 .. Database/SQL 2022. 7. 15. [DBeaver] 알아두면 좋은 설정 및 자주 사용하는 단축키 테마 변경 윈도우 - 설정 - User Interface - 모양 - 테마 : Dark 변경 SQL 쿼리 서식 변경 윈도우 - 설정 - 편집기 - SQL 편집기 - SQL 포맷 Formatter : Compact 서식 Keyword case : Upper/Lower 기존에 Oracle을 많이 사용을 해와서인지, 쿼리 명령어가 대문자가 눈에 잘 익히는데 DBeaver는 기본적으로 소문자로 자동변환된다. 이는 키워드 Case를 대문자 혹은 소문자로 설정해 놓을 수 있다. 명령어 대/소문자 자동변환 위에서 대소문자 설정은 했지만, 만약 설정을 해도 자동으로 대/소문자 변환이 안되는 경우는 다음 체크박스가 체크되어있는 지 확인한다. 윈도우 - 설정 - 편집기 - SQL 편집기 - Code Editor : Aut.. Database/SQL 2022. 7. 15. [MyBatis] 중복 쿼리 줄여주는 sql, include, property 태그 문법 살펴보기 다른 구문에서 재사용하기 위한 SQL 조각 사용 조건 id 속성 값 필수 사용하려는 태그의 위치보다 먼저 선언되어야 함 문법 ${alias}.id, ${alias}.username, ${alias}.password SQL 조각인 문을 DML (Data Manipulation Language) 태그, 즉, 다른 구문에 포함(삽입) 시키는 기술 문법 예제 Where 문법 재사용 where board_id = #{boardId} select pageNum from m_board Table 문법 재사용 from ${tableproperty} select pageNum JOIN문 활용 ${alias}.id, ${alias}.username, ${alias}.password select , from some_tab.. Database/MyBatis 2022. 7. 12. [Oracle] 특정 컬럼이 존재하는, 존재하지 않는 테이블 찾기 1. '특정컬럼'이 존재하는 테이블 찾기 SELECT DISTINCT TABLE_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME = '특정컬럼' ORDER BY TABLE_NAME 2. '특정컬럼1'과 '특정컬럼2'가 동시에 존재하는 테이블 찾기 SELECT DISTINCT TABLE_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME IN ('특정컬럼1', '특정컬럼2') ORDER BY TABLE_NAME 3. '특정컬럼1'과 '특정컬럼2'가 동시에 존재하지 않는 테이블 찾기 SELECT DISTINCT TABLE_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME NOT IN ('특정컬럼1', '특정컬럼2') ORD.. Database/SQL 2022. 3. 16. [Oracle] DATE 타입의 컬럼 조회 조건 쿼리문 TO_DATE 사용? TO_CHAR 사용? DATE 타입 컬럼 조회 (TO_CHAR 사용) DATE 타입의 컬럼 조회 일자 조회 조건을 줄 때, 습관적으로 TO_CHAR를 사용해왔다. 보통 Javascript 에서 datetimepicker 등의 라이브러리를 이용해서 조회일자의 기간을 조건으로 조회하고, 시작일자와 종료일자의 문자열을 파라메터로 BETWEEN AND 쿼리로 테이블을 조회한다. 큰 고민 없이 주로 TO_CHAR를 사용해왔던 큰 이유는 TO_DATE 처리 시에 DATE FORMAT 에 따라서모두 초기값 처리 되는 문제 때문이었다. SELECT TO_DATE('2022' , 'YYYY') AS YYYY , TO_DATE('2022-01' , 'YYYY-MM') AS YYYYMM , TO_DATE('2022-01-02' , 'YYYY-M.. Database/SQL 2022. 3. 14. [Oracle] SQL Developer 의 Date 표출 Format 설정방법 [Oracle] SQL Developer 의 Date 표출 Format 설정방법 날짜(Date) 타입의 데이터가 데이터 창, 질의 결과, 익스포트 시에 포맷 설정하는 방법이다. 도구 (Tools) - 환경설정 (Preference) 클릭 후 데이터베이스 - NLS 선택 날짜 형식을 원하는 포맷으로 변경 Database/SQL 2022. 2. 3. [ERWin] Table Script 파일로 ERWin Reverse Engineer 사용하여 ERD 생성하기 [ERWin] Table Script 파일로 ERWin Reverse Engineer 사용하여 ERD 생성하기 1. 전체 테이블 CREATE문 익스포트 익스포트하기위한 테이블을 전체 드래그한 뒤 [마우스 우측키] - [익스포트] 클릭한다. DDL 익스포트만 체크한 뒤 (데이터 익스포트는 해제한다) 원하는 경로에 저장한다. 이제 이 파일로 ERD를 생성을 할 것인데, 이대로 진행하면 ERWin 에서 Syntax Error가 발생한다. CREATE문의 구조는 다음과 같아야 하는데, CREATE TABLE TB_SAMPLE ( SEQ VARCHAR2(38 BYTE) NOT NULL, NAME VARCHAR2(4 BYTE), ADDR VARCHAR2(1 BYTE), CONSTRAINT PK_TB_SAMPLE P.. Database/ERWin 2022. 1. 20. 이전 1 2 3 4 다음 추천 글 728x90 반응형