본문 바로가기
2015 IT 웹 기반 개발자과정/SQL

SQL 기초 [DDL , DML]

by 한여름밤의코딩 2015. 11. 18.

--	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;


'2015 IT 웹 기반 개발자과정 > SQL' 카테고리의 다른 글

SQL JOIN 예제  (0) 2015.11.23
SQL 기초 정리  (0) 2015.11.21
SQL 입사달별 인원조회, 커미션별 인원조회 [GROUP BY]  (0) 2015.11.20
SQL SELECT 실습  (0) 2015.11.19