<4> 처리기능구현
section1 쿼리작성
* 쿼리란?
: 테이블이나 쿼리에서 필요한 필드만 가져와 새롭게 재작성한 테이블을 쿼리라 부른다.
- 필드 등을 삭제하면 복구하기 어려우므로
지우지 않고 자유롭게 편집하고 싶을 때.
- 이 테이블 저 테이블에서 각각 필드를 뽑아오고 싶을 때.
cf) "관계" - 두 개 이상의 테이블을 이어 붙일 때 반드시 관계가 설정되어 있어야 두 테이블의 데이터 순서가 뒤죽박죽이라도 알맞게 가져온다.
--> 두 테이블로 쿼리 만들 때는 반드시 관계설정이 되어있어야 쿼리 만드는게 가능
* 쿼리 만들기
1.필요데이터 파악
2. 쿼리 만들기 : [만들기] - [기타그룹] - 쿼리마법사(x) 쿼리디자인(o)
[tip]
만들 땐 무조건 디자인으로 간다
* 쿼리에서도 필드 생성 가능
★★★ 계산필드 만들기 ★★★
1. 디자인보기
2. 필드(첫줄)에서 우클릭
3. 작성 클릭
4. 계산공식 쓴다
필드명 : 식 (반드시 : 쓸 때 띄어쓰기 잘 지켜주기)
※ 형식 등이 적용 안 될 때는 저장하고 닫았다가 다시한번 똑같이 설정해주면 됨
* 쿼리 내 기존 필드의 이름을 바꿀 때 : [작성]을 이용하자
새로바꿀이름 : [예전필드이름]
* ★★★
요약쿼리 (쿼리 내 그룹) 만들기 :
언제? : "~별 합계" , "~별 평균" 등등 일 때.
어떻게? : [요약](시그마) 이용 - 요약행이 생성됨
※ 요약 행의 묶는 방법 바꾸지 않으면 그룹화 되지 않을수도 있다
* (세번째 행) 정렬 하기
* (네번째 행) 그림에 없는 애를 정렬하려면 일단 끌어다둔 뒤, '표시' 체크박스를 체크해제
* (다섯번째 행) 조건에 만족하는 애만 보기
제시값만 해당필드의 '조건'행에 쓰면 됨!
(원래는 대상값, 기호, 제시값이라서 [감독]="강제규" 인데, 감독 필드의 조건행에 "강제규"만 쓰면 됨)
* 매개변수 쿼리
: 조건이 변수일 때 그때 그때 사용자에게 조건을 입력받아 출력하는 것.
- '조건'행에 [] 쓰기
- "매개변수 값 입력" 말고 다른 말을 메시지상자에 쓰고 싶다면?
: 빈 대괄호 내에 띄울 말을 쓰면 된다.
- 검색어가 '포함'된 매개변수 쿼리 만들고 싶을 땐
: Like "*[]*" 를 조건에 쓴다 (x)
쌍따옴표 안에 매개변수를 써서 문자로 인지해버림
따라서, Like "*" & [] & "*"
[헷갈려서 정리]
예전에 배운 것: 정보공유용 "" 안에 컨트롤을 넣으면 인식 못한다
정보공유용 "" 안의 문자표시는 ''로 한다
오늘 배운 것: 문자용 "" 안에 매개변수 넣으면 인식 못한다
총정리: "" 안에 매개변수나 컨트롤을 넣으면 인식 못한다
기본쿼리를 선택쿼리라고 함 (선택적으로 가져와서)
[TIP]
쓰지 않는 테이블을 쿼리에서 띄워두면 에러가 날 수 있으므로 사용 안하면 제거할 것
* 일치/불일치 검색 쿼리
고객 테이블의 고객ID 필드와 대여 테이블의 전화번호 필드를 이용하여
대여실적이 한번도 없는 고객조회 쿼리를 만들자
: 다른 필드에서 제시값 가져올 땐 SQL문 써야함
그런데 SQL문에서는 같다, 같지않다가 =, <> 가 아님
같다 : in
같지않다: not in
in (select 필드명 from 개체명) : 일치 검색쿼리
not in (select 필드명 from 개체명) : 불일치 검색쿼리
(ex) 따라서 고객 ID필드의 '조건'행에
<>(select 전화번호 from 대여) (x)
not in (select 전화번호 from 대여) (o)
* 크로스탭 쿼리 (≒엑셀의 피벗테이블)
엑세스에서는 엑셀과 달리,
열레이블이 아니라 열머리글
행레이블 아니라 행머리글
1. 쿼리 유형을 크로스탭으로 선택
2. 끌어오는 순서를 가급적 지킬 것
: 행 ->열 ->값 (-> 두번째 행 -> 세번째 행)
3. 엑세스에서 행머리글은 3, 열머리글은 1, 값은 1이 최대.
그림(p.143)으로 파악해야 함
열머리글 : 1개 (남,여는 관련이 있다. 따라서 성별 1개)
행머리글 : 2개 (영화제목, 전체대여수)
값: 아무개 필드에 대한 개수
<질문> 값은 뭘 기준?
성별필드를 다이렉트로 넣어서 열레이블 값 형태로 -1,0으로 나온 것
따라서 '필드'행에서 '작성'간 뒤,
IIF 함수를 사용
여기선 필드명 자체를 바꾸는 것이므로 필드명 : 식써줌 (x)
세미콜론 없이 바로 식을 써주면 됨
iif([성별]=-1,"남","여")
* 업데이트 쿼리 : 실행 쿼리의 일종.
※ 실행쿼리 : 마지막 단계에서 '실행'을 눌러줘야 작동.
이 쿼리를 실행함으로 인해 쿼리 만들 때 사용된 테이블이 변경됨.
쿼리 자체의 목록을 보려고 만드는 게 아님.
(업데이트쿼리, 추가쿼리, 삭제쿼리)
[디자인] - [쿼리유형]그룹 - [업데이트]
비어있는 : 조건에 is null 쓰기
(반납일자 필드) 조건행에는 조건을,
(연체료 필드) 업데이트 행에는 조건 시 업데이트가 될 내용(식)을 써주면 됨.
실행할 때는 디자인보기에서 누르기
실행 확인은 업데이트 대상되는 테이블에서 확인할 것.
버튼과 연계되어 쓰일 수 있다.
조건 쓰는 필드와 업데이트 쓰는 필드의 순서는 서로 바뀌어도 상관없음
<지룸ㄴ>
select 할 때 왜 필드에는 [필드명] 안해줌?
- p.142 쿼리작성
- 기출문제 풀이
'컴퓨터활용능력1급 > 컴활1급 실기' 카테고리의 다른 글
취성패_컴활1급_23일차 (0) | 2016.12.22 |
---|---|
취성패_컴활1급_22일차 <최신기출문제2,3,4회> (0) | 2016.12.21 |
취성패_컴활1급_19일차 (0) | 2016.12.16 |
취성패_컴활1급_18일차 <콤보상자 컨트롤속성, 컨트롤 하위폼 삽입> (0) | 2016.12.15 |
취성패_컴활1급_17일차 (0) | 2016.12.14 |