DB/실습

14. [ DB ] MySQL 확장 : 스키마(Schema) 활용 - 인스타

천재단미 2024. 12. 6. 09:34
728x90
반응형

 

 

1. 활용 예시 

 

1) 예시 

 

조건 1. 가장 오래된 회원 5명을 찾으세요.

 



SELECT *
from users
order by created_at asc
limit 5;


 

 

 

2) 예시 

 

조건 1. 회원가입을 가장 많이 하는 요일은??

 




SELECT dayname( created_at ) as day , count(*) as cnt
from users
group by day
order by cnt desc;


 

 

 

 

3) 예시 

 

조건 1. 회원가입은 했지만, 사진은 한번도 올리지 않은 유령회원들의 데이터만 가져오시오.

 



SELECT *
from users u
left join photos p
on u.id = p.user_id
where p.id is null;


 

 

 

4) 예시 

 

조건 1. 가장 유명한(좋아요가 가장 많은) 사진을 찾아서,
조건 2.  그 사진을 올린 유저이름과 사진의 url주소, 좋아요 수를 가져오세요.

 



SELECT p.id, p.image_url , count(l.id) as cnt, u.username
from photos p
left join likes l
on p.id = l.photo_id
join users u
on p.user_id = u.id
group by p.id
order by cnt desc
limit 1;


 

 

 

 

 

4) 예시 


조건 1.  가장 많이 사용된 해시태그의 이름은 무엇일까요.
조건 2.  해시태그의 이름과  사용횟수를 나타내세요. 

 



SELECT t.id, t.tag_name, count(*) as cnt
from photo_tags pt
join tags t
on pt.tag_id = t.id
group by t.id
order by cnt desc;


 

 

 

4) 예시 


조건 1. 포토아이디 72번인 사진의, 
조건 2. 사진 URL주소, 작성자이름, 좋아요 수를 가져오시오.

 



select p.id, p.image_url, u.username, count(*) as like_cnt
from photos p
join users u
on p.user_id = u.id
join likes l
on p.id = l.photo_id
where p.id = 72;


 

 

 

 

5) 예시 


조건 1. 여러분의 아이디는 유저아이디 1 입니다.
조건 2. 포토아이디 72번에, 댓글을 달것입니다.
조건 3. 댓글다는 SQL 작성.

 



insert into comments (comment_text, photo_id, user_id)
values ('사진 너무 멋집니다~', 72, 1 );


 

 

 

 

6) 예시 


조건 1. 포토아이디 72번의 댓글 리스트를 가져오는 sql 개발
조건 2. 댓글 내용, 댓글 작성자 이름, 댓글 작성 날짜 가 나오도록 개발 
조건 3. 댓글리스트는 최신순으로 나오도록 개발.

 



SELECT c.id, c.comment_text, u.username, c.created_at
from comments c
join users u
on c.user_id = u.id
where photo_id = 72
order by c.created_at desc;


 

 

 

 

 

728x90
반응형
home top bottom
}