본문 바로가기

DBMS27

[Oracle] [SQL DEVELOPER]테이블 구조만 복사, 테이블 데이터 복사 사용 가능한 두가지 방법이 있는데, 2번째 방법의 쿼리로는 테이블의 구조, 레코드는 복사가능하나 Primary Key, Foreign Key, Default, Index, 컬럼 설명 등은 복사되지 않는다. 1번방법 : SQL Developer 툴로 쿼리 생성하기 사용 DB Tool : SQL DEVELOPER SQL DEVELOPER 툴을 이용하는 경우, 기본키나 설명 등이 들어있는 기존 테이블(복사하고자 하는 테이블)이 있다면 기존 테이블 우클릭 후 1. DDL > 생성 : 현재 테이블 정보 쿼리문으로 생성해줌 2. DDL > 업데이트(현재 편집) : 방금 테이블 설정 변환한게 있다면 쿼리문으로 생성해줌 2번방법 : 아래 쿼리로 테이블의 구조, 레코드는 복사가능하나 Primary Key, Foreign.. 2021. 7. 28.
[Oracle] ORACLE - MERGE INTO 구문 DB 조회하여 특정 테이블에 조건이 일치할 경우 UPDATE, 일치하지 않을 경우 INSERT. 예를 들어 이미 저장된 회원정보가 있으면 UPDATE, 초기 저장이기 때문에 없을 경우 INSERT 구문을 실행하는 것이다. 비즈니스 로직으로 분기처리할 수 있지만, Oracle에서는 MERGE INTO 구문을 사용하면 하나의 로직으로 처리 가능하다. 구문 더보기 MERGE INTO Insert or Update 할 타겟 테이블 USING 타켓 테이블에 들어갈 데이터(ex : 테이블 ,뷰, 서브쿼리, DUAL도 사용가능) ON ( INSERT할 것인지 UPDATE 할것인지를 결정하는 조건 즉, ON절에 기술된 조건이 일치하면 업데이트문 실행 조건이 맞지 않으면 인서트 문을 실행한다. ★ primary key가.. 2021. 6. 29.
[Oracle] DELETE 문법 DELETE FROM 테이블명 | 뷰 | 서브쿼리 WHERE 조건 -- 조건절에 해당하는 데이터를 모두 삭제한다. -- 데이터가 여러개일 경우 모두 삭제되니 주의하자. 예제 DELETE FROM stu_table WHERE grade = '1' AND class_divide = 'A' -- grade가 1이고 class_divide가 A인 모든 데이터가 stu_table 테이블에서 삭제된다. WHERE 절에 IN 활용 DELETE FROM stu_table WHERE grade = '1' AND major_code IN ( SELECT major_code FROM major_table WHERE depar_code = '01' ) DELETE 실수 방지 데이터를 건드릴때는 항상 어떤 값이 변경될지 .. 2021. 6. 4.
[ORACLE] CASE 함수 / CASE WHEN 오라클에는 if문과 비슷한 기능을 하는 DECODE 함수가 있다. (DECODE : 여러가지 경우에 대해서 선택할 수 있도록 하는 기능) https://sungeune97.tistory.com/75 [Oracle] NVL , NVL2, DECODE 1. NVL함수 : NULL일경우 (Oracle 함수 NVL (value,0) -- value가 null 일경우 0을 반환 / 그렇지 않을경우 value값을 반환 ex ) NVL(컬럼, 'SYSDATE') -> 컬럼 값이 없을 경우 SYSDATE를 반환 2. NVL2 함수 : NULL이 아닐경우 sungeune97.tistory.com DECODE는 조건이 많아지면 가독성이 떨어지기 때문에 조건이 복잡한 경우 CASE WHEN을 사용하는게 좋다. DECODE .. 2021. 6. 4.
[Oracle] 전년도 현재 년도에 복사, INSERT - SELECT문 , SELECT한 결과를 INSERT INSERT INTO TRACK_MAS (CURR_YEAR, BS_POINT, BE_POINT, KS_POINT, KE_POINT, DS_POINT, DE_POINT , DUPL_RATE, UDATE, UUSER)-- 아래 SELECT구문을 INSERT하겠다SELECT '2021' AS CURR_YEAR -- 하드코딩 값 , BS_POINT , BE_POINT , KS_POINT , KE_POINT , DS_POINT , DE_POINT , DUPL_RATE , SYSDATE AS UDATE , 'se.shin' AS UUSER FROM TRACK_MASWHERE CURR_YEAR = '2020' --.. 2021. 5. 27.
[MSSQL] [Oracle] 문자열 합치기 / ORACLE LISTAGG / MSSQL STUFF, XML / CONVERT로 형변환 [목표 ]Oracle, Mssql에서 다중 행 데이터를 한 행에 나열해 출력MSSQL 먼저 설명, ORACLE만 보고 싶다면 아래로 스크롤..  다중 행의 데이터를 쉼표(,) 와 같은 구분자를 사용해서 한 행에 출력하고 싶을때가 있다. FILE_ID1file1, file2, file3, file4, file5  TYPE과 같은 컬럼 기준, GROUP별로 합치는 경우도 있다. TYPEFILE_ID1Afile1, file22Bfile33Cfile4, file5  실제 실무에서 사용하게 됐던 경우는,1개의 게시글에 멀티 file이 저장되어 있을 때 게시글 별 첨부파일 아이디들을 불러와야 했을때다.(Group By)(문제는  각 하나의 행으로 구성된 file_id 들을 한 행에 쉼표 등 구분기호로 나열한 형태로.. 2021. 3. 19.