반응형
- 예시에 사용 할 'books' 테이블
- select * from books;
AND : 조건을 모두 충족하는 것
- 페이지(pages)가 100이상이고 200이하인 데이터 출력
- 100이상이고 200이하의 조건을 모두 충족해야하므로 and 사용
- select * from books where pages >= 100 and pages <= 200;
between and : 범위 지정
- between과 and를 사용하여 범위 지정을 편히 할 수 있음
- between A and B : A와 B가 포함된 범위 표시
- 페이지(pages)가 100이상이고 200이하인 데이터 출력
- select * from books where pages between 100 and 200;
OR : 조건 중 하나라도 만족하는 것
- 작가의 성(author_lname)이 Chabon이거나 Eggers인 데이터 출력
- Chabon과 Eggers 중 둘 중 하나라도 만족하면되므로 or 사용
- select * from books where author_lname like 'Chabon' or author_lname like 'Eggers';
in(data1, data2, data3, ...) : 데이터들이 포함되는 것들 표시, OR과 비슷하게 사용
- 작가의 성(author_lname)이 Chabon이거나 Eggers인 데이터 출력
- select * from books where author_lname in ('Chabon', 'Eggers');
데이터의 갯수 확인하기 (count)
- count(데이터) : 데이터 행의 갯수를 확인
- books 테이블의 총 몇 명의 작가(author_fname) 데이터가 있는지 확인
- select count(author_fname) from books;
- 주의 : 출력되는 19는 현재 입력된 데이터의 총 갯수이므로 중복 제거 진행
- select count(distinct author_fname) from books;
- 같은 작가의 다른 작품도 다 포함되어 있으므로 작가의 이름을 중복제거 하여 총 인원을 확인
데이터를 그룹화하기 (group by)
- group by : 데이터의 중복을 제거하고 각각의 데이터들을 출력
- 그룹화는 컬럼의 갯수 상관 없이 순서대로 기입 가능 group by (c1, c2, c3...)
- 주의 : 중복된 데이터에 해당하는 다른 컬럼 출력시 가장 위의 데이터로 출력
- books 테이블의 모든 작가의 이름(author_lname) 확인
- select author_lname from books group by author_lname;
having : 그룹별로 특정 수식이 필요 할 경우 사용 (= where)
- select * from 테이블 group by 컬럼 having 수식
= select * from 테이블 where 수식 group by 컬럼
응용) 작가별로 책을 몇권을 썼는지 확인해보기
- select author_lname, count(*) from books group by author_lname;
최소값/최대값 구하기 (min/max)
- min : 데이터에서 최소값을 출력
- 페이지(pages)수가 가장 적은 값 출력
- select min(pages) from books;
- max : 데이터에서 최대값을 출력
- 페이지(pages)수가 가장 많은 값 출력
- select max(pages) from books;
합 구하기 (sum)
- sum : 데이터에서 모든 값의 합을 출력
- 책의 모든 페이지(pages) 수 구하기
- select sum(pages) from books;
평균 구하기 (avg)
- avg : 데이터에서 평균 값을 출력
- 모든 책 페이지(pages)의 평균 확인하기
- select avg(pages) from books;
반응형