쌍용 강북 교육센터 국비학원 Day 23일차
이제부터 예제로 샘플 데이터(HR스키마) 를 활용해 sql developrer 데이터를 다뤄본다.
Oracle 9i DBMS 버전부터는 보다 복잡하고 다양한 분야의 샘플유저(DB계정) 를 제공합니다.
* HR : Human Resources
- 인사부서에서 사용할 법한 샘플 데이터
* OE : Order Entry
- 물건 주문정보와 관련된 샘플 데이터
* PM : Product Media
- 기업에서 판매되는 제품에 대한 설명을 담고 있는 샘플 데이터
* IX : Information Exchange
- B2B 어플리케이션에서 사용할 법한 샘플 데이터
* SH : Sales History
- 판매실적 히스토리와 관련된 샘플 데이터
* BI : Business Intelligence
- DW BI 관련 샘플 데이터
* CO : Customer Orders
- Customer, Product, Store, Order 데이터로 구성된 소매 어플리케이션 샘플
- 12cR2 에 추가된 샘플 데이터
오라클에는 이러한 다양한 예제들이 존재한다.
기본 명령어에 대해 살펴보자
select * from tab; - 현재 오라클 서버에 접속되어진 사용자 (지금은 HR)가 만든(소유의) 테이블 목록을 조회한다.
describe (테이블명); - 해당 테이블의 컬럼의 정보를 알려준다. 출력해보면 아래와 같이 나온다.
(VARCHAR2) 앞에 N이 붙으면 바이트가 아닌 글자수를 제한한다. (한글 사용시 편리함)
VARCHAR2 의 크기제한은 4000 byte , NVARCHAR2는 2000 글자이다.
CLOB타입 - Character Large Object 로 해당 컬럼용량이 2GB까지 가능하지만 잘 사용하지 않는다.
BLOB타입 - Binary Large Object 로 주로 동영상소스 혹은 파일 경로로 사용한다. 해당 컬럼도 2GB까지 가능하지만 잘 사용하지 않는다.
=== 중요 ===
=== 어떠한 테이블(또는 뷰) 에서 데이터 정보를 꺼내와 보는 명령어인 select 의 처리 순서 ===
[1] - from 테이블명 (또는 뷰명)
[2] - where 조건절 - where 조건절이 뜻하는 것은 해당 테이블명(또는 뷰)에서 조건에 만족하는 행(row)을 메모리에 로딩(올리는 것) 해주는 것이다.
[3] - group by 절
[4] - having 그룹함수 조건절
[5] - select 컬럼명,컬럼명 - ... 컬럼명 대신에 * (아스테리크) 을 쓰면 모든 컬럼을 뜻한다.
[6] - order by 절
NVL , NVL2 - NULL 을 처리해주는 함수
NULL 은 존재하지 않는 것이므로 사칙연산 (+ - * /)에 NULL이 포함되어지면, 그 결과는 무조건 NULL이 된다.
1. NVL (NULL VALUE)
2.NVL2
alias
컬럼에 별칭을 활용해 코드를 간결하게 사용한 방법이다. 맨앞에 문자가 숫자일 경우에도 " " 는 생략 불가하다.
비교 연산자
비교연산자 또한 사용이 가능하다.
1. 같다 =
2. 같지않다 != , <> , ^=
3. 크다, 작다 > , <
4. 같거나 크다, 같거나 작다 >= , =<
5. NULL 은 존재하지 않는 것이므로 비교대상이 될 수 없다. 비교연산자 사용불가 (비교연산을 하려면 nvl함수를 사용 해야한다, 또한 null 은 is 연산자를 이용해 나타낼 수 있다)
order by 절
원하는 조건으로 정렬하는 구문을 나타낸다.
- 데이터 정렬하는 법
order by (alias명) asc; - 도 가능하다. alias 또는 해당 컬럼의 숫자를 사용해 대체 가능 (처리 순서에 유의)
order by 4, 3 desc; - 1차, 2차적으로 정렬도 가능하다
AND , OR , IN() , NOT 연산자
칼럼에서의 AND 연산자와 OR , IN ( ) , NOT 연산자 또한 사용 가능하다.
IN ( ) - 괄호 안에 해당하는 조건을 입력하고 OR과 똑같은 의미를 가진다.
여기서 주의할 점은 AND와 OR이 같이 사용되면 연산의 우선순위가 달라 값이 다르게 나온다.
- 우선순위는 OR보다 AND가 먼저 실행된다. 조건에 따라 괄호처리를 시용 해야한다.
범위연산자
문자의 데이터 범위를 연산할 때 대,소문자의 아스키 코드값으로 연산하기 때문에 주의한다.
Date의 나타내는 형식을 변환하는 방법이다.
to_date (날짜 값, 포맷형식) - 날짜값을 원하는 형태로 변환해준다.
Date의 표기법에는 여러가지가 있다.
'yyyy-mm-dd hh24:mi:ss' - 24시간으로 표기 , 'yyyy-mm-dd am hh:mi:ss' - am으로 표기
update , rollback , commit , insert
어떤 테이블에 존재하는 행의 컬럼의 값을 변경하려고 할 때는 update 명령어를 사용한다
update 는 메모리상에서만 변경된 것이므로 실제 디스크에 적용하려면 commit 이 필요하다. 또한 commit 전에 메모리에 적용된 것을 되돌리는 rollback 또한 가능하다.
INSERT - 테이블에 데이터 (행)을 입력(추가하고자) 할때 사용하는 명령어
오늘은 여기까지.
'DB > Oracle' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 27일차 Oracle (Sub Query, JOIN) (0) | 2023.02.09 |
---|---|
쌍용강북교육센터 국비 학원 Day 26일차 Oracle (GROUP BY, HAVING, GROUPING, ROLLUP) (0) | 2023.02.08 |
쌍용강북교육센터 국비 학원 Day 25일차 Oracle (VIEW, 그룹함수) (0) | 2023.02.07 |
쌍용강북교육센터 국비 학원 Day 24일차 Oracle (Primary Key, Sequence, Like 연산자, 단일 행 함수) (0) | 2023.02.06 |
쌍용강북교육센터 국비 학원 Day 22일차 Oracle (DataBase, Oracle, Sqlplus, sqldeveloper) (0) | 2023.02.02 |