본문 바로가기

Oracle SQL

Oracle SQL 시작

hr 계정 생성 및 권한 부여.

 

수업 순서

hr 계정에 문법 정리, 

wrokshop 계정에 테스트 

 

행: 레코드(record)

열: 컬럼(column)

 

DB의 무결성을 보장받기 위해 제약조건이 있다.

1. primary key(기본키) : 레코드를 식별하기 위한 용도, 반드시 유일한 값이여야 하며, 반드시 값을 가져야한다.

-==> unique 및 not null 제약조건이 같이 있음.

2. unique: 컬럼에 유일한 값을 저장하기 위한 용도

==> 반드시 유일한 값, null 값 허옹

3. not null: 컬럼에 반드시 값을 저장해야 하는 용도, null 값 허용 안함, 

4. check: 컬럼에 임의의 조건에 일치하는 데이터만 저장하기 위한 용도

==> 자바의 조건처리와 비슷한 제약조건.

5.foreign key(외래키, 참조키): 하나의 테이블에서 다른 테이블을 참조하기 위해 사용되는 용도

참조 당하는 테이블: master 테이블 ex? department_id

참조하는 테이블: child(slave) 테이블  ex) employee_id

==> master의 컬럼 중에서 primary key 또는 unique 제약조건 설정된 컬럼만 참조할 수 있다.

fk가 가질수 있는 값은 master가 가지고 있는 값 + null 갑을 가질 수 있다.

 

*오라클 객체

1.테이블(table)  => 아래 네 개는 테이블에 대한 헬퍼 역할이다.

=> 실제 Data를 저장, DDL을 이용

2.인덱스(index)  - 검색을 빠르게, ex)일반 교재의 색인표

3.뷰(view) - 보안 + 복잡한 SSQL문을 간결하게 사용하는 목적

4.시퀀스(sequence) - 특정 컬럼 numbering , ex) 게시판의 줄번호

5.시노님(synonym) - 테이블 별칭(보안)

 

*오라클 구조

오라클은 물리적인 파일의 구조+ 메모리 구조로 돼있다. 
C:\oraclexe\app\oracle\oradata\XE 폴더 안의 DBF 파일들을 보자.

CONTROL, SYSAUX, SYSTEM 파일은 메타 데이터 파일. 이 세 가지 파일은 절대! 삭제하면 안된다.

1) DML(데이터 조작어) : 기본적으로 메모리영역에서만 작업한다. 메모리 영역에서 끝나게 하든, 물리적인 파일 영역까지 연동을 하던 작업이 가능하며, 물리적인 파일에 반영하지 않을시 컴퓨터 Off하면 사라진다.

=> 트랜잭션 명령어로 -commit, -rollback이 있는데 DML만 사용한다.

 

*오라클 데이터 타입

1) 수치(정수) : number(자릿수)  

=>ex) number(6)

2) 수치(실수) : number(전체 자릿수,소수점 자릿수)

 

문자(열)

1) char(byte 수) - 고정길이 (String) - 최대 2000byte

=> 성능이 좋다. 고정된 값일수록 더욱 좋음.

2) varchar2(byte 수) - 가변길이 (StringBuilder) - 최대 4000byte = char의 두 배

=> char에 비해 성능이 좋지 않다. 어쩔때는 n자리, 어쩔때는 n+1 자리인것처럼 가변적일때 varchar2를 쓴다.

 

*오라클 Data타입과 리터럴

수치 ㅡ> 10, 3.14

문자 ㅡ> 'A'  'ABC'  => 홑따옴표 써야된다. 

날짜 ㅡ> '2019/10/15' 

오라클의 쌍따옴표는 별칭에서만 사용됨.***********

 

*널(null)

1) 테이블에서 비어있는 형태로 보임

2) '값이 없음' 의미

3) 연산시 결과가 null 반환. ex) salary*12 + 특정 컬럼의 null값 = null

4) 3번의 문제를 해결하기 위해선 NVL 함수를 써야된다.

=> NVL(comm-pct , )  ㅡ> comm-pct이 null이면 대체할

5) 정렬시 가장 큰 값으로 인식

6) is null, is not null (null일 경우, null이 아닐 경우)  ==> 연산자

7) 기본적으로 테이블에는 null값을 허용한다. not null 제약조건 적용 가능

 

**SQL의 연산자 중 부정연산자 NOT이 제공되는데, 부정연산자를 사용할 경우 index를 적용할 수가 없기 때문에 쓰지 되도록 쓰지 않도록 한다.

 

**연산자의 우선순위 꼭 파악할것

=> and > or -> and랑 or랑 같이 쓸 경우 and부터 해석한다.

'Oracle SQL' 카테고리의 다른 글

Oracle 간단 정리  (0) 2022.07.25
Oracle) Sub query & Transaction  (0) 2022.07.22
Oracle JOIN  (0) 2022.07.21
Oracle SELECT  (0) 2022.07.20