02.Oracle/DataBase2008. 9. 25. 14:38
반응형

접속

접속명령

conn 아이디/비밀번호 as 접속권한

conn 아이디 as 접속권한

conn / as 접속권한 (익명 접속도 가능)

 

접속 해제 명령

disconn

 

오라클 서버에 접속시 관리자 계정(system)으로 접속하려면 'as sysdba' 사용

 

접속포트 바꾸기

exec dbms_xdb.sethttpport(9090);

 

 

시스템 기본 테이블 스페이스 조회

msSQL과는 달리 DB의 개념이 없고 비슷하게 테이블 스페이스라는 것이 있다.

select tablespace_name, status

from dba_tablespaces

order by tablespace_name

 

 

오라클 사용자 계정 만들기

  1. 테이블 스페이스 생성
    [이름] => TS_lazy
    [경로] => D:\java\TS_lazy.dbf
    create tablespace TS_lazy
    datafile 'D:\java\TS_lazy.dbf' size 10M
    default storage
    (initial 128k next 64k pctincrease 10);
  2. 사용자 계정 생성에 테이블 스페이스 지정
    [아이디] => lazy
    [비밀번호] => 302
    create user [아이디] identified by [비밀번호]
    default tablespace TS_lazy
    temporary tablespace temp
    사용자 보기 : select username, user_id from dba_users;
  3. 사용자 권한 부여
    grant connect, resource to [아이디]

 

데이터베이스와 일반 데이터의 차이

  1. 데이터에 보안을 적용하기가 쉽다.
  2. 데이터의 중복을 막을 수 있고 자료의 일관성을 유지할 수 있다.

 

 

데이터베이스 종류

  1. 관계형(R) 데이터 베이스 : MySQL, MS-SQL, Oracle9i, 10g

 

 

테이블 구조

2차원 배열의 형태로 구성

테이블을 구성하는 최소 단위 - item

item이 어러개 모이면 - 필드

필드가 어러개 모이면 - 레코드

레코드가 여러개 모이면 - 테이블

 

 

SQL 명령문 종류

  1. DDL : 데이터 정의 ( create, drop, alter )
  2. DML : 데이터 조작 ( select, update, insert, delete )
  3. DCL : 데이터 제어 ( grant, revoke, rollback, commit )

 

 

 

ORACLE 자료형

-- char : 문자형 (고정길이) max : 2000 byte
-- nchar : 문자형 (고정길이), 유니코드 지원,  max : 2000 byte
-- varchar2 : 문자형 (가변길이) max : 2000 byte
-- nvarchar2 : 문자형 (가변길이) 유니코드 지원, max : 2000 byte
-- date : 날짜형, 형식 지정자로 변환가능, max : 7 byte
-- number : 숫자(정수, 실수)형, max : 37자리까지 정수, 실수 표현가능
-- number(n) : 최대 n byte 정수
-- number(n, m) : n - 소수점 제외자릿수, m - 소수점 이하 자릿수

-- 대용량 데이터 저장용 자료형
-- long : 문자/바이너리 저장용, max : 2 byte
-- 테이블에 단 한번만 사용 가능
-- clob : 문자 저장용, max : 4 Gbyte
-- blob : 바이너리 저장용,  max : 4 Gbyte
-- 데이터 저장 / 출력시 특수한 변환과정 필요 

 

 

저장 프로시저 ( store procedure )

  1. 기본문법
  2. create procedure [저장프로시져 이름] (
  3. -- create or replace procedure [저장프로시져 이름] : 저장과 수정을 동시에 함.
  4. < 매개변수 목록 >

  5. ) is
  6. begin
  7. <프로시져 본문>

  8. end [저장프로시져 이름]

< 매개변수 목록 > : 프로그램 실행시 필요한 데이터를 받을 경우 사용

변수명   in/out   <자료형>

 

< 프로시져 지역변수 > : 프로시져 안에서만 사용

변수명   <자료형>

 

< 프로시져 수식 >

문자연결 연산자 : ||

대입 연산자 :       :=

 

  1. CREATE OR REPLACE PROCEDURE savesungjuk2(
  2.      iname IN sungjuk.names%TYPE, -- 매개변수
  3.   ikor IN sungjuk.kor%TYPE,
  4.   ieng IN sungjuk.eng%TYPE,
  5.   imat IN sungjuk.mat%TYPE
  6. ) IS
  7.   itot sungjuk.tot%TYPE;   -- 지역변수
  8.   iavg sungjuk.avgs%TYPE;
  9.   igrd sungjuk.grd%TYPE;
  10. BEGIN
  11.   itot := ikor + ieng + imat;
  12.   iavg := itot/3;
  13.   IF(iavg > 89) THEN
  14.     igrd := 'A';
  15.   ELSIF(iavg > 79) THEN
  16.      igrd := 'B';
  17.    ELSIF(iavg > 69) THEN
  18.         igrd := 'C';
  19.    ELSIF(iavg > 59) THEN
  20.        igrd := 'D';
  21.    ELSE
  22.        igrd := 'F';
  23.   END IF;
  24.  

     

  25.   INSERT INTO sungjuk VALUES(sjseq.NEXTVAL, iname, ikor, ieng, imat, itot, iavg, igrd, SYSDATE);
  26. END savesungjuk2;
  27. EXECUTE savesungjuk2 ('lazy5', 50, 60, 99);
  28. SELECT * FROM SUNGJUK

 

  1. CREATE OR REPLACE PROCEDURE listBoard(
  2.            rs OUT       SYS_REFCURSOR      -- 결과값 저장 변수
  3. ) IS
  4. BEGIN
  5.          OPEN rs FOR
  6.                   SELECT bno, subject, id, rdate, reads FROM BOARD;
  7. END listBoard;

 

  1. CREATE OR REPLACE PROCEDURE viewBoard(
  2.            ibno         IN              board.bno%TYPE,
  3.            rs           OUT     sys_refcursor
  4. ) IS
  5. BEGIN
  6.          OPEN rs FOR
  7.          SELECT * FROM board WHERE bno = ibno;
  8. END;
Posted by 1010