2022-03-12 프로그래머스 3주차 강의
1. 3주차 세션 리뷰
1.0. 지난 과제 리뷰
- GROUP BY절 주의사항
- PPT 10쪽
->productLine을 기준으로 GROUP BY 했지만 name, scale을 select할 수 는 있다.
-> 이 부분에 대해 MySQL에서는 에러 여부 옵션 설정이 가능. (ONLY_FULL_GROUP_BY)
-> MySQL의 디폴트 SQL mode 중 하나인 ONLY_FULL_GROUP_BY: GROUP BY란?
-> ONLY_FULL_GROUP_BY: GROUP BY 기준 컬럼 혹은 기준 컬럼에 종속되지 않은 컬럼이 SELECT, HAVING,
OREDER BY절에서 사용되면 질의 실행을 거부한다.
-> 표준SQL에서는 에러이다.
- 윈도우 함수(중요!)
1) ROW_NUMBER() OVER: 투플에 일련번호를 부여한다. pignation에 활용
2) RANK() OVER: 투플 순위 제공, 동점자 처리가능
-> SELECT절의 윈도우 함수 안에 ORDER BY 되어 있으면 ORDER BY 절에 또 다시 쓸 필요는 없다.
- 내장 함수
-> 날짜 처리는 신중하게 한다. (숫자 또는 스트링으로 처리될 수 있다.)
Ex) shippedDate - orderDate는 숫자 빼기 숫자로 처리가 된다.
->해결법: INTERVAL / ★TIMESTAMPDIFF()★
Ex) DATE((NOW())) + INTERVAL 5MONTH AS '..'
- 여기서 DATE는 정수(Integer) 타입으로 출력하고, INTERVAL은 '월'의 특성을 반영한다.
-> 따라서 둘을 더하면 INTERVAL에 따라 시간 개념으로 반환한다.
-> YEAR, MONTH, DAY 와 HOUR, MINUTE, SECOND는 시간 개념이 아닌 정수를 출력한다.
- TIMESTAMP: 내부적으로 카운트로 저장(1초의 개수)
- 지난 과제 중에서 COALESCE() 관련 문제 푸는데 꽤 오래 걸렸다.
-> MySQL이라 그런지 IFNULL()로 처리하니까 해결됐다.
-> 따라서 스키마를 만들 때, 모두 NOT NULL로 정의하면 COALESCE를 쓸 필요가 없다.
- 정규식 처리하기
-> character group 숙지하기
-> [ ... ] : character set
-> '.' : 임의의 한 문자!!★
- 정규식 이용한 패턴 매칭: 정규식은 "매칭 가능한 가장 긴 패턴"을 리턴한다.
Ex) ^[^@]+ : @이 아닌 문자가 한 번 이상 반복된다.
-> NOT@라서 @ 뒤에는 보지 않는 건가??? 포지션을 디폴트로 두어서 자연스레 @의 앞부분이 조회???
Ex) [T.e]
=> The, Tre , T6e,.... '.'은 모든 글자가 가능하기 때문에 주읜한다.
=> T.e를 스려면 [T\\.e]
=> 슬래시 하나만 쓰면 안된다는 매뉴얼이 있으나 업데트 안되어 있으면 하나로도 실행된다.
=> 일반 SQL을 슬래시를 하나만 쓴다.
- 정규식 관련 문제에서
->'-'(하이픈)으로 범위가 아닌 문자 자체를 나타내기 위해 '\\'을 쓰는데(규칙) 한 개만 써도 실행이 되기도 한다.(설정에 따라?)
1.1 느낀 점
- 플립러닝 강의 방식이 정말 효율적이라고 느꼈다.
- 코딩 과제를 다시 풀어볼 수 있어서 복습하기에 좋고 소피아 매니저님, 단테 교수님도 정말 잘 알려주신다.
- 이번 과제에서 정규식이 많이 어려웠다.
- PPT에 정규식 링크 달아주신 곳에 가서 연습해야겠다.
- 날짜 관련 문제를 다른 수강생들도 많이 틀렸다니까 나만 어려운 게 아니었나보다.
- 과제를 푸는데 시간이 오래 걸렸는데 앞으로는 강의 내용을 더 깊이 숙지한 다음 과제를 해야겠다.
- 다음주 부터는 훨씬 어려워진다니까 더 깊이 공부하는 습관을 가져야겠다.
본 게시글은 프로그래머스의 "학교 밖에서 듣는 전공 필수SQL/DB Essentials" 강의 내용을 토대로 업로드 했습니다.
'컴퓨터 과학 > [프로그래머스] SQL DB Essentials' 카테고리의 다른 글
Chapter 08 DML : 조인 연산을 사용한 검색문 (다중 테이블 검색문) (0) | 2022.03.13 |
---|---|
Chapter 07 DML : 집합과 조인 연산을 사용한 검색문 (다중 테이블 검색문) (0) | 2022.03.12 |
Chapter 06 DML : 내장 함수와 갱신문 (0) | 2022.03.08 |
Chapter 05 DML : 단일 테이블 검색문 (Part 2) (0) | 2022.03.06 |
[2주차] 강의노트 DDL & DML (0) | 2022.03.05 |