< '워크시트' 생성하는 방법 >

메뉴 : 도구 – SQL 워크시트 – 'dbtest계정' 선택 – 확인

DDL – Data Definition Language

-- 테이블 생성(create) :  [ board_test ]
create table board_test(
bno number primary key,
subject varchar2(20) not null, -- varchar2(20)  =>  20 byte
content varchar2(20CHAR) not null, -- varchar2(20CHAR)  =>  20 char
writer varchar2(20) default 'guest'
);

-- 컬럼명 변경(alter / rename) :  [ subject -> title ]
alter table board_test 
rename column subject to title;

-- 컬럼 추가(alter / add) :  [ read_count / created_date ]
alter table board_test
add read_count number default 0;

alter table board_test
add created_date varchar2(20) not null;

-- 데이터 타입 변경(alter / modify) :  [ created_date : varchar2(20) -> 'timestamp' ]
alter table board_test
modify created_date timestamp;

-- 데이터 삽입(insert into / values)
insert into board_test
values(seq_bno.nextval, 'test', 'test', '작성자', 0, sysdate);

select * from board_test;

insert into board_test
values(seq_bno.nextval, '1234567890', 'test', '작성자', 0, sysdate);

select * from board_test;

insert into board_test
values(seq_bno.nextval, '가나다라마바사아자', 'test', '작성자', 0, sysdate); /* 에러 발생 : title - varchar2(20)의 허용 범위 초과
							                                                                             - title의 최대 허용 byte : 20 byte
							                                                                             - 한글 1글자당 : 3 byte -> 9글자이므로, 27 byte */
select * from board_test;

-- 데이터 크기 변경(alter / modify) :  [ content : varchar2(20CHAR) -> 'varchar2(10CHAR)' ]
alter table board_test
modify content varchar2(10CHAR);

insert into board_test
values(seq_bno.nextval, '가나다라마바', '가나다라마바사아자차카', '작성자', 0, sysdate); /* 에러 발생 : content - varchar2(10CHAR)의 허용 범위 초과
				                                                                                               - content의 최대 허용 char : 10 char
										                                                                                   - 한글 1글자당 : 1 char -> 11글자이므로, 11 char */
select * from board_test;

-- truncate : '데이터 정보'만 삭제  
truncate table board_test;

select * from board_test;

-- drop : '테이블 자체'를 제거
drop table board_test;