카테고리 없음

[데이터베이스] 처리기능 : Query(질의)

bebeghi3356 2024. 12. 5. 21:42

1. 정의

(1) DML 

  • 선택(검색) 쿼리 : 원하는 데이터 검색
  1. Simple 쿼리
  2. Join 쿼리
  3. Group 쿼리 (통계값을 구하는 쿼리)
  • 기존 데이터 수정 {실행 쿼리} :
  1. 추가 쿼리
  2. 업데이트 쿼리
  3. 삭제 쿼리 

(2) DDL 

  • 테이블 구조 생성 쿼리

>> 정의 쿼리 {실행 쿼리}

 

(3) DCL

 엑세스에는 지원하지 않는 쿼리 형식

 

2. 선택 쿼리의 개념

엑세스에서 쿼리만들기 순서

1st. 테이블 선택

2nd. 필드에서 필요한 필드만 가져오기

3rd. 필드에 필요한 조건설정 (예 : 유효성 검사 규칙 version : [장르] = "문학" 또는 "문학"만 써도 가능)

4th. 실행 ( SQL문 생성) >> 쿼리 결과 생성

 

>> 테이블에서 필요한 필드를 검색한다는 의미는 테이블의 부분집합을 가져온다는 의미로 생각.

 

3. 검색쿼리의 개념 : " 수직적 수평적 부분집합의 교집합 "

  • 테이블에서 주어진 조건을 만족하는 레코드 추출 > 수평적 부분집합
  • 추출된 레코드에서 원하는 필드만 선택 > 수직적 부분집합

4. 검색 쿼리의 종류

(1) 단순 검색 쿼리 (SQ) : 하나의 테이블에서 검색

  • 필드에서 특정 단어가 포함된 검색 >> 조건식 :  Like *특정단어* 
  • Year(date) 함수 : 'date'의 연도만 추출 (Month(), Day() 함수) 
  • 2002년 3월 이전에 출판된 도서 검색 >> 조건식 : < #2002-03-01#
  • Mid(string, 시작위치, 개수) 함수 : string의 시작위치에서 개수만큼 문자를 잘라옴 >> Mid([필드명],2,1)="K"

 

  • 계산 필드 : 테이블 필드 외 계산에 의한 결과를 필드처럼 출력 >> [필드]칸에 추가로 기술
  • 형식은 "표시제목: 수식" 
  • 예 ) 도서 가격의 10% 할인한 값 출력 >> 할인가격 : [가격]*0.9
  • Len(string) 함수 : string의 문자수 구함
  • 도서 출판 국가를 검색하려면 ? >> Switch(조건1, 값1, 조건2, 값2, ...) 함수, 조건이 참이면 값을 출력한다

(2) 조인 쿼리(복합검색쿼리, JQ) : 둘 이상의 테이블들에서 검색

- 다대다 또는 일대다 관계, 외래키에 의한 참조

>> *****둘 또는 그 이상 테이블을 합쳐 임시로 하나의 테이블(역정규화: 검색 기능을 사용하므로 중복성 따질 필요 없음)을 만들고 검사함

  1. 내부 조인(inner join) : 관계가 있는 레코드만 조인 ( 조인쿼리 == 내부조인쿼리)
  2. 외부 조인(outer join) : 관계가 없는 레코드도 조인에 참여( 조인할 상대 값이 없는 경우를 불러오고 싶은 경우임, 이때 NULL값을 붙임), 참여시키는 방향에 따라 Left Outer Join, Right Outer Join 
  3. 내부 조인이 외부 조인에 포함되어 있을 때

2. 외부 조인 결과

 

(3) 요약 쿼리***** (GQ) : 복수개의 레코드들로부터 (이 쿼리는 테이블 간 교집합 쿼리를 구하는게 아닌 합계 또는 통계값을 대표값으로 구하는 쿼리이다) 대ㅐ표 통계값 요약 (예 : 장르별 도서 평균 가격)