오늘의 요약
< 오라클 11g >
[ PART 1 - 설치 및 접근법 ]
1. 오라클 설치(11g)
(1) 디렉토리 이름이 '한글'이면 X
1) Oracle 설치파일이 존재하는 경로에 한글X
2) Oracle 설치경로에 한글X
(2) 디렉토리에 '공백'이 있으면 X
1) Oracle 설치 파일이 존재하는 경로에 공백X
2) Oracle 설치 경로에 공백X
(3) Windows 계정이 한글 이름이면 X
(4) 설치시에 에러 해결 방법
1) OS부터 밀고 다시 설치
2) Oracle 를 다시 설치
<1> 제어판 -> 프로그램 추가제거 -> 관련 프로그램 제거
<2> 관리도구 -> 서비스 -> 오라클 관련 서비스들을 정지
<3> Oracle 설치 디렉토리를 삭제
(만약, 삭제 안되면 '안전모드'에서 삭제 )
<4> 시작 -> 모든 프로그램에서 -> Oracle관련 메뉴 삭제
<5> 실행 -> regedit -> oracle관련 파일을 모두 제거
<6> 다시 설치
2. 오라클 접근법
(1) sqlplus 이용법
ex) 실행 -> sqlplus scott/tiger
(2) utility application 이용법 ( local / remote 관리 )
1) sqlgate
2) toad
3) orange
4) SQL Developer
..........
[ PART 2 - ORACLE 개요 ]
1. DBMS ( DataBase Management System )의 개념
(1) DB ( DataBase )
- 지속적으로 유지 관리해야 할 '데이터의 집합'
(2) DBMS
- DB를 효율적으로 '관리'하고, 효율적으로 '저장'하고
'검색'할 수 있는 환경을 제공해 주는 '시스템 소프트웨어'
( ex: Oracle, Ms-sql, MySql, Db2, 사이베이스, ... )
2. DBMS 역사
(1) 1960 : File System
(2) 1970 : Network-DBMS
(3) 1980 : 관계형-DBMS ( RDBMS )
(4) 1990 : 관계형-DBMS, 객체관계형( ORDBMS )
(5) 2000 : 관계형/객체관계형/객체지향
ex) oracle 6.X, 7.X -> 관계형
oracle 8.X, 11.X -> 객체관계형
3. 데이터베이스 설계
실세계(업무분석) -> '개'념적 모델링 -> '논'리적 모델링 -> '물'리적 모델링 -> SQL작성
( 'Entity'와 'Attribute') ( ERD 생성 ) ( 구체적인 DBMS 결정 )
4. SQL ( Structured Query Language )
5. 기본 사용자 계정
(1) SYS
오라클 'super' 사용자 ID이며, 데이터베이스에서 발생하는
'모든 문제'를 처리할 수 있는 권한
(2) SYSTEM
SYS과 같은데, 차이는 데이터베이스를 생성할 수 있는 권한이 없음
(3) SCOTT
처음 오라클을 사용하는 user들을 위한 SAMPLE 계정이며,
일반적으로 프로그램을 작성할 때 사용되는 수준의
권한( for Developer )을 가진 계정이다.
6. 주요 용어
(1) TABLE
관계형 DBMS에서 기본 데이터 저장 구조로써 'Entity(실체)'의
집합 저장소 ( ex: DEPT, EMP, SALGRADE, BONUS, ... )
(2) ROW
테이블의 행 ( 하나의 유효한 데이터 ) 즉, Entity(실체)
(ex : 10 ACCOUNTING NEW YORK )
(3) COLUMN
테이블의 열명 ( Attibute 가 COLUMN이 됨 )
(ex : DEPTNO, DNAME, LOC )
(4) PRIMARY-KEY
테이블에서 각 ROW를 유일하게 구분하는 COLUMN 에
부여되는 '제약조건( Constraint )'
(ex: PK_DEPT )
(5) FOREIGN-KEY ( == 참조키, 외래키 )
다른 테이블의 COLUMN값을 참조하는 테이블의 COLUMN에
부여되는 '제약조건' [ cf) 참조 무결성 ]
(ex: FK_DEPTNO )
(6) FIELD
테이블에서 ROW와 COLUMN이 교차하는 데이터
(ex: DEPT에서 'SALES' )
(7) NULL
데이터가 존재하지 않는 FIELD
ex) scott 계정의 table
- DEPT : 부서 테이블
- EMP : 사원 테이블
7. SQL의 구분
(1) DQL( Data Query Language ) (*****)
-> 테이블의 데이터를 '조회'할 때
( ex: select~ )
(2) DML( Data Manipulation Language )
-> 테이블의 '입력', '수정', '삭제'할 때
( ex: insert~, update~, delete~ )
(3) DDL ( Data Definition Language )
-> 객체들을 생성, 변경, 삭제 등을 할 때
( ex: create~, alter~, drop~, ... )
(4) TCL ( Transaction Control Language )
-> DML문을 DB에 저장 or 취소할 때
( ex: commit, rollback, savepoint~ )
cf) Transaction: 분리되어서는 안될 (논리적인) '작업 단위'
(5) DCL ( Data Control Language )
-> DB 계정에게 권한을 '부여'or '취소'할 때
( ex: grant~ , revoke~ )
8. PL-SQL
제어문(조건문, 반복문)이 들어있는 SQL로써 오라클 DBMS에서 지원하는 확장된 SQL
(1) Stored Procedure (***)
-> 일련의 작업처리순서를 정의해 놓은 것으로
미리 DBMS에 컴파일되어져있어 프로그램 or 사용자로부터
호출되면 실행되는 일종의 '작업처리순서'
(2) Anonymous Procedure
-> Stored Procedure 와의 차이점은 'DBMS에 자동으로 포함'되어
내부적으로 호출되는 프로시져
(3) Stored Function
-> 프로시져와 차이점은 'return값'이 존재해야 함
(4) Trigger (***)
-> 어떤 조건에 만족되어지는 상황(DML)이 발생되면
자동으로 호출되어 작동되는 로직
(5) Package
-> 위의 것들을 기능별로 묶어놓은 꾸러미
[ PART 3 - SQL ]
1. DQL
(1) 기본
SQL> select * from tab;
SQL> select TABLE_NAME from user_tables;
SQL> desc dept
SQL> select DNAME, LOC from DEPT;
SQL> select * from DEPT;
(2) all / distinct
SQL> select JOB from EMP;
SQL> select all JOB from EMP;
SQL> select distinct JOB from EMP;
(3) order by
SQL> select EMPNO, SAL from EMP;
SQL> select EMPNO, SAL from EMP order by SAL;
SQL> select EMPNO, SAL from EMP order by SAL desc;
SQL> select EMPNO, SAL from EMP order by SAL desc, EMPNO;
SQL> select EMPNO, COMM from EMP order by COMM;
SQL> select EMPNO, COMM from EMP order by COMM desc;
SQL> select EMPNO, COMM from EMP where COMM is not null;
SQL> select EMPNO, COMM from EMP where COMM is not null order by COMM desc;
SQL> select JOB, SAL from EMP order by JOB, SAL desc;
(4) ALIAS
SQL> select JOB "직업", SAL "급여" from EMP;
SQL> select JOB as "직업", SAL as "급여" from EMP;
SQL> select JOB 직업, SAL 급여 from EMP;
SQL> select JOB 직업, SAL "1234" from EMP;
SQL> select JOB 직업, SAL "!@#$" from EMP;
cf) 숫자 or 특수문자 or 공백포함 되면 ""로 묶어줘야 함
(5) where
SQL> select EMPNO, DEPTNO from EMP where DEPTNO=20;
select DEPTNO, SAL, EMPNO from EMP where DEPTNO=30 order by SAL desc;
select EMPNO, ENAME, HIREDATE, DEPTNO from EMP
where HIREDATE>='81/12/03'
order by EMPNO desc;
select EMPNO, ENAME, HIREDATE, DEPTNO from EMP
where HIREDATE>='81/12/03' and DEPTNO=20
order by EMPNO desc;
(6) 연산자( Operator )
1) 산술연산자( *, /, +, - )
SQL> select EMPNO, SAL*1.1 from EMP where DEPTNO=30;
SQL> select ENAME, SAL, COMM from EMP where DEPTNO=30;
SQL> select ENAME, SAL, NVL(COMM,0) from EMP where DEPTNO=30;
SQL> select ENAME, SAL*2+NVL(COMM,0)/2 "연말보너스" from EMP
where DEPTNO=30 order by "연말보너스" desc;
2) 비교연산자 ( =, != , >, >=, <, <= )
SQL> select ENAME, SAL from EMP where SAL=950;
SQL> select ENAME, SAL from EMP where SAL>=3000;
SQL> select ENAME, SAL, DEPTNO from EMP where DEPTNO!=30
order by DEPTNO, SAL desc, ENAME;
3) 논리연산자 ( and(곱), or(합), not )
SQL> select ENAME, SAL, DEPTNO from EMP where DEPTNO=20 and SAL>=3000;
SQL> select ENAME, JOB, DEPTNO from EMP where DEPTNO=30 and JOB='SALESMAN';
SQL> select EMPNO, SAL from EMP where SAL<1000 or SAL>=4000;
SQL> select EMPNO, SAL from EMP where not (SAL<1000 or SAL>=4000);
cf1) 사원(EMP) 컬럼
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
DEPTNO
cf2) 부서(DEPT) 컬럼
DEPTNO
DNAME
LOC
Oracle 설치방법
- 개인적인 방법으로 Oracle 11g를 구해온 뒤,
setup.exe
를 열고 실행해준다.
- 콘솔창도 잠깐 뜬 다음에, 여러 창이 뜨고 난 뒤에 하단 창이 뜨면 그냥
예
라고 눌러준다.
- 이메일 보안갱신 수신 체크 해제해준다. 체크 해제하면 이것도 알림 받지 않는다고 해준다.
- 데이터베이스 생성 및 구성에 체크해준다.
- 데스크톱 클래스에 체크해준다.
- D보다는 C에 설치해주는게 나중에 포맷할때나 여러모로 좋으므로 C드라이브로 선택해주고, 전역 데이터베이스 이름을 JAVA로 설정해주고 관리 비밀번호도 입력해준다.
- 다음 창이 뜨면 모두 완료 눌러주고 이 창이 뜨면 비밀번호 관리를 눌러준다.
- 창이 뜨면 HR, SCOTT에 각각 체크 해제를 해준다.
- 다 되면
Win+R
눌러 sqlplus
입력하여 ID:SCOTT
PW:tiger
입력, 입력 후 비밀번호 입력하고 비밀번호 확인도 입력하여 접속 성공되면 끝!
- sqlplus 사용 말고, sqldeveloper 사용하려면 초기 화면은 다음과 같다. 테스트 접속 성공해야 제대로 접속할 수 있다는 것을 잊지말기!