SQL응용

2023. 2. 21. 18:17정처기 필기/3과목 - 데이터베이스 구축

SQL응용

* SEQUEL에서 유래

* 관계대수와 관계해석을 기초로 한 혼합 데이터 언어

 

1. SQL 분류

* DDL (Define : 정의어)

명령어 기능
CREATE DOMAIN, SCHEMA, TABLE, VIEW, INDEX    #도스테뷰인
ALTER --> ALTER TABLE 테이블명;
DROP DROP 도스테뷰인 삭제

- CASCADE : 참조하는 모든 개체 함께 제거
- RESTRICTED : 다른 개체가 참조중이면 제거 취소

 

* DML (Manipulation : 조작어)

- SELECT, UPDATE, DELETE, INSERT

 

* DCL (Control : 제어어)

- COMMIT, ROLLBACK

- GRANT 권한 리스트 ON 개체 TO 사용자 [WHTI GRANT OPTION]; 

- REVOKE [GRANT OPTION FOR] 권한 리스트 ON 개체 FROM 사용자 [CASCADE]

 

2. SELECT

* WHERE [select 컬럼명 from where ~~~~~] 

  : 검색할 조건

 

* ORDER BY [select number from order by ~~~ #ASC(오름차순), #DESC(내림차순)]

  : 기본으로 오름차순이며, 정렬을 뜻함

 

* GROUP BY

   : 특정 속성을 기준으로 그룹화 검색할 때 사용

 

* HAVING

  : GROUP BY와 함께 사용되며, 그룹에 대한 조건 지정

 

* 집계 / 그룹함수

  : GROUP BY 절에 지정된 그룹별로 속성의 값을 집계할 함수를 기술함.

종류 + (속성명) 설명
COUNT    
SUM  
AVG  
MAX  
MIN  
STDDEV 그룹별 표준편차를 구하는 함수
VARIANCE 그룹별 분산을 구하는 함수
ROLLUP 그룹핑 된 것을 집계하는 함수
ex) 총합
CUBE 모든 조합의 그룹별 소계를 구하는 함수

 

* 윈도우 함수 (행과 행 간의 관계를 쉽게 정의하기 위해 만든 함수)

  : group by절을 이용하지 않고 속성의 값을 집계할 함수를 기술

  : 함수의 인수로 지정한 속성이 대상 레코드의 범위가 되는데, 이를 윈도우라 함

 

 : partiotion by - 윈도우 함수가 적용될 범위로 사용할 속성 지정

--> window 함수 over (partition by 속성 order by 속성)

 

종류 설명
row number window별로 각 레코드에 대한 일련 번호를 반환함
ex) 1,2,3,4,5
rank window 별로 순위를 반환하며, 공동 순위를 반영함
ex) 1,1,1,4,5
dense_rank window별로 순위를 반환하며, 공동순위를 무시하고 순위를 부여함
ex)1,1,1,2,3

 

3. 조인(join)

* 관계형 데이터베이스에서 조인은 교집합 결과를 가지는 결합 방법

* 두 릴레이션으로부터 연관된 튜플들을 결합해, 하나의 새로운 릴레이션을 반환

 

* INNER JOIN

유형 설명
EQUI JOIN (동등) 공통 존재 컬럼의 값이 같은 경우만 추출
NATURAL JOIN (자연) 같은 컬럼 명을 가진 값도 같은 경우 추출
CROSS JOIN (교차) 조인 조건이 없는 모든 데이터 조합을 추출 ex)
책상1 - 화이트
책상 2- 화이트
책상 3- 화이트

 

* OUTER JOIN

유형 설명
LEFT OUTER JOIN 왼쪽 테이블의 모든 데이터 + 오른쪽 동일 데이터
RIGHT OUTER JOIN 오른쪽 모든 데이터 + 왼쪽 동일 데이터
FULL OUTER JOIN 양쪽 모든 데이터

 

* 물리적 조인

종류 설명
NESTED-LOOP-JOIN 2개 이상 테이블에서 하나의 집합을 기준으로 순차적으로 상대방 ROW를 결합해 원하는 결과를 조합하는 방식
SORT-MERGE JOIN 양쪽 테이블의 정렬 결과를 차례로 검색하며 연결고리 형태로 합병
HASH JOIN 해싱 함수 기법을 활용해 조인