Oracle 데이터베이스 관련 개념(Key 등)와 각종 규칙들(NULL연산, ROWNUM 등)에 대해 간략히 포스팅해보려고 합니다.
DB관련 개념 정리
1) 정규화(Normalization) : 테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스.
2) 기본키(Primary Key) : 테이블의 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼. 즉, NULL값과 중복된 값을 모두 허용하지 않음(기본키는 테이블당 하나의 제약만을 정의 가능)
3) 고유키(Unique Key) : 중복된 값을 허용하지 않음. but Null값은 가질 수 있음. (헷갈리기 ㄴㄴ해)
4) 외부키(외래키, Foreign Key) : 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼. 참조하는 테이블에서 칼럼의 값이 존재하면 허용.
데이터 자료형
1) character(s): 고정길이 문자열 정보(Oracle, SQL Server모두 char로 표현)
→문자열을 비교할 때는 짧은 쪽의 끝에 공백을 채운 후, 앞에서부터 한 문자씩 비교함. 따라서 끝의 공백만 다른 문자는 같다고 판단. 예) ‘AA’ == ‘AA ’
2) varchar(s): character varying의 약자로 가변길이 문자열 정보.(Oracle은 varchar2, SQL Server는 varchar로 표현)
→varchar유형은 공백도 하나의 문자열로 취급함. 따라서 공백이 다르면 다른 문자로 판단.
예) ‘AA’ == ‘AA ’
3) numeric: 정수 및 실수 등의 숫자 정보(Oracle은 number, SQL Server는 10가지 이상의 숫자타입 존재)
4) date: 날짜와 시각정보 (Oracle은 1초 단위, SQL Server 3.33ms(millisecond) 단위)
문자형(char, varchar2) 타입은 인용부호(‘’, “”)로 묶어서 처리해아 함.
number과 같은 숫자형 형태의 값은 인용부호 사용하지 않음.
테이블 및 칼럼 생성 규칙
1) 칼럼명 뒤에 반드시 데이터 유형 지정해야 함.
2) 테이블명과 칼럼명은 반드시 문자로 시작해야 하고, 길이는 벤더사별로 다름.
3) 문자는 _ , $ , # 만 허용. ( - 은 안됨!!)
오라클에서의 NULL 값과 연산(is null 등) 특징
1) null 값과의 수치 연산은 null을 리턴.
2) null 값과의 비교 연산은 거짓(false)을 리턴.
예) SELECT c.number FROM TB_COLOR c WHERE c.number = NULL; → 볼 필요도 없이 결과는 무조건 false로 출력되는 결과 값 없음.
+ Oracle에서는 null값을 가장 큰 값으로 간주하여 내림차순(DESC)로 정렬했을 경우에는 가장 처음에, 오름차순(ASC)으로 정렬했을 경우에는 가장 마지막에 위치함. (↔ SQL Server는 정반대)
ROWNUM 칼럼
Oracle의 ROWNUM은 일반 칼럼과 비슷한 성격의 pseudo Column(가상칼럼)으로써 SQL처리결과 집합의 각 행에 대해 임시로 부여되는 일련번호이다. 테이블이나 집합에서 원하는 만큼의 행만 가져오고 싶을 때, where절에서 행의 개수를 제한하는 목적으로 사용. ※SQL Server는 TOP구문 사용.
'Database' 카테고리의 다른 글
DDL과 DML 및 Delete와 Truncate문 비교 (0) | 2020.09.09 |
---|---|
정규화와 반정규화 및 대량 데이터에 따른 성능 (0) | 2020.09.08 |
데이터 모델링의 3요소 및 엔티티, 속성의 분류 (0) | 2020.09.07 |
데이터 모델링과 스키마 구조 (0) | 2020.09.07 |
오라클 Database 19c(window) 설치 & 실행 (7) | 2020.03.08 |