ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL] SELECT 문 간단하게 파헤치기 . FROM, WHERE, GROUP BY, ORDER BY, JOINㄲ
    IT /DataBase 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!



Designed by Tistory.