이번주는 저번주와 다르게 온전하게 일주일 다 강의로 배우는 시간이었다.
체감상 한 2주는 넘게 지난거같은데 일주일 밖에 안됐다니 뭔가 시간이 느리게 가는것 같다😂
💡 한 조직에 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록 논리적으로 연관된 데이터를 모으고, 중복되는 데이터를 최소화 하여 구조적으로 통합/저장 해 놓은 것이다.
구조화된 데이터의 집합이므로 컴퓨터에서 쉽게 접근, 관리, 업데이트 할 수 있다.
SELECT : SELECT절은 MariaDB에서 가장 기본적인 명령어로 특정 테이블에서 원하는 데이터를 조회해서 가져올 때 사용된다.
WHERE : WHERE절은 특정 조건에 맞는 레코드(행,row)만을 선택하는데 사용되며 다양한 방법으로 조건을 설정할 수 있다.
ORDER BY : ORDER BY절은 SELECT 절과 같이 사용하며 특정 열이나 열들의 값을 정렬하는데 사용한다.
LIKE
EX) WHERE menu_name LIKE '%마늘%'
- 이름에 마늘이 들어간 메뉴 검색
EX) WHERE menu_name LIKE '마늘%'
- 이름이 마늘로 시작하는 메뉴 검색
EX) WHERE menu_name LIKE '%마늘'
- 이름이 마늘로 끝나는 메뉴 검색
IN : 여러 값을 OR 관계로 묶고 나열하는 조건을 WHERE 절에 사용할때 사용
DISTINCT
💡 DISTINCT는 중복된 값을 제거하는데 사용된다.
컬럼에 있는 컬럼 값들의 종류를 쉽게 파악할 수 있다.
기본적으로 SELECT 절에만 사용 가능하다.
LIMIT
💡 LIMIT는 SELECT 문의 결과 집합에서 반환할 행의 수를 제한하는데 사용된다.
OFFSET : 시작할 행의 번호(인덱스 체계)는 생략 가능하다.
row_count : 이후 행부터 반환 받을 행의 개수
JOIN
💡 JOIN은 두 개 이상의 테이블을 관련 있는 컬럼을 통해 결합하는데 사용된다.
두 개 이상의 테이블은 반드시 연관있는 컬럼이 존재해야 하면 이를 통해 JOIN 된 테이블들의 컬럼은 모두 활용할 수 있다.
INNER JOIN
LEFT JOIN
RIGHT JOIN
GROUPING & HAVING
💡 GROUP BY 절은 결과 집합을 특정 열의 값에 따라 그룹화하는데 사용된다.
HAVING은 GROUP BY절과 함께 사용해야 되며 그룹에 대한 조건을 적용하는데 사용된다.
SUBQUERIES
SUBQUERY는 다른 쿼리(모든 SQL)내에서 실행되는 쿼리이다.
-> 기본적으로 QUERY는 SELECT를 의미(보조 개념으로 사용하는 SELECT)
SUBQUERY의 결과를 활용해서 복잡한 MAIN QUERY를 작성해 한번에 여러 작업을 수행할 수 있다.
SUBQUERY 유형
1-1. 숫자형 데이터 형식

1-2. 문자형 데이터 형식

1-3. 날짜와 시간 데이터 형식

💡 DDL은 데이터베이스의 스키마를 정의하거나 수정하는 데 사용되는 SQL의 한 부분이다.
1-1. CREATE
1-1-1. AUTO_INCREMENT
1-2. ALTER
1-3. DROP
실행 순서‼‼‼
- SELECT
- FROM
- WHERE
- GROUP BY
- HAVING
- ORDER BY
- LIMIT !!
2주차는 정말 배운게 많다!
위에 적어놓은 것 부터 너무 길어질까봐 못적은 VIEW, INDEX, UNIQUE, PRIMARY_KEY, FOREINGN KEY 등등 ...
그래도 동기들이 강사님이 주신 실습예제 외에 추가로 만들어서 풀어보라고 해주고 이해 안된 개념들도 여러번 짚어줘서 덕분에 2주차는 잘 마무리 된 것 같다!
실습 예제들도 점점 어려워져서 마지막 day 5의 4, 5번 문제는 정말 못풀겠어서 더 공부해서 다시 풀어봐야겠다.
저번주에 6개월간 정말 열심히 해야겠다 앞서진 못해도 뒤쳐지진 않아야겠다 했는데 이번주는 다행히 잘 마무리한 것 같다! 아직까진 매일매일 남아서 복습하고 수요일 목요일쯤 되니까 솔직히 피곤하긴 했지만 수업내용을 놓치지 않으려고 노력했다!
강사님께서 내주신 예제를 풀면서 느낀건데 나는 이론 이해가 완벽하게 끝나지 않았더라도 문제를 풀어보면서 완벽하게 이해하는 스타일인 것 같다. 그래서 앞으로 6개월간 매일 남아서 복습하는 시간도 갖고 최대한 많은 문제를 풀어봐야겠다.
그리고 JAVA와 SPRING 넘어가기 전에 데이터 베이스에 대해 최대한 많이 공부해야겠다.
풀어본 문제를 모두 적어놓진 않았지만 이번에 강사님께서 프로그래머스 문제 풀어보라고 주신 5문제를 풀어보다 조금 막히는 게 있으면 왜 막혔는지 적어봤다.
1번 문제는 아직 제대로 배우지 않은 개념같아서 월요일에 질문 하려고 한다.
2번 문제는 10월에 작성된 게시글을 기준으로 조회하는 문제였는데 내가 10월에 작성된 댓글을 기준으로 조회를 했어서 자꾸 틀렸다. (문제를 좀 더 잘 읽어봐야겠다 ㅠㅠ)
4번 문제는 반납일과 대여일의 차를 구해서 30일 이상이면 장기대여, 미만이면 단기대여 를 출력하는 문제였는데 나는 단순히 DATADIFF 함수만 사용해서 풀었어서 틀렸다.
30일 대여를 정확하게 계산하려면 DATEDIFF 결과에 +1을 해줘야 해야한다.
그리고 이번 문제를 풀면서 case문을 공부했고 그걸 이용해 4번 문제를 마무리했다.
3,5번은 다행히 큰 어려움 없이 풀었다!
함수와 서브쿼리가 처음에는 감도 안잡힐 정도로 많이 어려웠는데 그래도 많이 이해한거 같다!
그리고 프로그래머스 문제랑 강사님께서 내주신 예제가 생각보다 쉽게 풀렸던 점이 좋았다
아직도 스칼라 서브쿼리나 상관 서브쿼리에 대한 이해가 부족한거 같다.
함수를 여러개 사용할때 조금 어려워해서 문제를 더 풀어보면서 익숙해져야 할 것같다
일단 컨디션 관리가 제일 중요할 것 같다
피곤해서 수업에 집중 못하는 일이 점차 줄어들도록 !
✅ 정규 수업시간 후 복습시간 갖기
✅ 프로그래머스 SQL고득점 키트 문제 하루에 한문제 이상 풀기
✅ 이번주처럼 너무 무리하지 않고 컨디션 관리 하기
✅ 함수와 서브쿼리랑 조금 더 친해지기 (아직은 어려운게 많다😥)
개추 박았습니다