반응형

 

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 11일부터 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(오른쪽 조인)은 오른쪽을 다 포함하고 왼쪽에선 해당되는 것만 가져온다.”

 

<이상>

 

반응형

+ Recent posts