본문 바로가기

오라클

테이블 병합 -- MERGE : 병합병합을 확인하기 위한 테이블 작성CREATE TABLE test1( id NUMBER PRIMARY KEY ,name VARCHAR2(20) ,pay NUMBER ,sudang NUMBER); CREATE TABLE test2( id NUMBER PRIMARY KEY ,sudang NUMBER); INSERT INTO test1(id,name,pay,sudang) VALUES(1,'a',100,10);INSERT INTO test1(id,name,pay,sudang) VALUES(2,'b',200,20);INSERT INTO test1(id,name,pay,sudang) VALUES(3,'c',300,30); INSERT INTO test2(id,sudang) VALUES(2,5).. 더보기
데이터 삭제 -- 삭제-- DELETE [FROM] 테이블명 [WHERE 조건] -- 한번에 하나의 테이블만 삭제 가능하다. -- 조건을 주지 않으면 다 지워진다. -- COMMIT을 해야 트렌젝션이 완료 된다. -- 모든 데이터 삭제DELETE FROM test2; --조건에 만족하는 데이터만 삭제DELETE FROM test1 WHERE num=2; --모든 자료를 삭제하는 다른 방법.TRUNCATE TABLE 테이블명; -- DELETE 보다 우수 -- 자동 COMMIT 되므로 ROLLBACK 불가 TRUNCATE TABLE test1; 더보기
데이터 수정하기 -- 수정 -- UPDATE 테이블명 SET 컬럼=값, 컬럼=값 WHERE 조건; -- 주의 : 조건을 사용하지 않으면 모든 데이터가 수정됨. 하나의 테이블만 수정 가능하다. -- 무조건 조건을 사용해준다고 생각하면 된다. UPDATE test1 SET name='자바', birth='2013-01-01' WHERE num=2; UPDATE test1 SET birth='1999-01-01'; --조건을 붙이지 않고 이렇게 수정하면 회사에게 쫓겨난다. 이는 모든 데이터가 다 수정 되어 버림 ㅠㅠ ROLLBACK; --최근 했던 수정취소 --기본키는 NC 속성을 갖지 않기 때문에 수정 가능하다. UPDATE test1 SET num=10 WHERE num=1; COMMIT; SELECT * FROM tes.. 더보기
서브쿼리를 이용한 여러개의 행에 데이터 추가하기 -- 서브쿼리를 이용하여 한번에 여러개의 행 추가(테이블이 존재햐아 함) -- INSERT INTO 테이블명[(컬럼, 컬럼)] subquery;ex ) --insa 테이블의 num, name, buseo의 구조만 복사(insa1 테이블 생성) CREATE TABLE insa1 AS SELECT num, name, buseo FROM insa WHERE 1=0; INSERT INTO insa1 SELECT num, name, buseo FROM insa WHERE buseo='개발부';=> insa테이블에서 num,name,buseo 컬럼의 데이터를 가져온다. buseo가 개발부인 데이터만. INSERT INTO insa1(num,name,buseo) SELECT num, name, buseo FROM i.. 더보기
테이블에 데이터 추가 -- PRIMARY KEY : 기본키. 중복을 허용하지 않는다, null을 허용하지 않는다( 반드시 값을 넣어야함)-- NOT NULL : null을 허용하지 않는다. 쓰지않고 생략하면 null 허용-- DEFAULT : 값을 넣지 않을 경우 디폴트값 저장 ex )CREATE TABLE test1( num NUMBER(7) PRIMARY KEY ,name VARCHAR2(20) NOT NULL ,birth DATE NOT NULL ,memo VARCHAR2(100) ,created DATE DEFAULT SYSDATE); 테이블에 데이터 추가--INSERT INTO 테이블명 [(컬러명, 컬럼명)] VALUES(값, 값); 주의 : 한번에 하나의 행만 추가 할 수있다. or 한번에 하나의 테이블만 추가 할.. 더보기
테이블 삭제 --테이블 삭제DROP TABLE 테이블명 [CASCADE CONSTRAINTS][PURGE];ex )INSA1 테이블 삭제DROP TABLE insa1; --테이블을 실제로 지우는 것이 아니라 휴지통에 버림 --휴지통 정보 확인SELECT * FROM recyclebin; --휴지통내에 존재하는 테이블 내용 확인SELECT * FROM "OBJECT_NAME의값" => 오브젝트 네임은 휴지통 정보확인으로 확인하여야 한다. --휴지통내의 테이블 복원FLASHBACK TABLE 삭제당시테이블이름 TO BEFORE DROP; -- 같은 이름으로 여러개가 있을 수 있으므로 아래 명령을 사용하는 것이 좋다FLASHBACK TABLE 휴지통의 OBJECT_NAME의값 TO BEFORE DROP;ex )FLASHB.. 더보기
테이블 복사하여 새로운 테이블 작성하기 --기존 테이블을 이용하여 새로운 테이블 작성 --CREATE TABLE 새로운테이블명[(컬러명,컬럼명)] AS subquery; ex ) insa 테이블의 내용중 num, name, ssn에서 생일, baiscpay, sudang, basicpay + sudang 만 복사하여 새로운 테이블 작성CREATE TABLE insa1 AS SELECT num, name, TO_DATE(SUBSTR(ssn,1,6),'RRMMDD') birth, basicpay,sudang, basicpay+sudang pay FROM insa; --주의 : 연산식은 반드시 별명이 필요함 EX) basicpay+sudang pay --테이블의 구조만 복사(제약조건은 복사되지 않는다.) => 내용은 복사되지 않는다CREATE TA.. 더보기
테이블에 컬럼 추가,컬럼폭 및 타입변경,컬럼이름수정,컬럼삭제 --존재하는 테이블에 컬럼을 추가ALTER TABLE 테이블명 ADD (컬럼명 타입, 컬러명 타입);ex )ALTER TABLE test1 ADD(birth DATE, memo VARCHAR2(100));SELECT * FROM col WHERE tname='TEST1'; --테이블의 컬럼폭 및 타입변경 -- ALTER TABLE 테이블명 MODIFY(컬럼명 타입(폭), 컬러명 타입(폭)); ex )ALTER TABLE test1 MODIFY(MEMO VARCHAR2(4000));SELECT * FROM col WHERE tname='TEST1'; --테이블의 컬럼의 이름 변경 --ALTER TABLE 테이블명 RENAME COLUMN 옛이름 TO 새이름;ex )ALTER TABLE test1 RENAM.. 더보기