-- 11g release2 sid : ORCL
-- experss(10g, 11g) sid : XE
-- system / admin
-- scott / tiger
-- hr / hr
-- hr 계정 풀기 && 패스워드 설정
-- 단, 계정을 풀경우는 sqlplus프로그램에서 system계정으로 실행
ALTER USER hr IDENTIFIED BY hr
ACCOUNT UNLOCK;
-- hr 계정이 가지고 있는 모든 테이블 검색
SELECT * FROM tab;
-- 게시판 테이블명 : t_board
-- - 글번호 : no number(5)
-- - 제목 : title varchar2(100)
-- - 내용 : content varchar2(4000)
-- - 조회수 : view_cnt number(5)
-- - 등록일 : reg_date date
CREATE TABLE t_board(
NO NUMBER(5)
, title VARCHAR2(100)
, content VARCHAR2(4000)
, view_cnt NUMBER(5)
, reg_date date
);
describe t_board;
desc t_board;
truncate table t_board;
drop table t_board;
select * from tab;
-- 제약조건을 가지는 게시판 테이블 t_board
-- - 글번호 : no number(5) 반드시존재
-- - 제 목 : title varchar2(100) 반드시존재
-- - 내 용 : content varchar2(2000)
-- - 조회수 : view_cnt number(5) 0으로 세팅
-- - 등록일 : reg_date date 현재날짜로 세팅
-- primary key : not null + unique
-- : 테이블에서 레코드들을 구분하는 구분자 역할
create table t_board(
no number(5) primary key
, title varchar2(100) not null
, content varchar2(2000)
, view_cnt number(5) default 0
, reg_date date default sysdate
);
desc t_board;
rename t_board to board_t;
desc board_t;
rename board_t to t_board;
create table t_test(
col_01 varchar2(10)
, col_02 number(5)
);
alter table t_test
add col_03 varchar2(20);
desc t_test;
alter table t_test
add ( col_04 varchar2(10)
, col_05 number(3)
);
alter table t_test
modify col_04 varchar2(20);
desc t_test;
alter table t_test
drop column col_04;
alter table t_test
rename column col_05 to col_04;
select * from t_board;
-- insert예제
-- 번호 : 1
-- 제목 : 제목1
-- 내용 : 연습입니다
-- 조회수 : 0
-- 등록일 : 현재날짜
insert into t_board(no, title, content, view_cnt, reg_date)
values(1, '제목1', '연습입니다', 0, sysdate);
select * from t_board;
-- insert 예제실습2
-- 번호 : 2
-- 제목 : 제목2
-- 내용 : 테스트입니다
-- 조회수 : 0
-- 등록일 : 현재날짜
insert into t_board(no, title, content)
values(2, '제목2', '테스트입니다');
insert into t_board(title, content, no)
values('제목3', '디폴트값연습', 3);
insert into t_board
values(4, '제목4', '컬럼명 생략', 0, sysdate);
select * from t_board;
update t_board
set view_cnt = 10;
update t_board
set view_cnt = 0
where no = 2;
select * from t_board;
-- 게시판테이블에서
-- 글번호가 1인 레코드에서 제목 : 변경된 제목 수정
update t_board
set title = '변경된 제목'
where no = 1;
-- 게시판테이블에서
-- 글번호가 2인 레코드에서 제목 : 변경된 제목
-- 내용 : 수정된 내용 수정
update t_board
set title = '변경된 제목'
, content = '수정된 내용'
where no = 2;
select * from t_board;
-- 글번호가 3인 데이터 삭제
delete from t_board
where no = 3;
-- t_board의 전체 데이터 삭제
delete t_board;
select *
from t_board;
select title, content
from t_board;
select no as 글번호, title 제목, content as "내 용"
from t_board;
select title 제목, no 글번호, content "내 용"
from t_board;
select no, view_cnt 조회수
from t_board;
-- t_board의 조회수에 1000을 더한 hit조회수 조회
select view_cnt 조회수, view_cnt + 1000 as hit조회수
from t_board;
update t_board
set view_cnt = no + 1;
-- 조회수 3 -> 3번조회
select view_cnt || '번조회' 조회수
from t_board;
-- 오늘은 18일입니다
select '오늘은 ' || 18 || '일입니다' 현재날짜
from dual;
desc employees;
select * from employees;
-- employees 테이블에서
-- King 사원의 사원번호는 100번이고, 연봉은 24000입니다.
-- Kochhar 사원의 사원번호는 101번이고, 연봉은 17000입니다.
-- ...
select last_name || ' 사원의 사원번호는 '
|| employee_id || '번이고, 연봉은 '
|| salary || '입니다.' as 사원정보
from employees;