IT /DataBase

[SQL] SELECT 문 간단하게 파헤치기 . FROM, WHERE, GROUP BY, ORDER BY, JOINㄲ

평민1 2013. 5. 30. 11:50
728x90

SQL문의 가장 기본이 되는 구문입니다.

 

쓰는 방법이야 간단하니 주로 테이블, 열 이름들과 씨름을 함.


이름을 간소화 하기 위해서 AS를 이용함 띄어쓰기도 가능.


atable as a

btable b 같이 쓰는 것임.







 이제 SELECT 문을 보기로함.



작업 도중  햇갈린다 싶으면 


select * from 테이블  


확인하고 작업하다 또 햇갈린다. 


select * from 테이블 

습관적으로 쓰게 되는 구문



 

가장 많이 사용하는 SELECT 구문에 관하여 파고들어봅시다! 

 

 

 SELECT 구문 형식 

 

SELECT select_list [ INTO new_table  

[ FROM table_source ] [ WHERE search_condition  

[ GROUP BY group_by_expression  

[ HAVING search_condition  

[ ORDER BY order_expression [ ASC | DESC ] ]  

 

아니 젠장 셀렉트가 이렇 개 복잡하다니 

 

하나씩 알아 봅시다! 

 

 

 

가장 기본적인 형태 입니다. 

 

SELECT select_list [ INTO new_table ]  

[ FROM table_source ] [ WHERE search_condition  

[ GROUP BY group_by_expression  

[ HAVING search_condition  

[ ORDER BY order_expression [ ASC | DESC ] ]  

 

SELECT [열] 

FROM [테이블] 

WHERE [조건] 

 

주로 사용하는 테이블을 조회시 사용하는 문장입니다. 

열 이름에 있는 열을 불러와 조건에 맞도록 데이터를 보여줍니다. 


전체 열을 보고 싶다면 

select * from 테이블 처럼 

* 를 사용하여 전체 열을 확인 할 수 있습니다. 



where 부분은 생략 가능합니다. 

 

select * from table [where 조건]  

조건이 없다면 전체 데이터를 찾게 되는것입니다~~

 

 

 

 SELECT .. INTO 

.. FROM .. WHERE 문장입니다. 

 

SELECT select_list [ INTO new_table ]  

[ FROM table_source ] [ WHERE search_condition  

[ GROUP BY group_by_expression ]  

[ HAVING search_condition  

[ ORDER BY order_expression [ ASC | DESC ] ]  

 

 

SELECT [열] INTO [새 테이블] 

FROM [기존 테이블] 

WHERE [조건] 

 

INTO 가 포함될 경우에는  

조건에 맞는 기존 테이블의 열 내용을 새 테이블로 가져와 테이블을 만드는 겁니다. 

 

간단한 예로 열 목록만 가져오는 방법이 있습니다. 

 

SELECT * INTO [새테이블] FROM [복사할테이블] WHERE 1=2 

 

where 조건에 1=2를 한 이유는 거짓된 조건을 줬는데 다른 거짓 문장이라도 상관없습니다. 

조건이 거짓이기 때문에 열에 있는 데이터는 가져오지 않고 

새 테이블에 기존 테이블의 모든 열만 가져와 형식만 같은 테이블을 만듭니다. 

테이블 형식을 복사한 것과 같습니다. 

 

 

  GROUP BY 

 말 그대로 그룹으로 묶어 주는 역할을 합니다. 

그룹에 포함된 수를 나타내줌. 


 

SELECT select_list [ INTO new_table ]  

[ FROM table_source ] [ WHERE search_condition  

[ GROUP BY group_by_expression ]  

[ HAVING search_condition  

[ ORDER BY order_expression [ ASC | DESC ] ]  

 

  

SELECT [열, 열, 집계열]

FROM [기존 테이블] 

WHERE [조건] 

GROUP BY [그룹열,그룹열] 

HAVING [그룹조건]


그냥 이렇게 덧붙여 가면서 사용합니다. 

SELECT 에 그룹열이 2개 면 GROUP BY 에도 2개를 적어줍니다. 


결과물이 거지같이 나오면

 ORDER BY 문을 추가해서 같이 씁시다



 

 

   order by

 

SELECT select_list [ INTO new_table ]  

[ FROM table_source ] [ WHERE search_condition  

[ GROUP BY group_by_expression ]  

[ HAVING search_condition  

[ ORDER BY order_expression [ ASC | DESC ] ]  

 

 

가져온 결과를 ORDER BY 문을 통해 정렬 할 수 있습니다. 

 

보기 쉽게 문장을 만들자면 

 

select * from 테이블 [where 조건] order by 열 | asc | desc 

 

테이블에 있는 모든 열을 가져와 order by 에 지정된 열을 기준으로 정렬됩니다. 

 

기본 정렬은 asc 오름차순 정렬입니다. 

asc 나 desc 를 정해주지 않은경우에는 오름차순 정렬되는것입니다.




 JOIN

SELECT 열1, 열2

FROM 테이블1

JOIN 테이블2

ON 조건



떡하니 JOIN만 있는 경우는 내부조인 INNER 조인입니다.


조인에서는 테이블도 DB도 이곳저곳으로 옮겨다니기에

as a

as b 로 만들어 


a.column 

b.column 처럼 사용합니다.



예를 들면


select a.userid, b.money

from usertable as a

join banktable as b

on a.userid=b.userid


처럼요!








도움말을 생활화 합시다. 블로그 보다 퀄리티 GOOD!