MySQL
(4)MySQL_기본문법
빠스무
2023. 3. 21. 17:48
728x90
member Table
조건절 + 정렬
- select 필드명1, 필드명2 ... from 테이블명 where 조건절 order by 정렬할 필드명 [asc, desc];
- 성별이 여성인 회원을 point가 많은 순으로 정렬(단, 포인트가 같을 경우 먼저 가입한 순으로 정렬)
- select userid, username, point, regdate from member where gender = '여자' order by point desc, regdate asc;
limit
- select 필드명1, 필드명2 .. from 테이블명 limit 가져올 행의 갯수
- select 필드명1, 필드명2 .. from 테이블명 limit 시작행, 가져올 행의 갯수
- select userid, username, gender from member limit 3;
- select userid, username, gender from member limit 3,2;
정렬 + limit
- select 필드명1, 필드명2 .. from 테이블명 order by 정렬할 필드명[asc,desc] limit 가져올 행의 갯수
- select userid, username, gender from member order by point desc limit 3;
집계함수
count: 행의 갯수를 세는 함수
- 전체인원을 알고싶다!: primary key가 적용되어 null이 포함될 수 없음
- select count(userid) as 전체인원 from member;
- 주소를 입력한 인원을 알고싶다!: null이 있으면 주소를 입력하지 않았음
- select count(zipcode) as 우편번호 from member; # null 을 제외하고 갯수를 셈
sum: 행의 값을 더함
- select sum(point) as 포인트합 from member;
avg: 행 값의 평균을 구함
- select avg(point) as 평균 from member;
min: 행의 최소값을 구함
- select min(point) as 최소값 from member;
max: 행의 최대값을 구함
- select max(point) as 최대값 from member;
그룹
- select 그룹을 맺은 컬럼 또는 집계함수 from 테이블명 group by 그룹을 맺을 필드명;
- select gender from member group by gender;
- select gender, sum(point) as 합계 from member group by gender;
- select gender, avg(point) as 평균 from member group by gender;
- select gender, count(point) as 인원수 from member group by gender;
그룹 + 조건
- select 그룹을 맺은 컬럼 또는 집계함수 from 테이블명 group by 그룹을 맺을 필드명 having 조건절;
- select gender from member group by gender having gender = '여자';
조건절 + 그룹 + 그룹조건 + 정렬
- select 그룹을 맺은 컬럼 또는 집계함수 from 테이블명 where 조건절 group by 그룹을 맺을 필드명 having 조건절 order by 정렬할 필드명 [asc, desc];
- 포인트가 0이 아닌 회원들 중에서 남,여로 그룹을 나눠 포인트의 평균을 구하고 평균 포인트가 100 이상인 성별을 검색하여 포인트로 내림차순 정렬
- select gender ,avg(point)
from member
where point > 0
group by gender
having avg(point) >= 100
order by avg(point) >= 100 desc;