[Oracle] table create, insert, select, update, delete ( CRUD )

oracle 이번에는 oracle에서 table을 생성 후 해당 테이블에 insert, select, update, delete 하는 명령을 수행하여 보도록 하겠습니다.

테이블 명세

  • 테이블 명 : board
  • 컬럼 : idx, writer, subject, content, reg_date
    컬럼명 데이터 타입 길이
    idx int 11
    writer varchar 255
    subject varchar 255
    content clob 최대 2GB
    reg_date timestamp

command line 실행

oracle-install-confirm-1

 

grant (권한부여)

-- 권한 관련 명령어
grant connect to <user>;
grant create table to <user>;
grant create sequence to <user>;
grant create trigger to <user>;
grant select,insert,update,delete on <user1>.<table> to <user2>;


-- 필자의 경우 user를 system으로 사용하였습니다.
-- create 권한 부여
grant connect to system;
grant create table,
      create sequence,
      create trigger to system;

create table (테이블 생성)

CREATE TABLE board (
  idx int,
  writer varchar(255),
  subject varchar(255),
  content clob,
  reg_date timestamp,
  primary key (idx)
);
-- primary key (idx) => idx은 유니크한 값을 갖는다. 다른 값과 겹치면 안 된다.

 

CRUD 권한 부여

-- CRUD 권한 부여
grant select on sys.board to system;
grant insert on sys.board to system;
grant update on sys.board to system;
grant delete on sys.board to system;

-- 다음과 같이 한 줄로 써도 됩니다.
grant select, insert, update, delete on sys.board to system;

 

insert (추가)

-- 기본적인 insert 명령어
-- insert into 테이블명 (컬럼1,컬림2, ... ) values (값1, 값2, ... )
INSERT INTO board (idx, writer, subject, content, reg_date)
VALUES (2, '작성자', '제목2', '내용2', sysdate);

-- 테이블 내의 모든 컬럼을 사용할 경우
-- 현재 board 테이블의 경우 idx, writer, subject, content, reg_date 순으로 되어있음
INSERT INTO board VALUES (2, '작성자', '제목', '내용', sysdate);

-- 부분적으로만 추가할 경우
INSERT INTO board (idx, subject) VALUES (3, '제목 2');

-- idx는 primary key 이므로 겹치는 값을 넣으면 오류가 발생한다.

 

select (선택)

-- board의 모든 데이터를 조회한다.
SELECT * FROM board;

-- board의 모든 데이터(튜플)에서 idx, writer 컬럼만 확인한다.
SELECT idx, writer FROM board;

-- idx = 1인 데이터(튜플)를 조회한다.
SELECT * FROM board WHERE idx = 1;

-- idx < 2인 데이터(튜플)를 조회한다.
SELECT * FROM board WHERE idx < 2;

-- IDX < 2인 데이터(튜플)에서 idx, writer 컬럼만 확인한다.
SELECT idx, writer FROM board where idx < 2;

-- 데이터(튜플) 갯수를 확인한다.
SELECT COUNT(*) FROM board;

-- idx > 2를 만족하는 데이터(튜플) 갯수를 확인한다.
SELECT COUNT(*) FROM board where idx > 2;

 

UPDATE (수정)

-- 다음과 같이 할 경우 모든 데이터(튜플)이 수정된다.
UPDATE board SET
subject = '제목 수정',
content = '내용 수정'

-- idx = 1 을 만족하는 데이터(튜플)만 수정한다.
UPDATE board SET
subject = '제목 수정',
content = '내용 수정'
where idx = 1;

-- idx > 2 를 만족하는 데이터(튜플)만 수정한다.
UPDATE board SET
subject = '제목 수정',
content = '내용 수정'
where idx > 2;

 

delete (삭제)

-- 다음과 같이 할 경우 모든 데이터(튜플)가 삭제된다.
DELETE FROM board;

-- idx = 1인 데이터를 삭제한다.
DELETE FROM board;

-- idx > 2를 만족하는 데이터를 삭제한다.
DELETE FROM board WHERE idx > 2;

해당 내용을 command line에서 실행하여 결과를 확인해볼 수 있습니다.