Skip to main content
mysql

7-1주차 sakila DB연습(중간고사 대비)

By 10월 17th, 2024No Comments
  1. db다운받기
  2. 설치

 

초기 명령어

use sakila;

show tables;

show table status;

desc film;

 

영화가 총 몇편인가요? 배우숫자는 몇명인가요? 영화카테고리는 몇개인가? 등등 숫자를 체크하기

select count(*) 응용하기

select count(*) from film;

 

영화등급 종류 모두 적기

select distinct rating from film;

 

영화 테이블 film에서 영화 release 연도 종류 알아내기, 각 영화의 release연도는 release_year 컬럼에 있음. (distinct 활용)

select distinct release_year from film;

 

영화 렌탈 테이블에서 10개 데이터만 출력하기, rental 테이블은 dvd의 렌탈정보가 담겨있음

select * from rental limit 10;

 

렌탈 테이블에서 inventory_id가 367인 row 전체 출력하기

select * from rental where inventory_id = 367;

 

렌탈 테이블에서 inventory_id가 367, staff_id가 1인  row 전체 출력하기

select * from rental where inventory_id = 367 and staff_id = 1;

 

customer 테이블에서 cuntomer 수 알아내기

select count(*) from customer;

 

paymemt 테이블에서 렌탈비용 합계, 평균, 최대값, 최소값 구하기

select * from payment;

select sum(amount), AVG(amount), max(amount), min(amount) from payment;


select payment_id, (amount), AVG(amount), max(amount), min(amount) from payment GROUP BY payment_id;

 

영화(film table)에 매겨진 등급(rating) 종류를 모두 출력하시요 (group by 이용) distinct 와 group by의 차이점 알기

SELECT rating from film GROUP BY rating;

 

영화(film table)에 매겨진 등급 (rating) 종류에 따른 영화 갯수를 모두 출력하세요 (rating값과 각 rating 값에 따른 영화 갯수를 출력하세요)

select rating, count(*) from film GROUP BY rating;

 

영화(film table)에 영화가 PG또는 G등급의 영화 수를 각 등급별로 출력하세요  (rating값과 각 rating 값에 따른 영화  갯수를 출력하세요)

select rating, count(*) from film where rating = 'PG' or rating ='G' GROUP BY rating;

 

영화(film table)에서 영화가 PG 또는 G 등급인 영화 제목을 출력하세요

select title from film where rating ='PG' or rating='G' group by rating;

 

영화(film table)에서 release 연도가 2006 또는 2007 연도이고, 영화가 PG 또는 G 등급인 영화 제목과 등급을  출력하세요

select title from film where release_year =2006 or release_year = 2007;

select title, rating from film where (release_year =2006 or release_year = 2007) and (rating ='G' or rating='PG');

 

film테이블에서 rating (등급)으로 그룹을 묶어서, 각 등급별 영화 갯수 출력하기 (각 등급별 갯수 출력하기)

select count(*) from film GROUP BY rating;

 

film테이블에서 rating (등급)으로 그룹을 묶어서, 각 등급별 영화 갯수 출력하기 (등급과 각 등급별 갯수 출력하기)

select rating, count(*) from film GROUP BY rating;

select rating as '등급' , count(*) as '갯수' from film GROUP BY rating;

 

 

film테이블에서 rating (등급)으로 그룹을 묶어서, 각 등급별 영화 갯수와 각 등급별 평균 렌탈 비용 출력하기 (등급과 각 등급별 갯수, 각 등급별 평균 렌탈 비용 출력하기)

select rating as '등급' , count(*) as '갯수', avg(rental_rate) from film GROUP BY rating;

 

film테이블에서 rating (등급)으로 그룹을 묶어서, 각 등급별 영화 갯수와 각 등급별 평균 렌탈 비용 출력하기, 단 평균 렌탈비용이 높은 순으로 출력하기 (등급과 각 등급별 갯수, 각 등급별 평균 렌탈 비용 출력하기)

SELECT rating , COUNT(*) , AVG(rental_rate) FROM film GROUP BY rating ORDER BY avg(rental_rate) DESC;

 

film테이블에서 rating (등급)으로 그룹을 묶어서, 각 등급별 영화 갯수와 rating (등급), 각 그룹별 평균 rental_rate (렌
탈 비용) 출력하되, 영화 갯수와 평균 렌탈 비용은 각각 total_films, avg_rental_rate 으로 출력하고, avg_rental_rate
이 높은 순으로 출력하시오

SELECT rating , COUNT(*) as total_films , AVG(rental_rate) as avg_rental_rate
FROM film
GROUP BY rating
ORDER BY AVG(rental_rate) DESC;




SELECT rating , COUNT(*) as 'total_films' , AVG(rental_rate) as 'avg_rental_rate'
FROM film
GROUP BY rating
ORDER BY avg_rental_rate DESC;

 

film테이블에서 rating (등급)으로 그룹을 묶어서, 각 등급별 영화 갯수와 rating (등급), 각 그룹별 평균 rental_rate (렌
탈 비용) 출력하되, 영화 갯수와 평균 렌탈 비용은 각각 total_films, avg_rental_rate 으로 출력하고, avg_rental_rate
이 높은 순으로 출력하시오 (SQL 구문을 보기 좋게 여러 줄에 걸쳐서 써보기)

SELECT
     rating,
     COUNT(*) AS 'total_films',
     AVG(rental_rate) AS 'avg_rental_rate'
FROM 
     film
GROUP BY rating
ORDER BY avg_rental_rate DESC;

 

 

각 등급별 영화 길이가 130분 이상인 영화의 갯수와 등급을 출력해보세요

Leave a Reply