안녕하세요! 드디어 2주차 학습일지를 작성하게 된.. just(그냥)입니다. 아직도 왜 제 블로그 이름 이걸로 지었는지 의문..
아무튼 이번주에 배운 것들을 한번 정리해보고자 합니다!!
하도 개념이 많아서 솔직히 다 외우는 건 불가능이고,, 개발을 할 때도 기본적인 것만 외우지 모든 세세한 것들을 외우고
있진 않으니까요!! 필수적으로 알아두면 좋을 쿼리문과 함수들만 여기에 적어볼게요!
1. ORDER BY
이 쿼리문은 데이터를 정렬할 필요가 있을 때 사용하는데, 솔직히 데이터가 순서대로 예쁘게 정리되어 있는 경우는 없죠?
이럴 경우에는 엑셀에서와 마찬가지로, 보기 좋게 데이터를 나열하면 좋습니다.
물론 데이터가 어떤 기준으로 나열되는지는 데이터를 뽑는 사람이 정해야 하겠죠!
위에 사진을 보시면 attack이나 defense나, number나 숫자가 들어있는 데이터들이 뒤죽박죽 섞여있죠??
위 예시에서는 우선 attack을 기준으로 내림차순 정렬을 한 후, 같은 숫자끼리는 defense를 기준으로 오름차순 정렬하도록 쿼리문을 작성한 겁니다!!
-> select에 쓴 순서대로 번호가 매겨진다고 생각하고, ORDER BY attack DESC, defense 대신에 해당 번호를 쓸 수도 있네요ㅎㅎㅎ
-> DESC를 안적어주면, 디폴트가 ASC오름차순 으로 정렬이 된다는 겁니다
2. GROUP BY
GROUP BY는 데이터들을 말 그대로 그룹짓는 겁니다! 다만, 데이터가 위 예시처럼 TYPE으로 몇 가지의 유형으로 나뉘어질 수 있는게 아니라면 쓸 수가 없어용! 예를 들어, height을 기준으로 group을 만든다는 건 불가능한 얘기겠죠..?
(만약 height으로 그룹을 짓고 싶으면, 범위를 줘서 해당 데이터의 height을 억지로 그룹화할 수는 있어요! 0.3~0.6 뭐 이런식으로?..)
3. HAVING
HAVING은 그룹에 조건을 주는 겁니다!! 저번에 배웠던 WHERE이랑 헷갈리시면 안되는데,
WHERE은 그룹이 아니라 데이터 전체에서 각 ROW를 다 훑으면서 조건에 맞는 데이터를 골라주는 거예요.
반면에 HAVING은 그룹 중에서 조건을 주는 겁니다.
위 예시처럼, 지금 데이터를 TYPE에 따라서 분류해달라고 써져있는데 HAVING조건으로 COUNT(1)=2 여야 한다구 하죠?
이 COUNT(1)은 ROW하나를 1로 쳐서 개수를 새는 건데, 이건 데이터가 특정 그룹으로 분류되어 있지 않다면
개수가 2개만 나올 수는 없을 거예용. 위 예시에서 전체데이터는 10개니까 말이죠!
**결국 WHERE는 전체 데이터에서 특정 데이터를 거를 때, 그리고 걸러진 데이터 중에서 그룹을 지어 특정 그룹 데이터를 걸러 낼 때 HAVING을 쓴다는 차이점이 있습니다
4. 다양한 함수들
LENGTH("ABC")=3 -> 괄호안에 들어가는 문자열 길이 반환
CONCAT("ABC","DEF")="ABCDEF" -> 두 개의 문자열을 합침
ABS(-14)=14 -> 숫자의 절댓값 반환
CEILING(-1.455)= -1 -> 숫자를 정수로 올림해서 반환
FLOOR(-1.455)= -2 -> 숫자를 정수로 내림해서 반환
제가 자주 쓸 것 같은 함수들이고, 이외에 그때그때 필요한 함수들은 구글에 검색하시면 나올거예요
저는 요즘 웹 개발을 하면서 CONCAT이라는 함수를 썼었는데, 왜 썼냐면!!
기존에 저장되어 있는 프로젝트 ID 데이터에 사용자가 추가하기 버튼을 누르면 ,(콤마)를 기준으로 데이터가 누적되도록 하고 싶어서입니당!!
EX) 14,25,35 이런 식으루요
'기획자의 하드스킬모음' 카테고리의 다른 글
문과 직장인 5일만에 sqld 개발자 자격증 취득하는 방법 (0) | 2023.07.24 |
---|---|
MYSQL 공부 2일차 (0) | 2022.10.04 |
[패스트캠퍼스]SQL로 시작하는 데이터 분석 첫걸음 : SQL 강의 1주차 학습일지 (0) | 2022.08.08 |
대학교 과제 피그마로 만들기(2)-앱화면 만들기 (0) | 2021.01.11 |
대학교 과제 피그마로 만들기(1)-피그마 단축키 알아보기 (0) | 2021.01.06 |