2015년 12월 2일 수요일

MySQL - SELECT(1)

SELECT

select 문
데이터베이스에서 값을 가져올 때 사용하는 명령문입니다.

<select statement> ::=
<select clause>
<from clause>
[ <where clause> ]
[ <group by clause> [ <having clause> ] ]
[ <order by clause> ]

SELECT 명령문은 위와 같이 최대 6개 절(clause)로 구성되어 있습니다.

●SELECT 명령문을 구성할 때 규칙 및 주의할 점
-SELECT 명령문은 최소 2개 절(SELECT, FROM)로 구성
-WHERE, GROUP BY, ORDER BY 같은 절은 선택적으로 사용
-절의 순서는 고정
-ORDER BY절이 사용된다면 이 절은 항상 가장 나중에 사용
-HAVING 절은 GROUP BY 절이 사용되어야만 사용 가능

●사용 예제
mysql > SELECT ...         

->FROM ...
->ORDER BY ...
mysql > SELECT ...
->FROM ...
->GROUP BY ...
->HAVING ...
mysql > SELECT ...
->FROM ...
->WHERE ...
위의 조합이 모두 섞여 있을 수도 있습니다.  
                                                                                               옆의 예제는 모두 사용한 것 >>
예제는 
등록테이블 FEE에서 장학금을 1000000이상 지급 반은 학생중에서 
2회이상 지급반은 학생의 학번과 지급받은 횟수를 학번 내림차 순으로 출력하라

예제에 대한 수행 순서
2번(FROM) ->3번(WHERE)->4번(GROUP BY)->5번(HAVING)->1번(SELECT)->6번(ORDER BY)

예제1>
ATTEND 테이블에서 2006년도 1학이에 수강 신청한 학생의 학번과 
수강년도,학기,교과목코드,교수코드를 교수코드 오름차순으로 나타내어라.

 A:

SELECT stu_no, att_year, att_term, sub_code, prof_code
FROM attend
WHERE att_year = '2006' AND att_term = 1
ORDER BY prof_code;

예제2> ( 다중 테이블 명세) : FROM절에 두 개 이상의 테이블 명세 사용
학생들의 학번, 이름, 수강신청구분을 나타내어라. 단, 수강신청구분은 ATTEND 테이블에 있다.

A: 

SELECT s.stu_no, stu_name, att_div
FROM student s, attend a
WHERE s.stu_no = a.sut_no;



별명(alias)


예제2 에서 봤듯이
테이블에 대해서 별명을 붙여 주는 것입니다.
쓰는 이유는 테이블의 갯수가 많거나, 컬럼의 이름이 같을 수 있기 때문에 
비교할때 사용하려는 이유 때문입니다.

SELECT s.stu_no, s.stu_name, a.att_div, sub_code
FROM student s, attend a, subject su
WHERE s.stu_no = a.stu_no AND a.sub_code = su.sub_code;

댓글 없음:

댓글 쓰기

JIRA Plugin - ScriptRunner 소개 #2

관련 글 소개 #1:  https://pineoc.blogspot.com/2019/03/scriptrunner-1.html ScriptRunner 소개 #2 지난 글에서는 Behaviours를 보았고 다음 내용인 콘솔, 리스너 등을 ...