블로그 이미지
귓가를 스치는 음악소리도 즐길 줄 알자 ^^ Tyamo

카테고리

♥Tyamo♥ (159)
MyLifeStyle (79)
TOEIC (25)
Qualification (17)
Robotics (10)
Programing (4)
Trevel (4)
My Diary (14)
Wish List (5)
Network (0)
Total91,896
Today14
Yesterday20





제1장 관계형 데이터베이스
1. 관계형 데이터베이스의 개념
1.1 관계형 모델의 구성요소
1.2 관계형 데이터베이스 기능
1.3 관계형 데이터베이스의 정리
1.4 관계 데이터베이스에서 사용하는 용어
1.5 다중 테이블 관계
1.6 관계형 데이터베이스의 속성
1.7 SQL문장
2. ORACLE 관계형 데이터베이스 관리 시스템
2.1 완전한 ORACLE 솔루션
3. SQL, SQL*Plus, PL/SQL
3.1 SQL
3.2 SQL*Plus
3.3 PL/SQL(Procedural Language/SQL)
제 2 장 데이터의 검색
1. 기본적인 SELECT문 사용법
1.1 SQL SELECT 문장의 성능
1.2 Syntax
1.3 SQL 문장 작성법
1.4 SQL 문장 실행
1.5 모든 열 선택
1.6 특정 Column 선택
1.7 Column의 출력 형태
1.8 산술 표현식
1.9 Null값의 처리
1.10 NVL 함수
1.11 열에 별칭(Alias) 부여
1.12 연결 연산자
1.13 LITERAL 문자 STRING
1.14 중복 행의 제거
제3장 데이터 제한과 정렬
1. 특정 행의 검색
1.1 Syntax
1.2 WHERE절에 사용되는 연산자
2. ORDER BY절
2.1 Syntax
2.2 데이터의 정렬
2.3 다중 열에 의한 정렬
4장 단일 행 함수
1. SQL 함수
1.1 SQL함수의 특징 및 이점
1.2 단일 행 함수(Single Row Function)
1.3 문자형 함수(Character Function)
1.4 숫자형 함수
1.5 날짜형 함수
1.6 변환 함수
1.7 기타 함수
1.8 중첩 함수
제5장 그룹 함수(Multi Row Function)
1. 그룹 함수
1.1 그룹 함수의 종류
1.2 그룹 함수 사용
1.3 데이터 그룹 생성
제6장 다중 테이블로부터 데이터 검색
1. Join
1.1 Syntax
1.2 Join의 종류
1.3 Cartesian Product
1.4 Equijoin
1.5 NonEquijoin
1.6 Outer Join
1.7 Self Join
1.8 Set Operators
제7장 서브쿼리(SUBQUERY)
1. SUBQUERY
1.1 SUBQUERY의 개념
1.2 Syntax
1.3 SUBQUERY를 사용할 수 있는 절
1.4 SUBQUERY의 유형
1.5 단일 행 SUBQUERY
1.6 다중 행 SUBQUERY
1.7 다중 열 SUBQUERY
1.8 SUBQUERY에서의 NULL값
1.9 FROM절에서의 SUBQUERY
제8장 SQL*Plus 명령어
1 SQL*Plus 명령어
1.1 SQL과 SQL*Plus 의 차이점
1.2 SQL명령 편집 및 실행
1.3 SQL*Plus를 이용하여 보고서 작성
1.4 상호작용 리포트
제9장 테이블(TABLE) 생성
1. 테이블 생성
1.1 ORACLE에서 사용하는 객체
1.2 제약 조건
1.3 테이블 차트에 의한 테이블 생성
1.4 SUBQUERY을 사용한 테이블 생성
1.5 데이터 사전(DATA DICTIONARY) 질의
2. 테이블을 수정
2.1 새로운 열 추가
2.2 열 수정
2.3 제약 조건 추가
2.4 제약 조건 삭제
2.5 제약 조건 비활성화
2.6 제약 조건 활성화
2.7 제약 조건 조회
2.8 객체 이름 변경
2.9 TRUNCATE TABLE문장
2.10 테이블에 주석문 추가
3. 테이블 삭제
3.1 Syntax
제10장 데이터 조작
1. 데이터(DML) 조작어
1.1 INSERT 문장
1.2 UPDATE 문장
1.3 DELETE 문장
1.4 데이터베이스 TRANSACTION
1.5 읽기 일관성
1.6 Locking
제11장 SEQUENCE
1. SEQUENCE
1.1 SEQUENCE 특징
1.2 Syntax
1.3 SEQUENCE 학인
1.4 SEQUENCE 사용법
1.5 SEQUENCE 값 CACHE
1.6 SEQUENCE에서 간격의 경계
1.7 SEQUENCE 수정
1.8 SEQUENCE 제거
제12장 VIEW
1. VIEW의 개념
1.1 VIEW의 장점
1.2 VIEW의 종류
1.3 VIEW의 생성
1.4 VIEW의 구조 및 이름 확인
1.5 데이터 액세스 VIEW
1.6 복합 VIEW 생성
1.7 VIEW에서 DML연산 수행
1.8 WITH CHECK OPTION절 사용
1.9 DML연산 부정
1.10 VIEW의 제거
제13장 인덱스(INDEX)
1. 인덱스(INDEX)의 개요
1.1 인덱스의 특징
1.2 인덱스 생성 방법
1.3 인덱스의 종류
1.4 사용자가 인덱스 생성
1.5 인덱스 생성 확인
1.6 인덱스 제거
2. 동의어
2.1 Syntax
2.2 동의어 삭제
제14장 사용자 접근 제어
1. 사용자 접근 제어
1.1 데이터베이스 보안의 두 범주
1.2 사용자 생성
1.3 권한
1.4 ROLE의 개념
제15장 PL/SQL 개요
1. PL/SQL 개요
1.1 PL/SQL의 장점
1.2 PL/SQL Block 구조
1.3 SQL*Plus로 하는 일
제16장 변수 사용
1. 변수
1.1 변수 사용
1.2 PL/SQL에서 변수 처리
1.3 변수 유형
1.4 PL/SQL 변수 선언
1.5 이름 지정 규칙
1.6 변수의 값 지정
1.7 스칼라 데이터 형
1.8 조합 데이터 형(Composite Datatype)
1.9 LOB Datatype 변수
1.10 바인드 변수
1.11 NonPL/SQL 변수 참조
2. PL/SQL 블록
2.1 PL/SQL 블록 구문과 지침
2.2 데이터형 변환
2.3 중첩 블록과 변수 범위
2.4 PL/SQL에서 연산자
2.5 프로그래밍 지침 사항
제17장 PL/SQL에서 사용 가능 한 SQL문장
1. PL/SQL에서 SQL문장
1.1 PL/SQL에서 SQL문장 사용
1.2 PL/SQL에서 SELECT문장
1.3 PL/SQL을 이용한 데이터 조작
1.4 이름 지정 규약
1.5 COMMIT과 ROLLBACK 문장
1.6 SQL CURSOR
제18장 PL/SQL의 제어 구조
1. 개요
1.1 IF문
1.2 논리적 조건 설정
1.3 LOOP문
1.4 BASIC LOOP문
1.5 EXIT 문
1.6 FOR LOOP문
1.7 WHILE LOOP문
1.8 중첩 LOOP와 레이블
제19장 CURSOR
1. 커서의 개념
1.1 CURSOR의 종류
1.2 명시적 CURSOR의 제어
1.3 DECLARE CURSOR
1.4 OPEN CURSOR
1.5 FETCH CURSOR
1.6 CLOSE CURSOR
1.7 명시적 CURSOR의 속성
1.8 복수 인출(FETCH) 제어
1.9 CURSOR와 RECORD
1.10 CURSOR와 FOR LOOP
1.11 SUBQUERY를 사용한 CURSOR FOR LOOP
제20장 고급 명시적 CURSOR
1. 매개변수와 CURSOR
1.1 Syntax
1.2 FOR UPDATE절
1.3 WHERE CURRENT OF절
1.4 SUBQUERY
제21장 예외처리
1. PL/SQL로 예외 처리
1.1 예외 처리란
1.2 예외를 발생시키는 두 가지 방법
1.3 예외 처리
1.4 예외의 유형
1.5 예외 정의
1.6 미리 정의된 ORACLE SERVER 에러
1.7 미리 정의되지 않은 ORACLE SERVER 에러
1.8 사용자 정의 예외
1.9 예외 트래핑 함수
1.10 RAISE_APPLICATION_ERROR
제22장 BUILD PL/SQL SUBPROGRAMS
1. SUBPROGRAM
1.1 SUBPROGRAM의 개요
1.2 SUBPROGRAM 작성 단계
1.3 PROCEDURE 생성
1.4 FUNCTION 생성
1.5 함수와 프로시저 비교
1.6 TRIGGER
부록A
A. ORACLE DATA DICTIONARY
1. ORACLE DATA DICTIONARY의 내용
2. ORACLE DATA DICTIONARY의 내용 조회
B. 실습용 테이블을 생성하는 SCRIPT
1. 실습용SCRIPT란 ?
2. 실습용 TABLE 생성 절차
3. 실습용 SCRIPT의 내용
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Tyamo
TAG plsql, sql
1장에서는 조건 없이 그냥 선택된 컬럼의 모든 것을 보여 주었다. 하지만 이

를 선택해서 보는 방법을 2장에서 배운다. 이미 학교에서 배운 것들이지만

워낙 재미 없었던 수업이라 기억이 안나는 것이 치명적 ㅡ,.ㅡ ;;;;
 



Limiting Rows Using a selection

select employee_id, last_name, job_id, department_id
from employees
where department_id = 90;

where절을 사용하여 department_id가 90인 사람만 뽑아 내는 SQL문장이다.
The default date dormat is DD-MON-RR(형식구별 필요)

Using the between condition

select last_name, salary
from employees
where salary between 2500 and 3500

2500과 3500사이의 값들이 검색이 된다. 주의 할것은 2500과 3500도 포함이 된다는것
또한 where last_name between 'king' and 'smith' 이것은 아스키 코드값으로 검색한다.

Using the IN condition

select employee_id, last_name, salary, manager_id
from employees
where manager_id in ( 100, 101, 201);

복수의 조건을 걸수 있는 in 조건이다. 100.101.201에 속하는 것들을 출력한다. 물론 문자도
같이 사용할수 있다.

Using the like condition
% denotes zero or many characters.
_ denotes noe character.

select first_name
from employees
where first_name like 'S%';

S로 시작하는 이름을 검색하겠다는 의미이다. 뒤의 문자는 어떤길이여도 상관없음
S_는 S로 시작하는 두글자로된 문자를 검색하는 의미가 된다.

Using the NULL conditions
select last_name, manager_id
from  employees
where manager_id is null

이것은 null인 것을 찾으라는 의미가 된다. 이렇게 사용하는 이유는 앞에서 설명했듯이 manager_id = NULL 이라는것 자체가 넌센스 이기 때문이다. 그래서 오라클에서 제공하는
is null을 이용해서 검색해야 한다.

Logical Conditions
AND - returns true if both component conditions are true
OR - returns true if either component condition is true
NOT - Returns true if the following condition is false

select employee_id, last_name, job_id, salary
from employees
where salary >= 10000 and job_id like '%MAN%';

단순명료하게 두가지 조건에 모두 부합되는 사람을 찾으라는 문장이 된다.
salary는 10000이 넘고 job_id는 MAN이 들어가는 사람을 찾는 문장
모든 논리 조건이 조심해야 되는 것은 NULL값과의 조우시다.
false and NULL 이면 NULL이 아니라 false 가 된다.
이것은 and가 둘중 어느 하나라도 false면 다른 것이 무엇이든 간에 false가 되는 것을 떠올려 보면 어려운 이야기가 아니다 OR도 마찬가지로 생각해 주면된다.

Using NOT Operator

select last_name, job_id
from employees
where job_id
          NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP')

NOT IN 에 들어가 있는 세가지 문자열을 빼고 검색하겠다는 조건이다 NOT은 반대라고 생각하면 되니 이것또한 별다르게 생각할것이 없다

Rules of Precedence
각각의 연산자에는 분명한 우선순위가 존재한다. 즉 여러 연산자를 함께 쓰게 되면 우선 연산 되어야 할 부분에는 괄호를 이용해 명시하는 방법을 사용하는 것이 현명하다.

Using the ORDER BY Clause
-ASC 오름 차순
-DESC 내림 차순

select last_name, job_id, department_id, hire_date
from employees
order by hire_date;

order by 절은 오름 차순과 내림차순으로 정렬해서 볼수 있게 하는 문장이다. 디폴트 값으로 오름 차순을 지원하고 있으며 내림차순으로 보고싶을 때에는 order by hire_date DESC
이렇게 표현하면 내림차순으로 출력해 준다. 이를 우리는 Sorting이라 한다.
또한 order by 절에는 select문에 포함되어 있는 않은 컬럼도 사용할수 있다.

Substitution Variables
치환변수는 where, order by, 컬럼 표현식, 테이블명, select 에 모두 사용할수 있다.

select employee_id, last_name, salary, department_id
from employees
where employee_id = &employee_num;

&를 사용하여 나타내 주게 되면 그 부분에 대한 값을 사용자가 직접 입력해주는 방식으로 사용할수가 있다. 즉 변수를  쿼리 문이 수행되는 도중에 입력해 줄수 있게 해주는 방식이다.

변수값이 문자이거나 날짜 일때에는 싱클 쿼테이션을 사용해 묶어 주어야 실행이 된다.
ex) where job_id = '&job_title'

&&를 사용하면 사용자에게 한번 물어보고 그 값을 저장해 두었다가 다음에 나왔을때 다시 물어보지 않고 전에 입력한 값을 넣어주는 방식이다.

select employee_id, last_name, job_id, &&column_name
from employees
order by &column_name;

이 SQL문장을 실행 시키면 처음에 컬럼의 이름을 물어보고 다음에 &column_name은 물어보지 않고 전에 저장했던 값을 대입해 결과값을 출력해 준다. 이렇게 저장된 값을 바꿔주어야 할때가 올수 있는데 그럴땐 UNDEFINE column_name 해주면 저장되어 있던 정보가 삭제되어 다음에는 다시 물어 보게 된다.

Using the iSQL *Plus DEFINE Command
변수값을 미리 저장해 놓고 나올때 마다 치환변수에 대입시켜주고 싶을때 사용한다.

define employee_num = 200
select employee_id, last_name, salary, department_id
from employees
where employee_id = &employee_num;
undefine employee_num

위의 define 사용예문에서 보면 알수 있듯이 미리 define 문으로 employee_num은 200이라 정의 하고 이를 환경변수에서 사용하는 모습을 볼수 있다. 마치 C언어의 #define 와 같은 기능이라 생각된다.

Using the VERIFY Command

SET VERIFY ON
select employee_id, last_name, salary, deprtment_id
from employees
where employee_id = &employee_num;

환경변수의 사용에 관하여 출력해 주는 명령어다 결과를 보면
old 3: where employee_id = &employee_num
new 3: where employee_id = 200
이렇게 나온다. 예전에는 old 였으며 바뀐뒤에는 new로 표현한다.


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Tyamo