본문 바로가기

오라클/테이블

테이블 병합 -- 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).. 더보기
서브쿼리를 이용한 여러개의 행에 데이터 추가하기 -- 서브쿼리를 이용하여 한번에 여러개의 행 추가(테이블이 존재햐아 함) -- 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.. 더보기
CREATE TABLE 테이블 생성하기, 테이블 이름변경 -- 간단한 테이블 작성CREATE TABLE 테이블명( 컬럼명 자료형(폭) ,컬럼명 자료형(폭)); --동일 사용자에서 객체명은 중복되어 질 수 없다(테이블며, 뷰명, 제약조건명등)--테이블에서 컬럼의 순서는 무의미하다.--테이블에 존재하는 레코드(자료)의 순서는 의미가 없다. SELECT 할 떄의 순서가 중요EX )CREATE TABLE test1( id VARCHAR2(10) ,name VARCHAR2(20) ,age NUMBER(3) ,tel VARCHAR2(25)); --테이블의 이름 변경(테이블, 뷰, 시쿼스, 시너님등의 이름 변경도 동일)RENAME 기존이름 TO 바꿀이름RENAME test1 TO exam1; 더보기
오라클 테이블 목록과 스키마(구조) 확인하기 --작성된 테이블 목록 확인SELECT * FROM tab; -- tabs보다 간단하게SELECT * FROM tabs;SELECT * FROM 테이블명; --해당테이블의 목록화인 --테이블의 구조 확인(스키마) -- 모든 테이블의 구조가 나온다SELECT * FROM col;SELECT * FROM cols;SELECT * FROM user_tab_columns; -- 약자가 cols. --테이블 스키마(구조) 출력SELECT * FROM col WHERE tname='테이블명'; --간단히 출력SELECT * FROM cols WHERE table name='테이블명';SELECT * FROM user_tab_columns WHERE table_name='테이블명';EX )SELECT * FROM C.. 더보기