SQL 기초 문장 예제로 정리하기 by sualchi
예제에 사용할 테이블1과 테이블2는 다음과 같다.
<테이블1> <테이블2>
사번, 이름, 주소, 생일, 결혼유무, 직위, 연봉 사번, 부인이름, 자녀수
이제부터 쿼리 문장 예를 보면서 그 풀이를 함께 살펴보자.
SELECT * FROM 테이블1;
<풀이> 테이블1의 모든(*) 필드 목록을 선택한다.
SELECT 테이블1.사번, 테이블1.이름
FROM 테이블1
ORDERBY 테이블1.이름 ASC;
<풀이> 테이블1의 사번, 이름 필드를 선택하되, 이름을 오름차순으로 한다. (내림차순 DESC)
SELECT *
FROM 테이블1
WHERE ( ((테이블1.이름)=”김*”) );
ORDERBY 테이블1.이름 ASC
WHERE ( ((테이블1.생일) Between #1/1/1970# And #12/31/1990#) );
<풀이> 테이블1의 모든 필드를 선택하되, 이름이 ‘김’으로 시작해야 한다.
이름을 오름차순으로 하되, 생일은 1970년 1월1일부터 1990년 12월 31일 사이인 경우만 선택한다.
SELECT 테이블1.직위, Avg(테이블1.연봉) AS 평균연봉
FROM 테이블1
GROUP BY 테이블1.직위
HAVING ( ((Avg(테이블1.연봉) >= 30000000) );
<풀이> 테이블1의 직위 필드와 가상의 평균연봉(평균함수로 구함) 필드를 선택하되,
직위별로 그룹을 만들고, 연봉이 3천만원 이상인 직원만 선택한다.
SELECT 테이블1.사번, 테이블1.이름, 테이블2.부인이름, 테이블2.자녀수
FROM 테이블1 INNER JOIN 테이블2 on 테이블1.사번=테이블2.사번;
<풀이> 테이블1의 사번과 이름, 테이블2의 부인이름과 자녀수 필드를 선택하되,
두 테이블에 사번이 모두 존재하는 경우만 선택한다.
“INNER 조인은 두 테이블에서 공통인 것만 뽑는다. 교집합!”
SELECT 테이블1.사번, 테이블1.이름, 테이블2.부인이름, 테이블2.자녀수
FROM 테이블1 LEFT JOIN 테이블2 on 테이블1.사번=테이블2.사번;
<풀이> 테이블1의 사번과 이름, 테이블2의 부인이름과 자녀수 필드를 선택하되,
왼쪽의 테이블1은 모두 선택하고 테이블2는 사번이 일치하는 경우에만 선택한다.
“LEFT JOIN(왼쪽 조인)은 왼쪽을 다 포함하고 오른쪽에선 해당되는 것만 가져온다.”
SELECT 테이블1.사번, 테이블1.이름, 테이블2.부인이름, 테이블2.자녀수
FROM 테이블2 RIGHT JOIN 테이블2 on 테이블1.사번=테이블2.사번;
<풀이> 테이블1의 사번과 이름, 테이블2의 부인이름과 자녀수 필드를 선택하되,
오른쪽의 테이블2는 모두 선택하고 테이블1은 사번이 일치하는 경우에만 선택한다.
“RIGHT JOIN(오른쪽 조인)은 오른쪽을 다 포함하고 왼쪽에선 해당되는 것만 가져온다.”
<이상>
'DBMS, 데이터베이스' 카테고리의 다른 글
폼에서의 데이터는... (0) | 2011.08.18 |
---|---|
다이너셋, 다이너셋(업데이트 일관성 없음), 스냅숏에 대해서[p134-07] (0) | 2011.08.18 |
[VBA] BeforeInsert 이벤트 프로시저 예제 (0) | 2011.08.09 |
[액세스 VBA] 폼을 나갈 때 레코드 변경 값을 저장할지 묻는 사용자 확인창 출력하기 (0) | 2011.08.09 |
SQL 구문 기초 2 (0) | 2011.08.08 |