본문 바로가기

오라클/테이블

테이블에 데이터 추가

-- 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 한번에 하나의 테이블만 추가 할 수있다.


--오라클은 기본적으로 트랜젝션(하나의 작업단위)이 완료 되지 않기 때문에 

  -- INSERT, UPDATE, DELETE 문 다음에는

      COMMIT;   --트랜젝션완료으로 트렌젝션을 완료해야한다.

      ROLLBCK;  --트렌젝션 취소(INSERT, UPDATE, DELETE 문이 최소됨)

  

INSERT INTO test1 VALUES (1,'홍길동','2000-10-10','테스트','2013-05-30');

  --테이블명 다음에 컬럼명을 기술하지 않으면 테이블작성당시 컬럼 순서로 모든 값을 넣어야함

  

INSERT INTO test1 VALUES (2,'이이이','2000-08-10'); --에러 

  -- 컬럼갯수와 값의 갯수가 틀림


INSERT INTO test1  (num, name,birth) VALUES(2,'이이이','2000-08-10');

  --memo는 null, created는 default에 의해 오늘날짜 추가


INSERT INTO test1  (num, name,birth) VALUES(2,'이이이','2010-10-10'); --에러

  --num은 기본키로 중복을 허용하지 않는다


INSERT INTO test1  (num, name,birth) VALUES(3,'이이이','연습중'); --에러

  --birth는 not null 제약조건으로 반드시 값을 가져야 한다.

  

INSERT INTO test1  (num, name,birth) VALUES(3,'이이이','10/10/2010');

  -- 문자열은 날짜형식으로 변경불가능

  

INSERT INTO test1 (num, name, birth)VALUES (3,'이이이', TO_DATE('10/10/2010','MM/DD/YYYY'));

SELECT * FROM test1;

  -- 문자열을 날짜형식으로 바꾸고 싶다면 TO_DATE를 사용하라!!

  

INSERT INTO test1 VALUES(4,'기기기','2010-10-10',null, default);


INSERT INTO test1 (num, name,memo, birth, created)

  VALUES (5,'호호호', '점심','2000-10-10',SYSDATE);


COMMIT;