모든 설명은 주석으로 확인할 수 있어요.
하나씩 따라해 보세요. ^^
lan이라는 테이블에
uname, kor, eng, mat, sum, avg, sno, wdate, addr 칼럼에
아래와 같은 값이 들어있다고 가정합시다앙
사랑해 90 85 95 270 90 1 20/09/15 Seoul
무궁화 40 50 20 110 37 2 20/09/15 Seoul
진달래 90 50 90 230 77 3 20/09/15 Jeju
개나리 20 50 20 90 30 4 20/09/15 Jeju
봉선화 90 90 90 270 90 5 20/09/15 Seoul
나팔꽃 50 50 90 190 63 6 20/09/15 Suwon
선인장 70 50 20 140 47 7 20/09/15 Seoul
소나무 90 60 90 240 80 8 20/09/15 Busan
참나무 20 20 20 60 20 9 20/09/15 Jeju
홍길동 90 90 90 270 90 10 20/09/15 Suwon
무궁화 80 80 90 250 83 11 20/09/15 Suwon
-----------------------------------------------------------------------
-- distinct() - 중복을 제거해주는 함수 > 칼럼에 어떤 값들이 있는 보고 싶을 때
-- 문법
-- distinct 칼럼명 또는 distinct(칼럼명)
select addr from lan; -- 그냥 주소 칼럼을 출력하는 경우
select distinct(addr) from lan; -- 어떠한 주소 값들이 있는지 확인하고 싶을 때
-----------------------------------------------------------------------
-- group by
-- 동일 내용끼리 그룹화, 정렬 기능과 비슷
-- 집계 함수와 자주 쓰임 예) 같은 동네 사는 학생들의 국어 점수 평균을 구하기
-- 문법
-- group by 칼럼1, 칼럼2, 칼럼3 ~~
select addr -- 2. 주소값 출력
from lan
group by addr; -- 1. 같은 주소별로 묶은 후
select addr, count(*) --같은 주소가 몇 개씩 있는지
from lan
group by addr;
-- 활용) 평균이 70점 이상인 행을 대상으로 주소별 인원수를 인원수 순으로 조회
select addr, count(*)
from lan
where aver >= 70 -- 1. 평균 70 이상인 행을
group by addr -- 2. 주소별로 묶어서
order by count(*); -- 3. 인원수 순으로 조회
-----------------------------------------------------------------------
-- having 조건절
-- group by와 함께 사용하여 그룹들을 대상으로 조건절 부여
select addr, count(*)
from lan
group by addr -- 1. 주소별로 그룹화하여
having count(*) = 3; -- 2. 인원수가 3인 경우만 조회
-- 활용) 주소별 국어 평균이 50 이상인 행만 평균 높은 순으로 조회
select addr, avg(kor)
from lan
group by addr -- 1. 주소별로 그룹화하여
having avg(kor) >= 50 -- 2. 그룹의 국어 평균이 50 점 이상인 것만
order by avg(kor) desc; -- 3. 내림차순으로 조회
---------------------------------------------------------------------
-- case when ~ then ~ end ~ 구문
-- 문법
-- case when 조건1 then 조건 만족시 값1
-- when 조건1 then 조건 만족시 값1
-- ...
-- else 값
-- end 결과컬럼명
-- 활용) 이름과 주소를 조회하되 주소를 한글로 바꿔서 조회
select uname, addr, case when addr = 'Seoul' then '서울'
when addr = 'Jeju' then '제주'
when addr = 'Busan' then '부산'
when addr = 'Suwon' then '수원'
end 주소
from lan;
commit;
영어를 어느 정도 잘하면 프로그래밍에도 많은 도움이 되더군요.
영어를 배울 수밖에 없다면... ^_^
댓글