SQL3

2023. 5. 4. 13:07데이터베이스/데이터베이스 시스템

728x90
반응형

*데이터 검색

-집계함수 특정컬럼에 집계함수를 통해 다양한 통계연산을 수행할 수 있는 기능

select 절 또는 having절에 정의

집계함수의 종류 / count, sum, avg, max, min

-그룹질의

특정 기준으로 레코드를 그룹화하고 각 레코드 그룹에 대해 집계함수를 적용하는 질의

select 질의

group by 컬럼

 

having

그룹 질의의 결과 레코드에 대해 출력 조건을 기술

select 질의

group by 컬럼

having 조건

 

중첩질의

select 내부에서 독립적으로 실행 가능한 또 다른 select문이 내포 되어 있는 질의

일반적으로 내부 질의의 처리 결과가가 외부 질의에서 재사용

중첩 질의의 종류

from 절에서 중첩 질의 활용, from 절에서 결과집합을 select에서 재검색

where 절에서 중첩질의 활용, where절에서 결과 집합을 활용하여 외부 질의에서 레코드의 출력 여부를 결정(in, int in, exists, not exsists 사용)

 

*조인질의

테이블간의 관련성을 이용하여 두 개 이상의 테이블에서 데이터를 검색하는 질의 기법

ER모델링 및 정규화 기법으로 여러 테이블로 분리된 정보를 통합하여 검색시 유용

 

-내부조인

두 개 이상의 테이블에서 조인조건을 만족하는 레코드만 결합하여 출력 결과에 포함시키는 연산

조인 조건은 where절이 아닌 on절에 기록

ASNI sql 표준과 사실상의 표준인 oracle사가 제안한 조인형식이 사용

select 컬럼1, 컬럼2, ....

from table1 inner join table2

on 조인 조건

[where 조건]

 

자연조인

두 개 이상의 테이블을 하나의 테이블로 결합하는 애부 조인과 매우 유사

두 테이블에 동일한 이름의 컬럼에 대해 값이 같은 레코드를 결합하는 내부조인

select 컬럼1, 컬럼2, ....

from table1 natural join table2

on 조인 조건

[where 조건]

 

-외부조인

내부 조인(inner join)은 조인조건에 일치하는 레코드만 결합하여 결과를 생성

조인결과에 정보의 손실이 발생

 

외부조인은 조인조건에 맞지 않는 레코드로 질의의 결과에 포함 시키는 질의

외부조인의 종류

왼쪽 외부 조인(left outer join)

오른쪽 외부 조인(right outer join)

완전 외부 조인(full outer join)

select 별칭1.컬럼1, 별칭2.컬럼2, ....

from table1 as 별칭1

left|right [outer] join

table2 as 별칭2

on 별칭1.컬럼= 별칭2.컬럼

[where 조건]

 

-셀프조인

한 테이블이 가기 자신과 조인되는 형태

동일한 이름의 테이블에 대한 조인이므로 반드시 테이블 이름에 대한 별칭이 의무적으로 사용

select 별칭1.컬럼1, 별칭2.컬럼2, ....

from table1 as 별칭1

inner|outer join

table2 as 별칭2

on 조인조건

[where 조건]

 

*뷰의 사용

개념

데이터를 저장하고 있는 하나 이상의 테이블을 유도하여 생성하는 가상의 테이블(virtual table)

데이터의 독립성 : 원본 테이블의 구조가 바뀌어도 뷰를 이용한 작업은 정의만 병경되어 응용프로그램에 영향이 없음

데이터 보안: 사용자에게 원본 테이블의 일부 컬럼에 대한 접근을 허용하여 보안 효과를 향상

다양한 구조의 테이블 사용 : 사용자의 요구사항에 맞는 테이블의 구조 제공

작업의 단순화 : 복합한 질문을 뷰로 단순화

데이터 무결성 with check option을 이용 뷰 생성에 위배되는 수정작업 거부

 

생성

생성되는 뷰의 구조는 select 문의 결과로 결정

create view viewname as

(select 컬럼1, 컬럼2 ....

from 테이블

[where 조건]

)

[with check option]

 

수정 및 삭제

뷰의 수정은 생성과 동일하게 새로운 select 문의 결과로 변경

altrer view viewname(컬럼1, 컬럼2 ....) as

(select 컬럼1, 컬럼2 ....

from 테이블

[where 조건]

)

 

drop view viewname

 

뷰를 이용한 데이터 검색

뷰는 가상의 테이블이므로 데이터 조작은 테이블 조작과 동일하게 수행

select 컬럼1, 컬럼2... from 뷰이름

where 조건 and 뷰정의 조건

 

뷰를 이용한 데이터 삽입

뷰에 대한 inser문은 원본 테이블에서 실행

pricary key, not null등의 제약사항에 위배되는 경우 삽입 불가능

원본 테이블에 존재하는 컬럼이지만 뷰에는 없는 컬럼에 삼입하는 경우 실행 불가능

조인 질의 또는 그룹질의가 적용된 뷰는 데이터 삽입 및 수정이 불가능

with check option이 적용된 뷰는 위배되는 사항은 없지만 뷰에 맞지 않는 조건일 경우 실행 불가능

728x90

'데이터베이스 > 데이터베이스 시스템' 카테고리의 다른 글

물리적 저장장치  (0) 2023.05.15
데이터베이스시스템_문제  (0) 2023.05.15
정규화  (0) 2023.05.08
SQL2  (0) 2023.04.28
SQL  (0) 2023.04.05