김진수 님이 쓰신 글 :
: 안녕하세요 마이맨입니다.
:
: 저는 다음과 같은 일정관리 프로그램을 짜고잇습니다. (책 예제)
:
:
그림
:
: 테이블은 다음과 같습니다.
: Year Alpha 4
: Month Alpha 2
: Day Alpha 2
: Time Alpha 2
: StartTime Alpha 2
: EndTime Alpha 2
: Title Alpha 50
: MemoFile Alpha 14
:
: SQL 문은 다음과 같습니다.
:
: SELECT Schedule."Year",Schedule."Month",Schedule."Day",count(Schedule."Day") as DayCnt
: FROM "Schedule.db" Schedule
: WHERE ((Schedule."Year" =: CurYear) AND (Schedule."Month" =: CurMonth))
: GROUP BY Schedule."Day",Schedule."Year",Schedule."Month"
: ORDER BY Schedule."Year",Schedule."Month",Schedule."Day"
:
: Params[0].Name CurMonth
: Params[0].Data Type String
: Params[1].Name CurYear
: Params[1].Data Type String
:
: 입니다.
:
: 이 SQL 구문은 월별로 등록되어 있는 일정을 일자별로 몇 건씩 있는지 알려주기 위한 용도로 사용됩니다.
:
: 제가 궁금한것입니다.
:
: 1. FROM 구문에서 Schedule 이 마지막에 왜 들어 갔는지 궁금합니다.
: 2. WHERE 구문은 어떻게 사용하는지 전혀 모르겠습니다.
: 3. GROUP BY 구문은 sum.avg 등과 같이 사용되어져야 한다고 알고 있습니다.
: 어찌혼자 사용되고 어떤 역활을 하는지 궁금합니다.
: 4. ORDER BY 구문 역시 정렬을 목적인데 어찌 desc asc 가 안붙고 혼자 사용되어질수 있는지
: 여기서 어떤 역활을 하는지 궁금합니다.
:
: 길 글 읽어 주셔서 감사합니다... 초보라...
: 많은 도움 부탁드립니다.
: 좋은 하루 되세요
SELECT Schedule."Year",Schedule."Month",Schedule."Day",count(Schedule."Day") as DayCnt
FROM "Schedule.db" Schedule
WHERE ((Schedule."Year" =: CurYear) AND (Schedule."Month" =: CurMonth))
GROUP BY Schedule."Day",Schedule."Year",Schedule."Month"
ORDER BY Schedule."Year",Schedule."Month",Schedule."Day"
1. "Schedule.db"는 테이블 실제 이름이네요.
Schedule를 콤마없이 쓴것은 이 SQL문장내에서 Schedule.db를 대치하기 위한 것 이구요.
다른 문장에서 전부 schedule라고만 쓴게 그 이유입니다.
["Schedule.db" a]라고 쓰면 schedule 대신 a."Year" a."Day"등등이 가능하죠.
의미로 Schedule as "schedule.db" 뭐 그런 의미 되겠네요.
2. where는 조건문이죠.
그러니까 테이블의 "Year"필드의 값이 변수 CurYear의 값과 같으면서
테이블의 "Month"필드의 값이 변수 CurMonth의 값과 같은 레코드들을 query하는 것입니다.
3. select문에 보면 count를 구하고 있네요... 해답이 되겠죠?
4. 생략시 기본값이 있을겁니다. 그 기본값으로 설정된것입니다. 오름차순 혹은 내림차순으로...