티스토리 뷰

2주차 수업을 완료했습니다! 

사실 1주차 수업이 재밌어서 얼른 2주차 수업도 들어버렸습니다:) 

 

2주차 내용 정리해보겠습니다. 

 

1. 주요 내용은 

group byorder by 

-> 데이터를 묶고 정렬하는 방법! 

 

예시 코드: 

group by 

-> week으로 묶어서 그 숫자를 셌습니다. 

 

***튜터님이 강조하신 논리구조

먼저 select * from 테이블해서 테이블을 살펴보아라

그 다음에 무엇으로 묶을지를 결정

group by **

묶은 후에 그거를 select에 넣고, count를 하거나, min/max/avg를 구하는 방식 

 

*외워야 하는 부분

count는 (*)랑 같이 가는데, count(*)로! 띄어쓰기를 하면 오류가 난다

min/max/avg 구할 때는, ( )안에 구하고자 하는 값의 필드를 넣어라! 

avg 구할 때, 소수점을 치우고 싶다면 round 사용 

 

평균값 소수점 round

 

2. order by 정렬

-> 필요한 데이터를 모두 추출하고 나서 예쁘게 정렬! 

order

기본적으로 정렬하면 오름차순! 

무엇별로 정렬할지 간단하게 order 뒤에 붙이면 된다

 

내림차순 정렬

내림차순 정렬은 뒤에 desc 붙이면 끝

오름차순 정렬은 뒤에 asc, 생략 가능

 

최솟값 구하는 쿼리

최솟값 구할 때, 아까 언급한 것처럼 ( ) 안에 구하고자 하는 값의 필드를 적어주자! 

-> 필드 입력할 때 like로 적으면 오류 남! 정확하게 적어야 함, 오류났을 때는 에러 메시지 확인! 

 

3. group과 where 

 

이번에는 group과 where을 같이 써봤다

 

group과 where을 함께 

기본적인 구조 흐름은 

문제를 읽으면서 문제를 따라간다. 

 

예시 코드: 

select * from orders

-> 먼저 테이블을 살피고 

 

select * from orders

where course_title ='웹개발 종합반'

-> where로 조건에 맞는 데이터 추출 

 

select * from orders

where course_title ='웹개발 종합반'

group by payment_method 

-> 주문결제수단별로 데이터를 묶어주고 

 

select payment_method, count(*) from orders

where course_title ='웹개발 종합반'

group by payment_method

-> 보여줄 것, 개수 세기에 적용 

 

select payment_method, count(*) from orders

where course_title ='웹개발 종합반'

group by payment_method

order by count(*) 

-> 마지막으로 보고 싶은 정렬 순으로 예쁘게 데이터 정렬 

 

퀴즈 푼 화면

 

에러가 났을 때! 

에러 화면 

-> 에러가 났을 때는 당황하지 않고 에러 메시지를 읽어본다! 

mail이라고 입력해서 데이터가 안 나옴! email로 그래서 변경

에러 메시지 친절한데~~~

 

에러 화면 2

에러가 좀 많이 나네요...민망...

 

 

4. 별칭 Alias

별칭

-> 코드가 길어지고, 데이터가 많으면 헷갈리기 때문에 별칭을 붙여주는 기능! Alias

대부분 필드나 데이터 뒤에 소문자로 붙여서 별칭 처리 

 

예시: orders -> orders o 

orders 테이블을 o로도 부르겠다는 뜻

그래서 o. course_title이라는 것은 orders 테이블의 course_title을 보겠다는 말 

 

그리고 count(*)로 출력되는 값이 보기 안 좋으니 

이 역시도 별칭으로 as cnt 로! 

 

=> 별칭은 다음 시간부터 적용한다고 하니 일단 이만큼 알아두는 걸로! 

 

 

조건이 2개나 들어간 쿼리~! 

조건 2개 들어간 쿼리