본문 바로가기

전체 글123

[Oracle] 쿼리를 단순하게 (VIEW) 쿼리를 단순하게 (VIEW) - CREATE VIEW ~ AS 보여줄 쿼리 CREATE VIEW tablename_view AS SELECT column1, column2, column3, column4, column5 FROM tablename WHERE column4='KOREA'; : tablename 테이블의 column1~column5을 tablename_view 테이블로 보여줌 - tablename_view 테이블은 tablename 테이블의 일부만 볼 수 있음 = 보안 - view 테이블인 tablename_view를 수정(UPDATE)하면 실제 테이블인 tablename의 데이터가 갱신됨 CREATE VIEW tablename_view AS SELECT column1, ROUND(AVG(c.. 2020. 9. 23.
[Oracle] 임시 테이블 생성 (CREATE TEMPORARY TABLE) 임시 테이블 생성 (CREATE TEMPORAY TABLE) : 데이터를 임시로 보관하는 테이블 생성 - COMMIT, 쎄션 CREATE GLOBAL TEMPORARY TABLE tablename (column1 NUMBER(10), column2 VARCHAR2(20), column3 VARCHAR2(10)) ON COMMIT DELETE ROWS; 임시 테이블 데이터 보관 주기 결정 옵션 - ON COMMIT DELETE ROWS : 임시 테이블에 데이터를 입력하고 COMMIT할 때까지만 보관 - ON COMMIT RESERVE ROWS : 임시 테이블에 데이터를 입력하고 쎄션이 종료될 때까지만 보관 2020. 9. 22.
[Oracle] 일반 테이블 생성 (CREATE TABLE) 일반 테이블 생성 (CREATE TABLE) CREATE TABLE tablename (column1 NUMBER(10), column2 VARCHAR2(200), column3 NUMBER(10,2), column4 DATE); : tablename을 테이블명으로 테이블 생성 테이블명, 컬럼명 지정 규칙 - 문자로 시작 - 이름은 최대 30자 이하 - 대소문자 알파벳, 숫자를 포함할 수 있음 - 특수문자 $, _, # 만 허용 데이터 유형 - CHAR : 고정 길이 문자형, 최대 2000 - VARCHAR2 : 가변 길이 문자형, 최대 4000 - LONG : 가변 길이 문자형 최대 2GB - CLOB : 문자형, 최대 4GB - BLOB : 바이너리형, 최대 4GB - NUMBER : 숫자형, 십진수.. 2020. 9. 22.
[Oracle] 계층형 질의문 - 데이터 서열_가로출력 계층형 질의문 - 데이터 서열_가로출력 SELECT column1, SYS_CONNECT_BY_PATH(column1,'/') as nickname FROM TABLE START WITH column1 = 'KOREA' CONNECT BY PRIOR column2 = column3; : '/'로 column1을 구분해 연결 출력 - column1 맨 앞에 '/' 출력됨 SELECT column1, LTRIM(SYS_CONNECT_BY_PATH(column1, '/'), '/') as nickname FROM tablename START WITH column1 = 'KOREA' CONNECT BY PRIOR column2 = column3; : '/'로 column1을 구분해 연결 출력 - column1 .. 2020. 9. 22.
[Oracle] 계층형 질의문 - 데이터 서열 (순서 - 정렬) 계층형 질의문 - 데이터 서열 (순서 - 정렬) SELECT RPAD('', level*3) || column1 as nickname, column2, column3, column4 FROM tablename START WITH column1='KOREA' CONNECT BY PRIOR column5 = column6 ORDER SIBLINGS BY column3 DESC; : 서열 순서를 유지하면서 column3가 큰 것부터 내림차순 출력 * SIBLINGS : 계층형 질의문의 서열 순서를 유지해줌. 사용하지 않을 경우 column3가 높은 순서대로만 출력됨 SELECT RPAD('', level*3) || column1 as nickname, column2, column3, column4 FROM t.. 2020. 9. 22.
[Oracle] 계층형 질의문 - 데이터 서열 (순서 - 분기제거) 계층형 질의문 - 데이터 서열 (순서 - 분기제거) SELECT RPAD('', LEVEL*3) || column1 as nickname, column2, column3 FROM table1 START WHITH column1='KOREA' CONNECT BY PRIOR column4 = column5 AND column1 != 'GERMANY'; : 루트노드는 column1이 'KOREA'이고, column4가 부모, column5가 자식노드 일 때 column1,column2,column3의 데이터 서열을 출력하되 column1이 'GERMANY'인 경우는 그 하위까지 제외 2020. 9. 22.
[Oracle] 서브쿼리 - 데이터 입력/수정/삭제/통합 서브쿼리 - 데이터 입력/수정/삭제/통합 데이터 입력 - 여러 행을 한 번에 테이블에 입력 기본 INSERT INTO table1(column1 column2, column3, column4) SELECT column1, column2 column3, column4 FROM table2 WHERE column4=100; : table1에 table2의 데이터를 입력 - INSERT INTO table () VALUES (); 문에서 VALUES를 서브쿼리로 대체. - table1의 COLUMN 순서대로 입력 * 테이블 구조만 복사 CREATE TABLE newtable as SELECT * FROM oldtable WHERE 1=2; 데이터 수정 기본 UPDATE table1 SET column1 = (.. 2020. 9. 18.
[Oracle] 한번에 데이터 입력, 수정, 삭제 (MERGE) 한번에 데이터 입력, 수정, 삭제 (MERGE) MERGE INTO table1 t1 USING table2 t2 ON (t1.column1=t2.column1) --JOIN WHEN MATCHED THEN --MERGE UPDATE절 (JOIN 되면 실행) UPDATE SET t1.column2=t2.column2 WHEN NOT MATCHED THEN --MERGE INSERT절 (JOIN 안되면 실행) INSERT (t1.column3, t1.column1, t1.column2) VALUES (10, t2.column1, t2.column2); : t1.column1과 t2.column1이 같다면, t1.column2에 t2.column2로 수정(UPDATE)하고 그렇지 않으면 t1.column3,.. 2020. 9. 17.
[Oracle] 데이터 저장과 취소 (COMMIT, ROLLBACK) 데이터 저장과 취소 (COMMIT, ROLLBACK) - COMMIT : 저장 - ROLLBACK : 취소 저장 COMMIT; : COMMIT 이전 실행한 DML 작업을 DB에 영구반영 취소 ROLLBACK; : 직전 COMMIT 이후 실행한 DML 작업을 취소 * SAVEPOINT : 특정 지점까지 변경 취소 2020. 9. 17.