문법 정리
- SELECT
select * from 필중 a
select 친구이름, 주소, 연락처, 나이 from 필중 a
1-> 필중의 테이블에서 모든 필드와 데이터를 보여달라.
1->테이블 필중을 이하 a라고 부르겠다. (알리아스, Alias라고 한다. 알리아스=줄임말)
3->테이블 에서 친구이름, 주소, 연락처, 나이 필드만 따로 보여달라.
- WHERE
select 친구이름 from 필중 a
where a.나이 = 25
1-> 필중 테이블에서 친구이름을 보여달라.
2-> 다만 나이가 25살에 해당하는 친구나이가 조건이다.
- LIKE, SUBSPRING
select 친구이름 from 필중 a
where 친구 주소 like '%광역시%'
select 친구이름, SUBSPRING_INDEX(이메일, '@', -1) from 필중 a
select 친구이름, SUBSPRING(만난날짜, 1, 10) from 필중 a
1-> 필중 테이블에서 친구이름을 보여달라.
2->다만 친구주소에 앞뒤 상관없이 광역시가 포함된 친구주소가 조건이다.
4-> 필중 테이블에서 친구이름과 이메일 필드에서 @ 문자 뒤에 오는 데이터를 나타내라.
6-> 필중 테이블에서 친구이름과 만난날짜 필드에서 첫번째 문자부터 열번째 문자 데이터를 나타내라.
- GROUP BY
select 친구이름 from 필중 a
group by 만난장소
1-> 필중 테이블에서 친구이름을 보여달라.
2-> 필중이와 만난 장소를 기준으로 보여달라.
- ORDER BY
select 친구이름 from 필중 a
group by 만난장소
order by 만난날짜
1-> 필중 테이블에서 친구이름을 보여달라.
2-> 필중이와 만난 장소를 기준으로 보여달라.
3-> 필중이와 만난 날짜를 오름차순으로 보여달라.
- COUNT, MIN, MAX, AVG, SUM
select count(*) from 필중 a
group by 성별
seselect min(a.나이) from 필중 a
group by 친구나이
select max(a.나이) from 필중 a
group by 친구나이
select avg(a.나이) from 필중 a
group by 친구나이
select sum(도움 횟수) from 필중 a
group by 친한정도
1-> 테이블 필중에서 범주만큼 개수를 구하라.
2-> 성별에 따라 범주를 묶어라.
5-> 테이블 필중에서 범주에서 가장 최솟값을 구하라.
6-> 친구나이에 따라 범주를 묶어라.
8-> 테이블 필중에서 범주에서 가장 최댓값을 구하라.
9-> 친구나이에 따라 범주를 묶어라.
11->테이블 필중에서 범주에서 평균값을 구하라.
12-> 친구나이에 따라 범주를 묶어라.
14->테이블 필중에서 범주에서 도움받은 횟수를 모두 더하라.
15->> 친한 정도에 따라 범주를 묶어라.
- JOIN
select * from 필중 a
inner join 성후 b on b.친구이름 = a.친구이름
select * from 필중 a
left join 박씨네 b on b.가족이름 = a.가족이름
1->테이블 필중의 데이터를 보여라.
2->성후 테이블과 필중의 테이블을 합치되, 공통된 필드명 친구이름을 기준으로 합친다.
4->테이블 필중의 데이터를 보여라.
5->필중 테이블에 성후의 테이블을 붙이되, 공통된 필드명 가족이름을 기준으로 합친다.
5-> 다만 모든 필드가 데이터로 채워져있지 않을 수 있기 때문에 조건문 is NULL 혹은 is not NULL을 사용해서 결과를 도출한다.
- UNION
(
select * from 상반기 결산
group by 날짜
)
union all
(
select * from 하반기 결산
group by 날짜
)
2-> 테이블 상반기 결산 데이터를 보여라.
3-> 날짜를 범주로 묶어서 나타내라.
5-> 수평적으로 해당되는 테이블을 연결한다.
7-> 테이블 하반기 결산 데이터를 보여라.
8-> 날짜를 범주로 묶어서 나타내라.
- SUBQUERY
select a.친구이름,
a.친구나이,
a.친구연봉,
(
select avg(친구연봉) from 필중
) as 평균연봉
from 필중 a
1-> 친구이름 필드를 보여라
2-> 친구나이 필드를 보여라
3-> 친구연봉 필드를 보여라
5-> 서브쿼리로서 테이블 필중에서 친구연봉의 평균을 보여라.
6->친구연봉의 평균을 평균연봉으로 필드명을 바꿔라
7->필중 테이블에서 각 데이터를 보여라
- WITH
with table1 as
(select avg(친구연봉) from 필중)
select a.친구이름,
a.친구나이,
a.친구연봉,
(table1) as 평균연봉
from 필중 a
1-> 아래와 같은 테이블을 tabel1이라 칭하겠다.
2-> 테이블 필중에서 친구연봉의 평균을 나타내라
3-> 친구이름 필드를 보여라
4-> 친구나이 필드를 보여라
5-> 친구연봉 필드를 보여라
6-> table1을 평균연봉 필드명으로 바꿔 나타내라
7-> 테이블 필중에서 각 데이터를 보여라.
- CASE
with table1 as
(select avg(친구연봉) from 필중)
select a.친구이름,
a.친구나이,
( case when a.친구연봉> (table1) then '비결이 뭐지?'
when a.친구연봉= (table1) then '그렇군'
else '열심히 살아야겠네.' end) as msg
from 필중 a
1-> 아래와 같은 테이블을 tabel1이라 칭하겠다.
2-> 테이블 필중에서 친구연봉의 평균을 나타내라
3-> 친구이름 필드를 보여라
4-> 친구나이 필드를 보여라
5-> 친구연봉이 table1보다 크다면 '비결이 뭐지?'라고 나타내고
6-> 친구연봉이 table1과 같다면 '그렇군'라고 나타내고
7-> 그게 아니라면 나머지는 전부 '열심히 살아야겠네'라고 나타낸다.
7-> 이 필드명은 msg라고 표시한다.
8-> 테이블 필중에서 각 데이터를 보여라.
'🫅스파르타 코딩클럽 > SQL' 카테고리의 다른 글
2022-11-05 SQL 3주차 (0) | 2022.11.05 |
---|---|
2022-10-29 SQL 2주차 (0) | 2022.10.29 |
2022-10-23 SQL 1주차 (0) | 2022.10.23 |