데이터 검색
집계 함수
- 특정 컬럼에 집계 함수를 통해 다양한 통계 연산을 수행할 수 있는 기능
- SELECT 절 또는 HAVING절에 기술
- 집계 함수의 종류
→ COUNT : 컬럼에 있는 값들의 개수
→ SUM : 컬럼에 있는 값들의 합
→ AVG : 컬럼에 있는 값들의 평균
→ MAX : 컬럼에서 가장 큰 값
→ MIN : 컬럼에서 가장 작은 값
집계 함수의 사용
SELECT COUNT(단과대학)
FROM 학과
그룹 질의
- 특정 기준으로 레코드를 그룹화하고 각 레코드 그룹에 대해 집계 함수를 적용하는 질의
- 구문 형식
SELECT 질의
GROUP BY 컬럼
- [주의] SELECT 절에 그룹의 기준과 집계 함수 이외의 컬럼은 포함될 수 없음
HAVING 절
- 그룹 질의의 결과 레코드에 대해 출력 조건을 기술하기 위한 절
- 구문 형식
SELECT 질의
GROUP BY 컬럼
HANING 조건
- 조건 기술 절
→ WHERE : 레코드에 대한 조건을 기술
→ HAVING : 집계 결과 레코드에 대한 조건을 기술
중첩 질의
- SELECT 문 내부에서 독립적으로 실행 가능한 또 다른 SELECT 문이 내포되어 있는 질의
- 일반적으로 내부 질의의 처리결과를 외부 질의에서 재사용
- 중첩 질의의 종류
→ FROM 절에서의 중첩 질의 활용
- FROM 절에서의 결과 집합을 SELECT에서 재검색
→ WHERE 절에서의 중첩 질의 활용
- WHERE 절에서의 결과 집합을 활용하여 외부 질의에서 레코드의 출력 여부를 결정
- IN , NOT IN , EXISTS, NOT EXSISTS 사용
- 구문 형식
SELECT 컬럼1
FROM(SELECT 컬럼1 FROM 테이블 WHERE 조건)
WHERE 조건
SELECT 컬럼1
FROM 테이블1
WHERE 컬럼 연산자 (SELECT 컬럼1 FROM 테이블 WHERE 조건)
조인질의
- 테이블 간의 관련성을 이용하여 두 개 이상의 테이블에서 데이터를 검색하는 절의 기법
- ER 모델링 및 정규화 기법으로 여러 테이블로 분리된 정보를 통합하여 검색 시 유용
- 조인 질의의 종류
→ 내부조인
→ 외부조인
내부 조인
- 두 개 이상의 테이블에서 조인 조건을 만족하는 레코드만 결합하여 출력 결과에 포함시키는 연산
- 조인 조건은 WHERE 절이 아닌 ON 절에 기록
- ANSI SQL 표준과 사실상의 표준인 Oracle사 가 제안한 조인 형식이 사용
- 구인형식
SELECT 컬럼1
FROM 테이블1
ON 조인조건1
[WHERE 조건]
자연 조인
- 두개 이상의 테이블을 하나의 테이블로 결합하여 내부 조인과 매우 유사한 기능
- 두 테이블에 동일한 이름의 컬럼에 대해 값이 같은 레코드를 결합하는 내부 조인
- 구인형식
SELECT 컬럼1
FROM 테이블1
[WHERE 조건]
외부 조인의 개념
- 내부 조인(Inner join)은 조인조건에 일치하는 레코드만 결합하여 결과를 생성
→ 조인 결과에 정보의 손실이 발생
- 외부 조인은 조인 조건에 맞지 않는 레코드도 질의의 결과에 포함시키는 질의
- 외부 조인의 종류
→ 왼쪽 외부 조인(left outer join)
→ 오른쪽 외부 조인(right outer join)
→ 완전 외부 조인(full outer join)
- 구문형식
SELECT 컬럼 as 별칭
FROM 테이블 as 별칭
LEFT|RIGHT JOIN [OUTER] JOIN
테이블 as 별칭
ON 컬럼 = 컬럼
[WHERE 절]
셀프조인
- 한 테이블이 자기 자신과 조인되는 형태
- 동일한 이름의 테이블에 대한 조인이므로 반드시 테이블 이름에 대한 별칭이 의무적으로 사용
뷰의 개념
- 데이터를 저장하고 있는 하나 이상의 테이블을 유도하여 생성하는 가상의 테이블(virtual table)
→ 데이터 독립성 : 원본 테이블의 구조가 바뀌어도 뷰를 이용한 작업은 정의만 변경되어 응용 프로그램에 영향이 없음
→ 데이터보안 : 사용자에게 원본 테이블의 일부컬럼에 대한 접근을 허용하여 보안 효과를 향상
→ 다양한 구조의 테이블 사용 : 사용자의 요구사항에 맞는 테이블 구조를 제공
→ 작업의 단순화 : 복합한 질의문을 뷰로 단순화
→ 데이터 무결성 : WITH CHECK OPTION 을 이용하여 뷰 생성에 위배되는 수정작업을 거부
뷰의 생성
- 생성되는 뷰의 구조는 SELECT 문의 결과로 결정
- 구문 형식
CREATE VIEW 뷰이름 AS (SELECT 컬럼 FROM 테이블 [WHERE 조건])
[WITH CHECK OPTION]
뷰의 수정 및 삭제
- 뷰의 수정은 생성과 동일하게 새로운 SELECT 문의 결과로 변경
- 구문 형식
ALTER VIEW 뷰이름(컬럼1) as (SELECT 컬럼 FROM 테이블 [WHERE 조건])
DROP VIEW 뷰이름
뷰를 이용한 데이터 검색
- 뷰는 가상의 테이블이므로 데이터 조작은 테이블 조작과 동일하게 수행
- 구문형식
SELECT 컬럼1 FROM 뷰이름
WHERE 조건
- 실행형식
SELECT 컬럼1 FROM 뷰이름
WHERE 조건 AND 뷰 정의 조건
뷰를 이용한 데이터 삽입
- 뷰에 대한 INSERT 문의 원본 테이블에서 실행
→ PRIMARY KEY , NOT NULL 등의 제약사항이 위배되는 경우 삽입이 불가능
→ 원본 테이블에 존재하는 컬럼이지만 뷰에는 없는 컬럼에 삽입하는 경우 실행 불가능
→ 조인 질의 또는 그룹 질의가 적용된 뷰는 데이터 삽입 및 수정이 불가능
→ WITH CHECK OPTION 이 적용된 뷰는 위배되는 사항은 없지만 뷰에 맞지 않는 조건일 경우 실행 불가능
'KNOU > 요약정리' 카테고리의 다른 글
[데이터베이스시스템] 데이터 저장과 파일 (0) | 2024.05.25 |
---|---|
[데이터베이스시스템] 정규화 (0) | 2024.05.25 |
[데이터베이스시스템] SQL(2) (0) | 2024.05.25 |
[데이터베이스시스템] SQL(1) (0) | 2024.05.25 |
[데이터베이스시스템] 3. 관계형 모델 (0) | 2024.05.25 |
댓글