티스토리 뷰

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구문 사용.




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함