티스토리

Haenny
검색하기

블로그 홈

Haenny

haenny.tistory.com/m

헹창 님의 블로그입니다.

구독자
20
방명록 방문하기
공지 블로그 옮겨요! 모두보기

주요 글 목록

  • [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 .. 공감수 0 댓글수 0 2022. 11. 13.
  • [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 예제로 이해하기 컬러와 이름의 필드가 있는 데이터를 컬러 별로 묶어서 .. 공감수 0 댓글수 0 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 하기 하단 탭을 보면 다양한 기능이 .. 공감수 1 댓글수 0 2022. 7. 15.
  • [DBeaver] 알아두면 좋은 설정 및 자주 사용하는 단축키 테마 변경 윈도우 - 설정 - User Interface - 모양 - 테마 : Dark 변경 SQL 쿼리 서식 변경 윈도우 - 설정 - 편집기 - SQL 편집기 - SQL 포맷 Formatter : Compact 서식 Keyword case : Upper/Lower 기존에 Oracle을 많이 사용을 해와서인지, 쿼리 명령어가 대문자가 눈에 잘 익히는데 DBeaver는 기본적으로 소문자로 자동변환된다. 이는 키워드 Case를 대문자 혹은 소문자로 설정해 놓을 수 있다. 명령어 대/소문자 자동변환 위에서 대소문자 설정은 했지만, 만약 설정을 해도 자동으로 대/소문자 변환이 안되는 경우는 다음 체크박스가 체크되어있는 지 확인한다. 윈도우 - 설정 - 편집기 - SQL 편집기 - Code Editor : Aut.. 공감수 2 댓글수 0 2022. 7. 15.
  • [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.. 공감수 0 댓글수 0 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.. 공감수 3 댓글수 3 2022. 3. 14.
  • [Oracle] SQL Developer 의 Date 표출 Format 설정방법 [Oracle] SQL Developer 의 Date 표출 Format 설정방법 날짜(Date) 타입의 데이터가 데이터 창, 질의 결과, 익스포트 시에 포맷 설정하는 방법이다. 도구 (Tools) - 환경설정 (Preference) 클릭 후 데이터베이스 - NLS 선택 날짜 형식을 원하는 포맷으로 변경 공감수 0 댓글수 0 2022. 2. 3.
  • [Oracle] 오라클 에러코드 모음 [ORA-CODE] [Oracle] 오라클 에러코드 모음 [ORA-CODE] 출처 : http://arraybox.com/entry/Oracle-Error-Code ora-code 설명 ora-00000 성공적인 정상 종료입니다. ora-00001 유일성 제약조건(%s.%s)에 위배됩니다. ora-00017 트레이스 이벤트 설정이 세션에 요구되었습니다. ora-00018 최대 세션 수를 초과했습니다. ora-00019 최대 세션 라이선스 수를 초과했습니다. ora-00020 최대 프로세스 수(%s)를 초과했습니다. ora-00021 세션이 다른 프로세스에 첨부되어 있음; 세션을 변경할 수 없습니다. ora-00022 부적절한 세션 번호; 액세스가 거절되었습니다. ora-00023 세션이 프로세스 고유의 메모리를 참조함; 세.. 공감수 1 댓글수 2 2021. 12. 21.
  • [Oracle] SQL Developer 엑셀 데이터 임포트 하는 방법 [Oracle] SQL Developer 엑셀 데이터 임포트 하는 방법 데이터 임포트할 테이블 마우스 우측 키 클릭 + 데이터 임포트 선택 데이터 임포트할 파일 선택 파일 선택 시 엑셀파일의 데이터가 아래 '파일 내용'에 표출된다. 여기서는 임포트할 데이터와 제외할 데이터를 선택해주면된다. 사용 가능한 열 : 제외할 데이터 컬럼 선택된 열 : 임포트할 데이터 컬럼 맞춰줄 데이터 형식이 있다면 체크하고 넘어간 뒤 완료를 누르면 끝 ! 대용량 데이터 엑셀로 익스포트 방법이 궁금하다면 ? [Oracle] SQL Developer 대용량 데이터 익스포트하는 방법 [Oracle] SQL Developer 대용량 데이터 익스포트하는 방법 SQL Developer 에서 출력한 데이터를 익스포트(Export)하는 경우.. 공감수 3 댓글수 0 2021. 12. 9.
  • [Oracle] SQL Developer 대용량 데이터 익스포트하는 방법 [Oracle] SQL Developer 대용량 데이터 익스포트하는 방법 SQL Developer 에서 출력한 데이터를 익스포트(Export)하는 경우에 데이터 양에따라 지연시간이 길어지고, 대용량 데이터의 경우에는 최대 자동열기 크기를 초과하여 열수 없다는 문구가 나오기도한다. 이를 해결하는 여러 방법 중 한 가지를 오늘 살펴보자. 조회한 레코드 마우스 우측키 클릭 + 익스포트 선택 데이터 형식 : insert ps. 해결방법이 아닙니다. 여기서 보통 익스포트 형식을 insert로 한다. 데이터가 많지 않거나, 바로 insert용 쿼리로 익스포트하기 위해서는 이 형식이 더 편리하다. 하지만 대용량 데이터를 insert 형식으로 익스포트하는 경우 경고창이 발생한다. 해결방법 데이터 형식 : excel 2.. 공감수 0 댓글수 0 2021. 12. 9.
  • [Oracle] MyBatis Insert Foreach 대용량 데이터 처리 [Oracle] MyBatis Insert Foreach 대용량 데이터 처리 oracle mybatis foreach insert [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE, UPDATE) - Oracle [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE, UPDATE) - Oracle foreach문은 사용할 때마다 사용되는 위치도 속성도 어려워서 더이상 헷갈리지 않기 위해 남겨본다 :-) ! MySQL foreach 사용방.. haenny.tistory.com 여지껏 Oracle Insert Foreach문이라고 하면 기존에 구현했던 INSERT ALL INTO TABLE 방식을 고집해왔다. 상황에 따.. 공감수 0 댓글수 0 2021. 12. 6.
  • [Oracle] 현재 날짜와의 차이 계산하기 : 일 차, 주 차, 월 차 (TRUNC 활용) [Oracle] 현재 날짜와의 차이 계산하기 : 일 차, 주 차, 월 차 (TRUNC 활용) MySQL 날짜 차이 계산 및 활용방법 관련 게시글 ▼▼▼▼ [MySQL] 현재 날짜와의 차이 계산하기 : 일 차, 주 차, 월 차 [MySQL] 현재 날짜와의 차이 계산하기 : 일 차, 주 차, 월 차 1. 현재 날짜와 특정 날짜의 차이 값 계산하기 TIMESTAMPDIFF(옵션, 날짜1, 날짜2) 옵션 DAY, WEEK, MONTH 기준으로 일 차, 주 차, 월.. haenny.tistory.com 해당 글은 TRUNC 함수에 대한 기본 구문 및 특징을 알아야 이해하기 쉽습니다. 아래 게시글을 참고바랍니다. [Oracle] TRUNC 함수 사용방법 (날짜, 시간, 요일, 숫자) [Oracle] TRUNC 함수.. 공감수 1 댓글수 0 2021. 11. 10.
  • [Oracle] TRUNC 함수 사용방법 (날짜, 시간, 요일, 숫자) [Oracle] TRUNC 함수 사용방법 (날짜, 시간, 요일, 숫자) TRUNC("값", "옵션") TRUNC 함수는 오라클의 기본적인 함수로 주로 소수점 절사나 날짜의 시간을 없앨 때 사용한다. TRUNC(숫자) 위와 같이 TRUNC를 숫자에 적용하는 경우 소수점을 모두 절사한다. SELECT TRUNC(NUM, 1)-- NUM = 1234.56 FROM TEMP 이는 소수점 자리 1 (옵션 값)까지 절사, 즉 자르라는 의미이다. ROUND와 같이 반올림을 해주지 않고 지정한 자릿수 이후로 자른다. TRUNC(날짜) 옵션이 없는 경우 기본적으로 시간을 절사하며, 옵션을 입력한 경우 입력한 부분까지 표출하고 그 나머지를 "00"으로 초기화한다. 시간 절사 SELECT TRUNC(DT, 'DD')-- 시.. 공감수 2 댓글수 0 2021. 11. 10.
  • [ORACLE] 집계함수의 SUMMARY 구하기 - ROLLUP 함수 [ORACLE] 집계함수의 SUMMARY 구하기 - ROLLUP 함수 CR_DTM, CR_TYPE 그룹으로 갯수(CNT) 관련컬럼은 합(SUM)을 비율(RATE) 관련컬럼은 평균(AVG)를 나타내려고 한다. 단계 1. 집계 함수 (SUM, AVG) SELECT CR_DTM , CR_TYPE , SUM(TOTAL_CNT) AS TOTAL_CNT , SUM(MINUTE1_CNT) AS MINUTE1_CNT , AVG(MINUTE1_RATE) AS MINUTE1_RATE , SUM(MINUTE2_CNT) AS MINUTE2_CNT , AVG(MINUTE2_RATE) AS MINUTE2_RATE , SUM(MINUTE3_CNT) AS MINUTE3_CNT , AVG(MINUTE3_RATE) AS MINUTE3_.. 공감수 4 댓글수 0 2021. 10. 28.
  • [Oracle] "ORA-06502: PL/SQL: 수치 또는 값 오류: 문자열 버퍼가 너무 작습니다" 오류 해결 [Oracle] "ORA-06502: PL/SQL: 수치 또는 값 오류: 문자열 버퍼가 너무 작습니다" 오류 해결 CLOB 타입의 데이터를 조회하는 과정에 발생한 오류이다. 전자정부 프레임워크 SpringMVC 모델의 프로젝트의 MyBatis 를 사용하여 DB 데이터를 조회한 쿼리를 VO 객체에 담아 View에 보내는 과정이었다. CLOB 타입의 데이터를 VO에 담기 위해서는 다음과 같은 쿼리를 작성했다. SELECT SEQ_NO , SUBJECT , DBMS_LOB.SUBSTR(CONTENTS_CLOB, 4000, 1) AS CONTENTS FROM WEB_OP_BBS CONTENTS_CLOB 컬럼의 컨텐츠를 지정 바이트 (4000) 만큼 잘라오는 쿼리이다. 실제로 CONTENTS_CLOB 에 이미지 .. 공감수 0 댓글수 0 2021. 4. 30.
  • [MySQL] 현재 날짜와의 차이 계산하기 : 일 차, 주 차, 월 차 [MySQL] 현재 날짜와의 차이 계산하기 : 일 차, 주 차, 월 차 1. 현재 날짜와 특정 날짜의 차이 값 계산하기 TIMESTAMPDIFF(옵션, 날짜1, 날짜2) 옵션 DAY, WEEK, MONTH 기준으로 일 차, 주 차, 월 차 값을 반환한다. 날짜1이 날짜2 보다 과거인 경우 양수 값으로 반환된다. 일 차이 TIMESTAMPDIFF(DAY, 특정날짜, CURDATE( )) 주 차이 TIMESTAMPDIFF(WEEK, 특정날짜, CURDATE( )) 월 차이 TIMESTAMPDIFF(MONTH, 특정날짜, CURDATE( )) 예시 TEST_TABLE에 STST_DATE 컬럼은 20년 10월부터 21년 1월까지 DATE 타입의 특정 날짜가 있다. 해당 특정 날짜와, 현재 날짜, 그리고 두 날짜.. 공감수 3 댓글수 2 2021. 1. 26.
  • [Oracle] 행열 변환, 오라클 PIVOT 테이블 사용 방법 [Oracle] 행열 변환, 오라클 PIVOT 테이블 사용 방법 PIVOT 테이블은 행/열을 바꾸거나 통계처리할 때 대체로 사용된다. 사용 구문 SELECT ... FROM ... PIVOT [XML] ( --------------(1) PIVOT_CLAUSE --------------(2) PIVOT_FOR_CLAUSE --------------(3) PIVOT_IN_CLAUSE --------------(4) ) WHERE ... ① PIVOT : PIVOT 테이블, [XML]을 정의할 경우 필터링된 PIVOT 값이 XML 타입으로 반환된다. ② PIVOT_CLAUSE : 집계함수 (SUM, MAX, MIN, COUNT 등)와 같은 컬럼을 정의한다. ③ PIVOT_FOR_CLAUSE : PIVOT의 .. 공감수 0 댓글수 0 2021. 1. 13.
  • [MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX [MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX SUBSTRING_INDEX 구문 SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) 예제 다음 예제 테이블에서 실제 파일명만 가져오기 위해 "/" 구분자로 문자열을 가져온다. 1. 첫 번째 구분자로 나뉜 문자열 가져오기 SELECT SUBSTRING_INDEX(FILE_NM, '/', 1) AS FILE_NM FROM TEST_TABLE 2. 세 번째 구분자로 나뉜 문자열 가져오기 SELECT SUBSTRING_INDEX(FILE_NM, '/', 3) AS FILE_NM FROM TEST_TABLE 3. 뒤에서 첫 번째 구분자로 나뉜 문자열 가져오기 SELECT SUBSTRING_INDEX(FILE_NM, '.. 공감수 4 댓글수 0 2020. 11. 6.
  • [HeidiSQL] HeidisSQL 에서 조회한 데이터 엑셀 내보내기 [HeidiSQL] HeidisSQL 에서 조회한 데이터 엑셀 내보내기 ORACLE에서는 조회한 데이터 드래그 복사가 가능한데 mySql은 안된다.. 01. 조회한 데이터 테이블에서 [마우스 우키] - [격자 행 내보내기] 클릭 02. '격자 행 내보내기' 폼에서 출력 파일 형식(엑셀) 설정 후 파일 저장 위치 설정 끝~ 공감수 6 댓글수 8 2020. 7. 23.
  • [Oracle] 숫자 0.5 문자 변환 시 ".5" ? "0.5" 로 표시하기 [Oracle] 숫자 0.5 문자 변환 시 ".5" ? "0.5" 로 표시하기 TO_CHAR를 사용하여 숫자인 0.5를 문자로 변환하면 ".5"로 소수점 이상이 0일 경우 점(.)으로만 표시되어 변한된다. FM (FORMAT) 옵션을 활용하여 변환할 수치 값의 포맷을 설정해보자. - FM9990.99 ① 9 : 해당 자리의 숫자를 의미한다. - 값이 없을 경우 소수점 이상은 공백, 소수점 이하는 0으로 표시한다. ② 0 : 해당 자리의 숫자를 의미한다. - 값이 없을 경우 0으로 표시하며 숫자의 길이를 고정적으로 표시할 때 주로 사용한다. ③ FM : 좌우 9로 치환된 소수점 이상의 공백 및 소수점 이하의 0을 제거한다. - 예제 SELECT TO_CHAR(0.50, 'FM9990.99') FROM SY.. 공감수 2 댓글수 0 2020. 6. 20.
  • [Oracle] 자동증가 SEQUENCE 생성, 조회, 삭제 [Oracle] 자동증가 SEQUENCE 생성, 조회, 삭제 SEQ값을 키 값으로 가지고 있는 테이블을 저장할 때 MAX(SEQ)+1로 데이터를 저장하게되면 데이터가 쌓일수록 과부하가 걸린다. 따라서 시퀀스를 생성하여 시퀀스의 자동증가를 활용하여 저장할 수 있도록 해보자. 1. SEQUENCE 생성 - 내가 원하는 시퀀스 명칭을 정의하여 생성한다. CREATE SEQUENCE TEST_SEQ START WITH 1 INCREMENT BY 1; 2. SEQUENCE 전체 조회 - 내가 생성한 SEQUENCE에 대한 전체 정보를 조회한다. TEST_SEQ가 생성된 것을 확인할 수 있다. SELECT * FROM USER_SEQUENCES; 3. 특정 SEQUENCE의 다음 값 조회 : NEXTVAL - SE.. 공감수 2 댓글수 0 2020. 4. 8.
  • [Oracle] LPAD, RPAD 함수 사용하여 공백 채우기 "0 채우기" [Oracle] LPAD, RPAD 함수 사용하여 공백 채우기 "0 채우기" 데이터베이스에서 키 값을 자동으로 저장할 때, SEQ는 SEQUENCE를 사용해서 자동증가가 쉽지만 숫자형 문자인 CD00001 과 같은 포맷의 키 값을 1씩 늘려가며 저장할 때 CD를 자르고, MAX값으로 +1을 하여 다시 0을 붙여서 저장해야만 하는가.. 찾아보다가 LPAD/RPAD 함수를 만나게 되었다. 이를 더 쉽게 해줄 함수를 공부해보자. LPAD 함수 LPAD("값", "총 문자길이", "채움문자") - 지정한 길이만큼 왼쪽부터 특정문자로 채워준다. SELECT 30 , LPAD(30, 5) , LPAD(30, 5, '0') , LPAD(30, 5, 'A') FROM SYS.DUAL - 결과 채움문자 수= "총 문자길.. 공감수 4 댓글수 2 2020. 4. 3.
  • [Oracle] ORA-00904 : 부적합한 식별자 invalid identifier 오류 ORA-00904 : 부적합한 식별자 invalid identifier 오류 ORA-00904 : 부적합한 식별자 invalid identifier 오류는 입력된 열 이름이 누락되었거나 잘못 되었을 경우 발생한다. 원인 존재하지 않는 열 이름을 지정한 경우 정의된 열 이름과 대소문자가 일치하지 않는 경우 작은 따옴표(')와 큰 따옴표(") 사용 방법의 오류인 경우 열 이름에 특수 문자 사용한 경우 열 이름에 Oracle 예약어 사용한 경우 각 원인 별 해결방법 존재하지 않는 열 이름을 지정한 경우 해당 열이 테이블에 존재하는지 확인 정의된 열 이름과 대소문자가 일치하지 않는 경우 정의된 열 이름의 대소문자를 확인 작은 따옴표(')와 큰 따옴표(") 사용 방법의 오류인 경우 작은 따옴표(')로 값을 묶으면.. 공감수 7 댓글수 1 2020. 2. 17.
  • [Oracle] ORA-00054 : 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. 오류 [Oracle] ORA-00054 : 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. 오류 ORA-00054 : 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. 00054. 00000 - "resource busy and acquire with NOWAIT specified" 위 오류는 내가 사용하려는 테이블을 다수의 사용자가 하나의 DB로 작업하다가 주로 lock이 걸리는 경우 발생한다. 이 때는 선행 사용자가 commit을 해주면 간단히 해결된다. 혹은 오류 메시지가 뜨진 않고, 테이블 조회는 가능하지만 INSERT, MERGE 혹은 DELETE를 하려는 경우에 쿼리가 실행되지 않고(나의 경우) 멈춘다면 lock이 걸려.. 공감수 0 댓글수 0 2020. 2. 17.
  • [Toad] Background session could not connect to Oracle 해결 [Toad] Background session could not connect to Oracle 해결 1. 아래화면과 같이 Change Session 버튼을 클릭 2. 끊긴 세션의 User / Password 를 다시 입력 후 Connect 참 쉽죠잉 공감수 0 댓글수 0 2020. 2. 12.
  • [Oracle] 집합연산자 : UNION, UNION ALL, INTERSECT, MINUS [Oracle] 집합연산자 : UNION, UNION ALL, INTERSECT, MINUS 집합연산자는 데이터베이스에서 데이터를 조회(SELECT)할 때 쿼리의 결과를 대상으로 연산을 수행하는 연산자이다. 국어,영어,수학,사회,과학 수업을 듣는 1학년 테이블과 국어,영어,수학,사회,과학 수업을 듣는 2학년 테이블로 예제를 살펴보자. 1. UNION : 합집합 - 두 테이블의 결합을 나타내며, 두 테이블의 중복되는 값은 제거되어 수행 결과 한번만 나오게 된다. 사용 예시 SELECT SUBJECT FROM GRADE1 UNION SELECT SUBJECT FROM GRADE2 결과 - GRADE1테이블과 GRADE2 테이블의 공통 과목인 국어, 사회, 과학이 두 번씩 나오는 것이 아닌 한 번만 반환 된다.. 공감수 0 댓글수 0 2019. 12. 27.
  • [Error] MySQL 에러 Cannot delete or update a parent row: a foreign key constraint fails [Error] MySQL 에러 Cannot delete or update a parent row: a foreign key constraint fails 에러 로그 ### Cause: java.sql.SQLIntegrityConstraintViolationException: (conn=4502) Cannot delete or update a parent row: a foreign key constraint fails (`taat_vol2`.`file`, CONSTRAINT `file_ibfk_1` FOREIGN KEY (`filegid`) REFERENCES `board` (`id`)) 현재 구현 로직은 특정 게시물을 지우면 해당 id값의 board 테이블 데이터와 file 테이블에 조인된 데이터를 삭제.. 공감수 1 댓글수 0 2019. 12. 11.
  • [Oracle] INNER JOIN이란? 사용방법도 함께 알아보자 [Oracle] INNER JOIN이란? 사용방법도 함께 알아보자 INNER(내부) JOIN 이란, 두 테이블간 조인 조건을 만족하는 행을 반환할 때 사용하는 구문이다. 쉽게 조인하려는 두 테이블의 교집합이라고 생각하면 될 듯 하다. 사용 방법 SELECT * 조회할 컬럼을 선택한다 (모든 컬럼 조회) FROM TABLE1 T1 INNER JOIN TABLE2 T2 INNER 는 생략가능 ON (T1.KEY = T2.KEY) 두 테이블을 연결할 조건을 명시한다 실제 어떻게 사용되는지 살펴보자 KEY 컬럼이 TIMESTAMP와 NUM인 같은 구조의 테이블 A와 B가 있다. 두 테이블의 TIMESTAMP와 NUM의 값이 같은 데이터를 조회하고 싶다. 여기서 INNER JOIN의 INNER는 생략 가능하다. .. 공감수 11 댓글수 0 2019. 10. 13.
  • [Oracle] OUTER JOIN 사용 방법과 차이점 (LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN) OUTER(외부) JOIN 이란 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용하는 구문이다. 즉 A, B 테이블을 JOIN 할 경우, 조건에 맞지 않는 데이터도 표시하고 싶을 때 OUTER JOIN을 사용한다. 오늘은 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN을 살펴볼 것이다 !! LEFT / RIGHT / OUTER JOIN 맛보기 OUTER JOIN은 조인 USING, ON 조건절을 필수적으로 사용해야 한다. LEFT OUTER JOIN과 RIGHT OUTER JOIN은 기준이 되는 테이블이 조인 수행 시 무조건 드라이빙 테이블(첫번째로 ACCESS 되는 테이블)이 된다. 또한, 드라이빙 테이블이 어떤 테이블이냐에 따라 쿼리 성능이나 튜닝 부분에.. 공감수 27 댓글수 1 2019. 10. 12.
  • [Oracle] LISTAGG WITHIN GROUP 문 LISTAGG 구문 SELECT LISTAGG (컬럼명, 구분기호) WITHIN GROUP (ORDER BY 정렬기준컬럼) FROM 테이블명 예제 다음 테이블로 사용방법을 살펴보자 동일한 MSD_ID의 값의 LINK_ORG 값을 하나의 컬럼으로 가져오고 싶다면 LISTAGG 구문을 사용해서 가져오면 된다. SELECT LISTAGG(LINK_ORG, '') WITHIN GROUP (ORDER BY LINK_ORG) AS LINK_ORG FROM G_LINK WHERE MSD_ID = 'MSD_ID' 여기서 구분기호를 두지 않았지만 만약 구분기호를 ',' 로 두었다면 결과값은 00,01,02,03,04 가 나온다. 참고로 LISTAGG는 중복제외(DISTINCT)를 지원하지 않는다. 이를 해결하기 위해 아.. 공감수 0 댓글수 0 2019. 7. 29.
    728x90
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.