yekang

관계형데이터베이스와 SELECT문 본문

빅데이터/SQL

관계형데이터베이스와 SELECT문

예캉 2017. 12. 27. 15:09



SELECT
(재료집합-테이블로부터)원하는 결과집합을 정의/요청/기술하는 문장
in oracle) select, from은 필수적으로 있어야 함.

Realational
관계형
Relation -> Table
: 데이터가 담긴 구조인 "집합"을 의미한다. 데이터베이션 "이론"에 쓰이는 말로. 이를 데이터베이스로 구현하면 "테이블"이 된다. cf: 데이터 모델에서는 엔티티
구조적 데이터
 Relationship => 참조제약조건, 외래키제약조건

데이터의 형태에 따라...
구조적 데이터 : 속성에 따라 분류할 수 있음. 
반구조적 데이터
비구조적(비정형) 데이터 (빅데이터의 특징.. 양이 엄청 많고 그 데이터가 체계적으로 잡혀있거나 그렇지 않거나 단시간에 발생하고 다양하고)


1 = row
2 = 중복을 허용하지 않는column -> 사원 ID이기 때문에 unique한 값.
3 = 중복을 허용하는 column
도메인의 성질에 따라 (중복/허용 거부) => constraint 제약조건.
4 = 중복도 허용하지만 NULL값도 허용하는 Column
NULL : 아직 데이터가 없다.
급여나 사원번호는 값이 무조건 있어야 하니깐 NOT NULL 제약조건 걸어줘야 한다.
5 = 필드 (하나)
6 = NULL값인 필드

WHERE절 
내가 테이블에 있는 ROW중에서 필요한것만 원할 때. (ex : DEPARTMENT_ID가 90인것만 뽑아내고 싶을때)
WHERE 가 필요없는경우 => 모든 row 쓸 때
어떻게 걸러내야 할까?? => 조건
'조건식(Predicate)'이 와야 한다. 참일때만 나온다.

Candidate row = > 특정 테이블에서 왔던 row다.

GROUP BY절
BY 다음에는 값이 온다. 
GROUP BY DEPARTMENT_ID면 같은 값끼리 묶음..
컬럼, 식(ex;컬럼 *10) etc...

HAVING절
WHERE과 같은 필터링절이지만 그룹을 필터링한다. 
groupby안하고 having을 하면 error발생!
조건식에 가능하면 그룹함수가 있어야 의미가 있다!! 그룹함수가 없이도 할 수는 있지만 이는 where에서 할 수 있기때문에 의미가 있다고 볼 수 없다.
ex ; 3학년 운동장에 나오지마라
모두 나오게하고 학년별 하게하고 3학년 들어가라 하는것보다 선자가 효과, 효율적이다.

SELECT절
이러이러한 조건에 걸친 중간 집합에서 내가 원하는 것만 나열하는 것. 
* 모든컬럼, SQ(서브쿼리), 함수 등...

ORDER BY절
정렬. 트리거가 가장 마지막에 일어난다.
**널 처리 비교.. 



 


Comments