본문 바로가기

DBMS/Oracle17

[Oracle] Create / Alter / Drop CREATE : 테이블 생성 구문 CREATE TABLE 테이블명 ; * SELECT한 내용으로 테이블을 생성하고 싶을때 - 예제 ) member 테이블의 모든 데이터를 백업하는 테이블을 만들고 싶다. - 방법 ) SELECT 구문에 대한 데이터로 테이블을 생성한다고 이해하면 된다. - 응용 ) 지금은 SELECT * 이지만, 조건을 주어서 세부정보로 추려내어 추가할 수 있음. CREATE TABLE 테이블명 AS SELECT * FROM MEMBER ; 2020. 12. 18.
[Oracle] 자동 COMMIT, ROLLBACK 처리 오라클에서 테이블과 관련된 (Create , Alter , Delete) 는 자동 commit 됨. 백업을 위해 create문을 실행하는데, 실행도중 insert 같은 작업이 CAD문을 만날경우 insert 된 것이 함께 저장되기 때문에 백업을 미리해야 할 경우 (백업하는 테이블에는 수정된 정보가 담기면 안되겠죠? 원본 데이터가 있어야하는게 백업 테이블 입니당..) 주의해야함 * insert update delete 작업 중 문제가 발생하면, 바로 해결할 수 있으면 상관 없지만 그렇지 않을시 rollback; 으로 취소해준다. CAD는 자동 커밋되기때문에 취소 되지 않고 이전까지의 INSERT UPDATE DELETE문은 취소되니까 문제 해결 후 INSERT UPDATE DELETE문 부터 다시 실행해주.. 2020. 12. 9.
[Oracle] NVL , NVL2, DECODE 1. NVL함수 : NULL일경우 (Oracle 함수 NVL (value,0) -- value가 null 일경우 0을 반환 / 그렇지 않을경우 value값을 반환 ex ) NVL(컬럼, 'SYSDATE') -> 컬럼 값이 없을 경우 SYSDATE를 반환 2. NVL2 함수 : NULL이 아닐경우 NVL2 (expr1, expr2, expr3) -- expr1이 null이 아닌경우 expr2를 반환, -- expr1이 null인 경우 expr3을 반환한다. ex ) SELECT NVL2(ENAME, '있음', '없음') FROM EMP; 3-1. DECODE 함수 : 조건과 결과를 나열하는 방식 DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, else) column -- 컬럼값이 조건1일경우 결과1.. 2020. 12. 9.
[SQL] 중복 제거 / DISTINCT / GROUP BY DISTINCT와 GROUP BY는 뒤에 기술하는 열에 대해 중복을 배제한다는 점에서는 동일한 처리를 한다. 예를 들어 다음 두 구문은 동일한 결과를 출력한다. SELECT DISTINCT goods_classify FROM Goods; SELECT goods_classify FROM Goods GROUP BY goods_classify; 동일 한 것 1. 결과 2. null을 하나의 행으로 간주함 3. 복수 열을 사용하는 결과도 같음 다만, 어떤 것을 사용할지의 고민은 해당구문의 의미에서 찾아서 여부를 결정해야 한다. '선택 결과에서 중복을 제외' 하고 싶다면 DISTINCT '집약한 결과를 구하고 싶다'면 GROUP BY 2020. 11. 23.
[쿼리] 컬럼명 모를때, 테이블명 모를때 1. 컬럼명 모를때 SELECT owner, table_name, column_name FROM all_tab_columns WHERE column_name LIKE '%OP%'; 컬럼이름에 'OP'가 포함된 owner, talbe_name, column_name을 조회해주는 쿼리 2. 테이블명 모를때 컬럼명으로 검색 select TABLE_NAME, COLUMN_NAME from ALL_TAB_COLUMNS where COLUMN_NAME LIKE '%컬럼명%'; 2020. 11. 13.