본문 바로가기

default

SQL기본

 

1. 관계 대수

 

관계형 데이터베이스 언어로 사용되기 위해서는 관계적으로 완전한 언어를 사용해야 한다. 관계적으로 완전하다는 것은 관계 대수로 표현할수 있는 것이 SQL문으로 모두 매핑가능하다는것을 의미한다. 데이터 모델은 데이터구조 + 연산 + 제약조건으로 생각하면 되는데, 관계 대수는 릴레이션을 연산하는 절차적인 언어다.

 

 

릴레이션은 간단히 생각하면 표(행렬)에 여러가지 제약조건을 추가한것이다. 자바에서 클래스와 객체를 구분하는 것처럼, 릴레이션은 스키마와 인스턴스로 구분한다. 스키마는 데이터의 구조, 인스턴스는 실제로 존재하는 데이터의 집합이다. 예를들어 학생 릴레이션을 생각해보면,

스키마 : 학생(학번, 이름, 주소, 학과 , 학년)

201611837

한규확

서울

경제학과

2

201938199

이호연

경기

체육학과

1

201538294

이두희

광주

컴퓨터학과

4

여러가지 조건이나 용어가 많지만, 스키마와 인스턴스정도만 알아도 될거같다.

 

2. 연산

 

관계대수에서의 연산은 cloure property를 가지고 있다. 연산결과는 항상 릴레이션이기 때문에 중첩된 연산과 재귀적인 연산이 가능하다. 릴레이션은 인스턴스의 집합으로 정의되기 때문에 집합에서의 연산은 당연히 성립한다. 그리고 순수 관계연산이 있다. 프로젝트와 셀렉트가 세트고, 조인도 많이 사용된다. 프로젝트는 표에서 세로로 열을 뽑아내는 연산이고, 셀렉트는 표에서 가로로 열을 뽑아내는 연산이다. 보통 셀렉트 (프로젝트 (릴레이션)) 과 같은 형태로 사용된다.

 

3. SELECT문

 

관계 대수에서의 셀렉트와는 다르다. 보통 select ~ from ~ where ~; 형태로 많이 쓰인다.

SELECT        열 리스트

FROM         테이블 이름

WHERE       조건

GROUP BY   그룹화 기준

HAVING      집계함수의 조건

ORDER BY   정렬 기준

 

 

 

 

'default' 카테고리의 다른 글

210315  (0) 2021.03.25
[SQL] SQL SELECT TOP  (0) 2020.02.25
[알고리즘] 탐욕 알고리즘, 그리디 알고리즘  (0) 2020.02.25
HTML 기초  (0) 2020.02.22