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