영화리뷰서비스 개발을 위한 SQL문 실습을 해보자!


1. 회원가입을 위한 쿼리
- 자료화면을 보고 필요한 정보를 입력할 수 있는 퀴리를 만들었다


2. 메인화면을 위한 쿼리
- 영화의 테이블을 가져왔을 경우 컬럼의 정보값중 리뷰와 관련된 정보가 없기 때문에 join을 한다. 하지만 그냥 join 이 아니라 lift join을 해야한다.
왜냐하면 리뷰가 없을 수 도 있는 영화들도 존재할 수 있기 때문이다. 리뷰가 없다고 영화 취급을 안하는건 이상한일이기에 정보가 없더라도 모든 영화정보를 알고싶기때문에 left join을 쓰는 것이다
- 평균값을을 구할때 ifnull을 쓴 이유는 위에 설명했듯 left join을 쓰면 정보값이 없는 정보들도 전부 뜨기때문에 별점의 평균이 없으면 null값으로 나올 것이기에 우리는 이 값을 0으로 처리하기 위해 ifnull값으로 쓴것이다


3. 즐겨찾기 퀴리를 만들자
-처음에 시작할때 테이블을 유저, 리뷰, 영화 만을 만들고 시작했었다. 하지만 지금 만들 즐겨찾기 목록을 저장할 테이블이 없기때문에 저장을 위한favorite 테이블을 새로 생성해주었다.
새로 생성한 favorite 테이블에는 고유값 id, user_id , movie_id 컬럼을 만들어준 뒤에 user_id 와 movie_id를 각각 user 테이블과 movie 테이블에 foreing keys를 이용하여 서로 이어주는 작없을 했다.


4. 영화상세 정보 화면을 위한 쿼리를 만들자
- 여기서는 그냥 join을 쓴 이유는 영화난데 리뷰날 수 있어도 리뷰난데 영화날 수 없다는 말로 이해하면된다.


5. 영화 아이디가 2번인 영화의 리뷰화면 퀴리를 만들자


6. 검색화면을 만들 수 있는 퀴리를 만들자
- 검색화면에 글자를 입력했을 때 where 와like '% %'를 이용하여 검색을 했을 때 원하는 단어를 찾을 수 있게 퀴리를 만들 수 있다
- 여기서 left join을 쓴 이유역시 2번 중간단락과 마찬가지인 이유이다
7. 검색정보란에 내가 과거 검색했던 검색어 키워드를 띄워주는 퀴리를 만들자
- 키워드를 저장해둘 테이블이 없기때문에 favorite를 생성해주었을 때 처럼 history 테이블을 새로 생성해주겠다.
그리고 나서 내가 입력한 정보가 저장될 수 있는 퀴리를 하나 만들어준뒤에 keyword를 나오게 해주는 퀴리를 작성해주었다. 이때 user_id = '누구' 를 정확히 입력해주어야한다. 그래야 내가 사용했던 정보가 뜨기 때문이다.


8. 리뷰작성 화면 쿼리를 만들자
- 입력은 insert 를 활용! 수정을 원한다면 update!! 삭제를 원한다면 delete!!!


9. 내정보 화면을 위한 쿼리를 만들자
- 내 정보화면에서 띄워야하는 정보는 유저의 정보와 리뷰의 정보이다 따라서 이때 쿼리를 두개 작성해주면 된다.

* 처음에는 user , movie, review 만 만들고 시작했다. 하면서 필요한 테이블을 추가 시키고 그 과정속에서 서로를 연결해주기 위해 foreing keys를 사용해주었다. foreing keys는 데이터베이스 설계에서 중요한 역화을 하며
데이터 무결성과 일관성을 유지하는데 필요하며 서로의 데이터를 연결하여 테이블의 관계 또한 명확시 할 수 있기 때문에 foreing keys가 중요한 것이다.
'DBeaver > 실습' 카테고리의 다른 글
화면기획서를 보고 SQL문을 작성해보자! (2) | 2024.12.04 |
---|---|
foreing keys 연결과 여러 테이블 join , left join실습 (0) | 2024.12.03 |
join 과 left join 이해와 실습 (3) | 2024.12.02 |
날짜 함수 실습(datediff,date_add,dayname,dayweek..등) (1) | 2024.12.02 |
defaylt 값을 활용한 시간 입력 (0) | 2024.12.02 |