쿼리의 실행 흐름을 제어하는 흐름제어
하나의 작업 단위로 구성되는 트랜잭션
트랜잭션이 동시에 실행 됐을 때, 발생하는 문제 DB 동시성
여러 테이블에서 가져온 레코드 조합을 하나의 테이블이나 집합으로 표현하는 JOIN
INNER JOIN : a INNER JOIN b.SELECT 열_이름들
FROM 첫번째_테이블
INNER JOIN 두번째_테이블 ON 첫번째_테이블.공통_열 = 두번째_테이블.공통_열;SELECT * FROM tableA AS a INNER JOIN tableB AS b ON a.ID = b.a_id;OUTER JOIN : a LEFT OUTER JOIN bSELECT * FROM tableA a LEFT JOIN tableB b ON a.id = b.a_idLEFT에 위치한 A테이블 데이터 row는 모두 출력, B는 ON 조건에 맞는 데이터만 출력.JOIN은 결과를 옆으로 붙인다면? UNION은 하단으로!UNION
SELECT 컬럼1, 컬럼2 FROM table1 UNION SELECT 컬럼1, 컬럼2 FROM table2;
각각의 SELECT 문으로 선택된 필드의 개수와 타입은 모두 일치해야 한다.
중복되는 레코드는 디폴트로 제거, 모두 출력하고 싶다면 UNION ALL
지정된 열의 값이 동일한 행들을 하나의 그룹으로 묶은 결과 집합 GROUP BY
주로 그룹 데이터의 값을 집계하기 위해서 사용.
SELECT DATE_FORMAT(datetime, '%H') as HOUR, COUNT(*) FROM animal_outs
WHERE DATE_FORMAT(datetime, '%H:%i')
BETWEEN '09:00' AND '19:59' GROUP BY HOUR ORDER BY HOUR;
-- 앞에서 HOUR 로 정의 > GROUP BY 에서 HOUR 로 사용
COUNT, AVG, MIN, MAX, SUM
그룹화 한 후의 데이터에 대한 조건 설정은 HAVING 사용.
JOIN + ON / GROUP BY + HAVING
색인과 목차처럼 데이터 검색 속도를 향상시켜주는 INDEX
구축할 DB 구조를 약속된 표기법에 따라 표현하고 설계하는 Data Modeling
b의 값에 의해 a가 결정됨을 의미하는 함수적 종속성 정규화
데이터베이스의 구조와 데이터를 SQL 형식으로 추출하여 복원하는 DB DUMP
사용자 생성, 조회, 권한 부여 사용자 관리
실제 데이터를 저장하지 않고 참조할 수 있는 VIEW
CREATE VIEW author_for_view AS SELECT 컬럼1, 컬럼2, ... FROM 테이블명;
데이터베이스에 저장하여 실행할 수 있는 SQL문 집합 저장 프로시저
분명 강의를 들을 때는 다 이해했는데, 수업 실습 시간에 쿼리도 작성해보았는데!
막상 새하얀 백지에 '~~~한 쿼리문을 작성해보세요' 하면 아무것도 떠오르지 않았다.
막힌 부분에서 필기 노트를 찾아보자니, 어디에 뭐 썼더라..? 언제 뭐 배웠더라..?
그럴 때 ! 복습 블로그를 썼던 게 아주 많은 도움이 됐다.
내가 지금 필요한 정보들은 내 블로그에 담겨있다보니, 내 블로그에서 검색하면 내가 찾던 정보들이 모두 정리되어 있는 것이다. 복습 차원에서 매일매일 써 온 글들이 나에게 다시 큰 자산이 되어 기뻤다.
배운 개념 복습에 더해 직접 혼자 다시 실습해보기도 했는데 (궁금하다면 여기🍀)
금일(5월 23일) 진행한 수업에서 약 4-5시간 정도 1단계부터 3단계까지 설계하고, 직접 프로시저와 쿼리문을 작성해보는 실습시간을 가졌는데 끝내 완성하지 못한 채 숙제로 가지고 돌아왔다.

내가 배운 것 그 이상을 만들어내려고 했던 것도 있었고, 제대로 설계하지 못한 부분도 있었다.
너무 너무 아쉬웠다. 강사님의 디테일한 조언을 받고 나니 더 아쉬웠다 !
다 이해했는데, 시간이 조금만 더 있으면 완성할 수 있을 것 같은데..🥲(5시간이나 주셨지만)
전공자는 3시간이 걸린다면 비전공자 노베이스인 나는 시간이 곱절은 더 걸리는 것 같다.
이 아쉬운 마음을 꼭 꼭 눌러 담아 공부에 대한 열정으로 바꾸어 보려 한다.
복습을 진행해도 부족한 부분이 있다면, 더 공부해보면 된다 !
내 짝꿍도 전공자지만 처음엔 자신도 어려웠다며, DB에만 3일을 부딪혀보니까 좀 좋아졌다고 위로해주었다.
지금은 진짜 모르는 거 물어보면 답변해주는 나에겐 척척박사 짝꿍이라 위로가 진짜 위로로 와닿았다!
DB 뿐만 아니라, 앞으로 남은 산들이 높고 높지만 ⛰️
일주일도 남지 않은 데이터베이스 팀 프로젝트가 가장 코 앞의 산이라 가장 높게 느껴진달까..
팀원들과 함께 올라 정복할 수 있도록 최선을 다 해야겠다는 걸 다시 한 번 다짐하는 한 주였다.
2주차만에 드디어 ! 스터디에 참여하게 되었다 👏🏻
아직 조금 부족한 실력 때문에, 다른 스터디원들에게 폐를 끼칠까 함부로 스터디에 참여하지 않았다.
점심시간에 솔직하게 터놓았는데 기초부터 시작하려는 분들이 계셔서 함께 시작하게 되었다..!
우리 기수분들은 정말,, 모두 다 친절하고 아낌없이 주는 나무들인데
찐 나무 중 나무🌲인 분들과 함께 자료구조, 알고리즘 문제부터 수업 복습까지 함께 공부하게 되었다 !
못 하는 걸 못 한다고 말할 수 있는 용기를 주는 팀원들과 함께하게 되었으니,
모른다고 말 할 게 없는 그 순간까지 더 잘 나아갈 수 있을 것 같다.
진짜 진짜 스터디 팀원들 너무 든든하다. 최고의 강사님과 최고의 팀원들을 만난 것 같다🥹
우선 현재까지의 커리큘럼 중 이해도가 가장 부족한 부분은 모델링 부분인 것 같다.
선을 그리고 그리다 보니 이 선이 저 선 같고, 저 선이 이 선 같고..
한 번 더 정리해본 뒤 월요일 스터디원들과 함께 더블 체크를 진행해 볼 예정이다.
프로시저나 쿼리 작성 시 오탈자나 작은 실수들로 큰 에러를 낳는 경우도 빈번하다.
침착하게 작성하고 살펴보는 버릇을 길러보려 한다!
지치지 않도록 중간 중간 취미 활동과 운동도 꼭 잘 챙겨주자 !