Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 머신러닝 종류
- getElementById
- consolelog
- 자바스크립트 DOM
- javascript push
- 콘솔로그
- IF ELSE
- innerHTML
- 동물등록
- javascript array
- 배열 메소드
- DOM조작
- css box-sizing
- 자바스크립트if
- 자바스크립트변수
- border-box
- 자바스크립트 배열
- 머신러닝 기법
- 변수타입
- querySelector
- DOM접근
- border-sizing
- 블럭태그
- 인라인레벨
- 자바스크립트
- 파싱
- 블럭레벨
- getElementsByClassName
- 반려견등록
- 인라인태그
Archives
- Today
- Total
구름의 글들
[SQL] 기본문법 정리 본문
SELECT
Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미
1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지를 정할 수 있다.
# orders 테이블 전체 가져오기
select * from orders;
# orders 테이블에서 생성일시(created_at)과 결제수단(payment_method)만 가져오기
select created_at,payment_method from orders;
WHERE
Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미
# point를 쓴 유저 테이블에서 포인트가 2만점이 넘는 사람만 가져오기
select * from point_users
where point > 20000;
# 유저 테이블에서 성이 황씨인 사람만 가져오기
select * from users
where name = "황**";
COUNT
특정 조건에 맞는 데이터의 수를 세준다.
# 주문 테이블에서 주문 수업 이름이 앱개발 종합반인 오더 수만 가져오겠다.
select count(*) from orders
where course_title = "앱개발 종합반";
GROUP BY
동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것을 의미.
Group by를 이용하면 ex) 1) 같은 성씨의 데이터를 하나로 묶고 2) 각 성씨의 회원수를 구할 수 있다.
# 유저 테이블에서 각 이름별로 몇 명인지 숫자를 세준다.
select name, count(*) from users
group by name;
위 쿼리가 실행되는 순서,
- from users: users 테이블 데이터 전체 가져오기
- group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐주기
- select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어주기
- 예) 이**, 이**, 김**, 김**, 박** 이렇게 데이터가 있었다면, 이는 2개, 김은 2개, 박**은 1개로 출력됨.
MIN() / MAX()
동일한 범주에서의 최솟값/최댓값 구하기
# checkins 테이블에서 주차별로 가장 적은 likes 수를 구하기
select week, min(likes) from checkins
group by week;
# checkins 테이블에서 주차별로 가장 많은 likes 수를 구하기
select week, max(likes) from checkins
group by week;
AVG()
동일한 범주 특정 필드의 평균값 구하기
# checkins 테이블에서 주차별로 평균 likes 수를 구하기
select week, max(likes) from checkins
group by week;
SUM()
동일한 범주 특정 필드의 합계 구하기
# checkins 테이블에서 주차별로 likes 총합을 구하기
select week, sum(likes) from checkins
group by week;
ORDER BY / ORDER BY DESC
특정 필드 기준으로 내림차순/오름차순하기
# 유저 테이블에서 이름 기준으로 정렬하되, 각 이름별 개수를 오름차순하여 정렬한다.
select name, count(*) from users
group by name
order by count(*);
# 유저 테이블에서 이름 기준으로 정렬하되, 각 이름별 개수를 내림차순하여 정렬한다.
select name, count(*) from users
group by name
order by count(*) desc;
위 쿼리가 실행되는 순서,
- from users: users 테이블 데이터 전체를 가져오기
- group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합쳐주기
- select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어주기
- 예) 이**, 이**, 김**, 김**, 박** 이렇게 데이터가 있었다면, 이는 2개, 김은 2개, 박**은 1개로 나옴.
- order by count(*): 합쳐진 데이터의 개수에 따라 오름차순으로 정렬해주기
그 외 문법
- 별칭 기능: Alias
# orders 테이블을 짧게 o라는 별칭을 지어줌.
select * from orders o
where o.course_title = '앱개발 종합반'
# count(*) 개수의 별칭을 cnt라고 함.
select payment_method, count(*) as cnt from orders o
where o.course_title = '앱개발 종합반'
group by payment_method
JOIN
Join이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미함.
예) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한 눈에 보고 싶을 때 사용
Comments